Казенников А.О.
Московский государственный технический университет радиотехники, электроники и автоматики (МГТУ МИРЭА), аспирант, kazennikov@gmail . com
Алгоритм автоматического извлечения полей данных из сообщений новостного потока
КЛЮЧЕВЫЕ СЛОВА:
Новостной поток, поля данных, алгоритм извлечения данных, вебстраница.
АННОТАЦИЯ:
В статье представлен алгоритм автоматического извлечения полей из веб-страниц новостных сообщений. Алгоритм основан на выборе целевого узла DOM-модели (Document Object Model) HTML-документа на основе статистических методов классификации. Основное отличие от существующих алгоритмов состоит в двустадийной схеме работы и значительно расширенной модели признаков для классификации. Разработанный алгоритм позволяет автоматически извлекать информацию из вебстраниц по заданному образцу. Результатом работы алгоритма является процедура извлечения содержания, устойчивая к изменению верстки и расположению целевой информации на вебстранице.
Введение
Большинство информационных агентств и СМИ в интернете предоставляют доступ к новостям только в виде HTML-страниц. Это удобно для конечного пользователя — новость хорошо оформлена и удобна для чтения. Но оно не рассчитано на автоматическую обработку сообщений. Для использования процедур автоматического анализа необходимо структурированное представление новостного сообщения, содержащее следующие структурированные элементы:
1. Заголовок новости;
2. Дата и время новости;
3. Текст новости.
Авторами был разработан алгоритм кластеризации новостного потока [1,2], для экспериментальной оценки которого процедуры извлечения информации из веб-страниц были разработаны вручную. Однако такое решение плохо масштабируется на большое количество новостных источников.
В настоящее время для решения задачи извлечения информации применяются составленные вручную правила выделения элементов,
основанные на XPath-выражениях [3] и селекторах CSS (CSS - cascading style sheet). Существуют и решения для автоматического выделения содержания веб-страницы [3,4,5,6,7,8].
Подход на основе правил выделения элементов и CSS-селекторов очень трудоемок. Для каждого новостного источника необходимо составить правила извлечения содержания. Кроме того, необходимо вручную поддерживать работоспособность этих правил — они могут перестать работать при любом изменении структуры веб-страницы.
Автоматические средства удаления разметки эффективны для простых документов. Однако, современные веб-страницы имеют сложную структуру. В ней присутствуют навигационные элементы, рекламные блоки, динамически подгружаемая информация, комментарии. В результате после удаления разметки останутся неинформативные текстовые блоки (текст навигационных элементов, баннеров и т.д.), не относящиеся к содержанию страницы.
За последние несколько лет исследования в области автоматических средств анализа были направлены на решение задачи выделения основной части веб-страницы [3,4,5,8]. Однако эти подходы решают только задачу выделения основной части, тогда как для анализа новостного потока необходимо извлечение структурированной информации, о которой говорилось выше.
В статье представлен алгоритм, который сочетает автоматические методы выделения основного содержания веб-страницы и выделение структурных элементов новостного сообщения.
Основное отличие представленного алгоритма от существующих заключается в возможности извлечения отдельных элементов вебстраницы, таких как заголовок, дата публикации, основной текст новости и другие. В результате предлагаемый алгоритм позволяет более детально извлекать и структурировать информацию.
Постановка задачи
Задача автоматического извлечения основных элементов новостного сообщения ставиться следующим образом.
Для заданной веб-страницы необходимо извлечь информацию заданного типа. Для новостного сообщения рассматриваются следующие структурные типы:
1. Текстовые данные (для заголовка и основного тела новости);
2. Дата и время (для даты публикации новости).
Практически все современные подходы по извлечению информации из веб-страницы используют DOM-модель в качестве представления HTML-страницы. DOM-модель является иерархическим представлением HTML-страницы, узлами которой являются HTML-теги и текст между ними. DOM-модель является унифицированным средством для навигации и изменения содержания веб-страницы.
Но, несмотря на то, что DOM-модель является хорошо
организованной структурой, она не может быть использована непосредственно для структурного представления новостного сообщения, поскольку HTML-страница (и DOM-документ) ориентирована на отображение в веб-браузере, а не на автоматический анализ.
Задача извлечения будет считаться решенной, если необходимые данные будут извлечены с точностью до узла DOM-дерева.
Существующие решения
Рассмотрим два основных подхода к автоматическому извлечению содержательной части веб-страницы:
• методы для выделения основной части страницы [4,5,6,7,8];
• методы выявления повторяющихся (шаблонных) элементов
страницы [6,9,10,11].
Большинство современных методов идентификации и выделения основной части страницы основаны на статистических свойствах блоков HTML-страницы. Принципиальная схема построения этих алгоритмов следующая: страница разбивается на блоки, которые потенциально могли бы быть основным содержимым страницы. Затем оценивается каждый из этих блоков и в итоге выбирается наиболее вероятный блок, который считается основным текстом страницы. Так, в работе [4] предложен метод на основе машинного обучения для автоматического определения блоков, не несущих существенную содержательную информацию. Метод состоит из следующих шагов: выделяются блоки на основе тегов div, span, table, td. Затем, часть этих блоков размечается экспертами. Полученная выборка используется для обучения классификатора блоков на основе дерева принятия решений на основе алгоритма С4.5[12]. Алгоритм C4.5 последовательно конструирует дерево решений, разделяя текущую обучающую выборку на две части по значению некоторого признака. На каждом шаге используется признак, который для данного множества примеров максимально различает целевые классы. Для обучения использовались признаки геометрических размеров блоков, ссылочная информация, структурных данных. В [5] представлен метод на основе частичной визуализации веб-страницы. Метод преобразует веб-страницу в дерево, узлами которого являются визуально связанные блоки. В этом случае блок - поддерево DOM-представления документа, визуально составляющее единое целое. Для идентификации блока основного содержания страницы оценивается разнородность содержимого данного блока. В результате ранжирование блоков производится не только по их содержательным характеристикам, но и по пространственным (таким как расположение или размер) элементов. В работе [6] представлен достаточно простой метод выделения содержания на основе плотности информации. За основу взято количество текстовых символов на один тег. Подход основан на предположении, что основная часть страницы содержит много текста и мало html-тегов, что справедливо для новостей и блогов. Обратная
ситуация наблюдается в рекламных и навигационных блоках. Для этого в работе [7] предложен усовершенствованный метод, учитывающий статистику ссылок. Для отсечения неинформативных блоков используется пороговый подход - если плотность выше некоторого значения, то блок считается содержательным. Такой подход эффективен для определения основного содержания страницы. Однако он может вызывать ошибки на содержательной части, в которой имеется высокая плотность тегов. Например, к таким частям относятся списки интересов пользователя в социальных сетях, предыдущие места работы, поля со сложной структурой, в которых каждый элемент оформлен отдельным тегом и др.
Принципиально другим подходом к извлечению информации из вебстраниц являются подходы выделения шаблонных (устойчивых) элементов [4,7,8]. Подход предполагает, что, во-первых, большинство современных сайтов использует автоматическую генерацию своих основных страниц. Это справедливо практически для всех отраслей: новостных сайтов, блогов, форумов, интернет-магазинов и т.п. Во-вторых, метод предполагает, что возможен сбор большого количества страниц с однотипным содержанием с одного ресурса. В-третьих, предполагается, что полученная коллекция документов содержит только один уникальный шаблон для всех документов. Таким образом, кластеризация коллекции по разным шаблонам не входит в постановку задачи определения элементов. Основным принципиальным недостатком подходов этого типа является то, что при достаточной эффективности определения основного содержания страницы, метод не фильтрует изменяющиеся неинформативные блоки, например ссылки на похожие новости на новостном сайте, комментарии к новости и динамически встраиваемую рекламу.
В работе [8] для определения шаблонных элементов используются блоки, которые содержат функциональные элементы страницы одного назначения: навигационный блок, ссылочный блок, меню, основной текст, и т.п. Каждый документ коллекции разбивается на блоки. Для каждого блока оценивается его гомогенность на основе статистических характеристик: количества ссылок в каждом блоке, их плотности на единицу текста и тега и др. Затем блоки кластеризуются. Предполагается, что если большое число блоков разных страниц попали в один кластер, то они являются шаблонными. В работе [9] используется разбиение страницы по тегам, которые часто используются для формирования различных блоков информации. Это теги: table, div, span, td, dd. Затем предлагается выделять блоки не несущие информацию с помощью подсчета статистики слов в каждом блоке по всей коллекции. Другой подход предложен в работе [10], авторы которой используют метод под названием Site Style Tree. Метод заключается в построении общего DOM-дерева множества элементов. Если некоторый элемент уже есть в SST, то у него увеличивается счетчик. После построения SST для каждого узла оценивается разнообразие стилей представления и содержания. Меньшее разнообразие указывает на то, что
элемент является шаблонным. В результате возможно выявление часто повторяющихся элементов, которые можно считать неинформативными. В работе [11] используют совместную процедуру идентификации шаблонов и индексирования. Метод заключается в том, что во время индексирования страница разбивается на блоки. Затем происходит кластеризация на основе стиля и позиции блока. Предполагается, что похожие кластеры разных документов являются шаблонной частью, которую можно удалять.
Алгоритм извлечения структурных элементов из веб-страниц Большинство методов извлечения информации базируется на машинном обучении для идентификации основной части страницы или шаблонного элемента. При идентификации основного содержания вебстраницы используются в основном методы классификации, в то время как для определения шаблонных элементов - методы кластеризации.
Кроме того, большинство методов явно использует свойства верстки современных веб-страниц:
• логическое разделение способа отображения веб-страницы и ее структуры;
• выделение каждого информационного элемента отдельным блоком (HTML теги div, span, table, td, li);
• активное использование шаблонов стилей CSS.
Формально задача машинного обучения ставится следующим образом. Пусть дано множество размеченных веб-страниц X, в которых отмечены интересующие нас элементы данных. Каждому DOM-элементу x каждой страницы из обучающего множества сопоставляется y метка о наличии в этом элементе требуемой информации. В результате создается множество пар (x,y), которое пригодно для обработки методами машинного обучения.
Для классификации из каждого DOM-элемента извлекаются следующие признаки (по аналогии с работами [3,8]):
•Признаки текста, содержащегося в данном элементе:
оДлина текста
оЧисло слов
оСредняя длина слова
оКоличество предложений
оСредняя длина предложений
•Положение DOM-элемента в DOM-дереве:
оЧисло непосредственных потомков текущего элемента
оДлина пути до вершины DOM-дерева
оЧисло родственных элементов (потомков непосредственного родителя данного узла)
оНаличие вложенных блоков в данный DOM-элемент •Признаки самого DOM-узла: оНазвание тега
оСписок CSS-классов данного DOM-элемента
Основным отличием предлагаемого алгоритма является его существенное расширение за счет типов признаков:
• биграммы, тригаммы и квадриграммы знаков названий CSS-классов и идентификатора данного элемента;
• n-граммы непосредственного родителя данного элемента;
• сочетания классов и идентификатора данного элемента и его родителя;
• средняя доля буквенных, цифровых, пунктуационных и пробельных символов в рассматриваемом элементе.
Эти признаки позволят выделять не только основное содержимое веб-страницы, но и составные элементы содержимого. Расширение модели необходимо, поскольку решаемая задача более сложная, чем выделение основного содержания страницы. Кроме того, для решения этой задачи можно воспользоваться коллекцией документов, как и в задаче выделения шаблонных элементов, тогда как в постановке задачи выделения основного содержимого такая коллекция документов отсутствует.
В качестве алгоритма машинного обучения предлагается использовать алгоритм SVM [12] (Support Vector Machine) — машина опорных векторов. Этот алгоритм является эффективным для решения большого числа задач. В частности, он использовался авторами в алгоритме кластеризации новостных потоков [1]. Для линейной версии этого алгоритма существуют высокопроизводительные алгоритмы решения [12], масштабируемые на миллионы примеров для обучения.
Другим важным отличием предлагаемого алгоритма является использование двух стадий для извлечения структурных элементов. На первой стадии выделения очередного структурированного элемента выполняется выбор с помощью обученного классификатора элементов, которые могли бы содержать значение этого структурированного элемента. На второй стадии этот же классификатор используется для удаления из выбранных элементов «лишних» - тех, которые содержат данные, распределение которых сильно отличается от целевого. В результате, улучшается точность извлечения структурных элементов.
Предлагаемый алгоритм содержит две фазы: обучающую и рабочую. Обучающая фаза состоит из следующих шагов:
• Разметка достаточно большой коллекции веб-страниц, содержащих информацию, которую необходимо извлекать.
• Формирование обучающей выборки на основе каждого DOM-узла каждой страницы размеченной коллекции.
• Конструирование классификатора DOM-элементов на основе представленной модели признаков.
Рабочая фаза состоит из двух стадий.
На первой стадии из обрабатываемой веб-страницы извлекаются
DOM-узлы, потенциально содержащие необходимую информацию. В общем случае извлекаются только DOM-узлы, соответствующие блокам языка HTML: теги div, span, table td, li, h1-h6. Затем из этих DOM элементов производится выбор DOM-элемента с наибольшей вероятностью, содержащего необходимую информацию на основе классификатора, построенного в фазе обучения.
На второй стадии производится так называемая «отрицательная» выборка — из оставшихся элементов удаляются те составные части, которые не содержат нужных данных.
Такой алгоритм работы позволяет корректно выделять даже те структурные элементы, в которых в DOM-элементах которых содержится лишняя информация. Так, например, в новостях сайта «Лента.ру» может содержаться врезка на материал по сюжету новости. Одностадийный алгоритм может выделить только новостной текст целиком, вместе с такой врезкой. Разработанный алгоритм может определить такую врезку и удалить ее на второй стадии работы.
Экспериментальная оценка алгоритма
Для экспериментальной оценки эффективности разработанного алгоритма были вручную размечены 2000 новостных сообщений каждого из сайтов «Лента.ру», «NewsRu.COM», «Interfax» и «РИА Новости». В этой выборке размечались:
1. Заголовок новости.
2. Дата новости.
3. Основной текст новости.
Проверка эффективности осуществляется следующим образом. На материале сайта «Лента.ру» выполняется обучающая фаза алгоритма. Затем выполняется рабочая фаза на новостных сообщениях сайтов «NewsRu.com», «Interfax» и «РИА Новости» и оцениваются следующие параметры:
• точность;
• полнота;
• F-мера (гармоническое среднее точности и полноты).
Для проверки устойчивости алгоритма обучение дополнительно проводилось на выборке «РИА Новости», а результаты оценивались по всем остальным выборкам.
Проводилось три серии экспериментов. Первая серия была ориентирована на то, чтобы определить влияние дополненной модели признаков на точность выделения составных элементов страницы. Полученный классификатор использовался только для выделения целевых элементов, но не для удаления лишних (одностадийный вариант работы). Вторая серия была направлена на определение эффекта от использования двустадийной схемы выделения составных элементов. И, наконец, третья серия оценивала эффективность предложенного алгоритма выделения
основных элементов новостного сообщения для задачи кластеризации новостных потоков. В разработанном автором алгоритме кластеризации новостных потоков [1,2] предполагается, что новостные источники предоставляют поток сообщений в пригодном для обработки формате.
Кроме того, проводилась оценка вклада каждой группы признаков:
1. Текстовые признаки;
2. Признаки положения DOM-узла;
3. Признаки DOM-узла;
4. Предложенное расширение модели.
Результаты первой серии экспериментов представлены в таблице 1 (жирным обозначены максимальные значения). Как видно результатов, предложенное расширение модели признаков положительно влияет на качество извлечения информации. При этом эффективность предложенной модели признаков не зависела от обучающей коллекции и улучшала качество извлечения в обоих случаях. F-мера для предложенной модели признаков значительно выше значения для базовой модели (группа признаков, обозначенная как «1+2+3»).
Таблица 1. Результаты экспериментов по оценке влияния модели признаков на качество
извлечения информации
Группы признаков Обучающая Коллекция Точность Полнота Р-мера
1 Лента.ру 0.881 0.892 0.885
1 + 2 Лента.ру 0.893 0.891 0.89
1 + 2 + 3 Лента.ру 0.912 0.923 0.915
1 + 2 + 3 + 4 Лента.ру 0.937 0.920 0.926
1 РИА Новости 0.898 0.901 0.895
1 + 2 РИА Новости 0.895 0.903 0.895
1 + 2 + 3 РИА Новости 0.914 0.921 0.915
1 + 2 + 3 + 4 РИА Новости 0.921 0.942 0.932
Результаты второй серии экспериментов представлены в таблице 2. При проведении этой серии экспериментов использовалась разработанная модель признаков. Как и в первой серии, оценивалось влияние двустадийной схемы при разных обучающих коллекциях. Из результатов экспериментов видно, что двустадийная схема фильтрации дополнительно улучшает качество извлечения и также не зависит от обучающей коллекции. Улучшение результата достигается за счет тонкой фильтрации.
Таблица 2. Результаты экспериментов по оценки влияния двустадийной схемы на
качество извлечения информации
Тип схемы Обучающая коллекция Точность Полнота Р-мера
Одностадийная Лента.ру 0.937 0.920 0.926
Двустадийная Лента.ру 0.950 0.921 0.936
Одностадийная РИА Новости 0.921 0.942 0.932
Двустадийная РИА Новости 0.927 0.943 0.935
Сводный график результатов экспериментов представлен на рис. 1. Разработанная модель и алгоритм позволяют значительно улучшить качество выделения информации из веб-страниц.
РИА Новости
Лента.ру
........
|
-
1
—1—1—н
□ 2 стадии обработки
□ расширенный
□ базовый
0,85 0,86 0,87 0,88 0,89 0,9 0,91 0,92 0,93 0,94 0,95
Рис 4. Сводная диаграмма результатов экспериментов по коллекциям данных мера)
Третья серия экспериментов была проведена для оценки влияния разработанного алгоритма извлечения структурных элементов на задачу кластеризации новостных потоков. В этой серии экспериментов для корректности сравнения результатов с работой [1] использовалась коллекция «РИА Новости», поскольку в [1] для оценки качества кластеризации использовался материал сайта «Лента.ру». Результаты этой серии представлены в таблице 3. Предложенный алгоритм показал результаты, сравнимые с составлением правил для извлечения информации вручную. Разница результатов по F-мере составляет 0.006, что является достаточно малой величиной, которой на практике при массовом добавлении новостных источников можно пренебречь.
Таблица 3. Результаты применения разработанного алгоритма для задачи кластеризации новостных потоков
Тип метода Точность Полнота Р-мера
Ручной метод извлечения новостного сообщения 0,912 0,891 0.901
Автоматический метод извлечения новостного сообщения 0.904 0.890 0.895
Выводы
В статье представлен эффективный алгоритм извлечения структурной информации из веб-страниц. Он позволяет извлекать не только основную содержательную часть документа, но и его отдельные структурные элементы.
Алгоритм позволяет извлекать как текстовую информацию — заголовок и основное тело новостного сообщения, так и дату публикации.
При проведении экспериментов проверялась переносимость результирующей процедуры извлечения, обученной на одном источнике на другие. Алгоритм продемонстрировал хорошую адаптивность в рамках
сходного характера материала для извлечения информации.
Была произведена экспериментальная оценка разработанного алгоритма. Было оценено влияние расширенной модели признаков и двустадийной схемы для извлечения структурных элементов. Предложенный алгоритм показал существенное улучшение качества извлечения.
Кроме того, было произведено экспериментальное сравнение ручного и автоматического подходов извлечения структурных элементов для задачи кластеризации новостного потока. Разработанный алгоритм показал результаты, сравнимые с ручным методом.
Разработанный алгоритм может использоваться для подключения источников новостных сообщений к системам анализа новостных сообщений.
Литература
1. Казенников А.О. Анализ новостных потоков на основе информационного поиска и компьютерной лингвистики. Информатизация образования и науки № 4(16) 2012, стр.155164
2. Казенников А.О., Куракин Д.В., Трифонов Н.И. Гибридный алгоритм синтаксического разбора для системы анализа новостных потоков, Информатизация образования и науки № 1(13) 2012, стр. 90-97
3. Sun F., Song D., Liao L. DOM Based Content Extraction via Text Density. In proc. Of SIGIR'2011, Beijing, China, 2011
4. Kohlschutter C., Fankhauser P., Nejdl W. Boilerplate detection using shallow text features. In Proc. Of WSDM'10 pp 441-450, 2010
5. Cai D., Yu S., Wen J., Ma W. Extracting content structure for web pages based on visual representation. In Proceedings of APWeb'03 pp 406-417, 2003
6. Gottron D. Content code blurring: A new approach to content extraction. In Proc of DEXA'08, pp 29-33, 2008
7. Vieira K., da Silva A., Pinto N. et al. A Fast and Robust Method for Web Page Template Detection and Removal. In Proc. Of CIKM'06, 2006
8. Chen L., Ye S., Li. X. Template Detection for lage scale search engines. In Proc. Of SAC'06, pp 10941098, NY USA, 2006
9. Lin S., Ho J. Discovering informative content blocks from web documents. In Proc. Of SIGKDD'02, pp 588-593, NY USA, 2002
10. Weninger T., Hsu W.H., Ma W. Learning block importance models form web pages. In Proc. Of WWW'04, pp 971-980, NY USA, 2004.
11. Bar-Yossef Z., Rajagopalan S. Template Detection via data mining and its applications. In proc. Of WWW'2002, pp 580-591, 2002
12. Wu X., Kumar V, Quinlan J. Top 10 algorithms in data mining. Knowledge Information Systems Vol. 14, pp 1-37, 2008.