Научная статья на тему 'Модели и методы извлечения структурированной информации из сети Интернет'

Модели и методы извлечения структурированной информации из сети Интернет Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
618
100
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНТЕРНЕТ / ВЕБ-САЙТ / ИЗВЛЕЧЕНИЕ ИНФОРМАЦИИ / СТРУКТУРИРОВАННЫЕ ДАННЫЕ / ОБЕРТКА / INTERNET / WEBSITE / INFORMATION EXTRACTION / STRUCTURED DATA / WRAPPER

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лемесев К. А.

Различные приложения, основанные на данных из Интернета, таких как мониторинг и сравнение цен, требуют получения данных, распределенных по множеству веб-сайтов. В настоящей статье рассмотрено применение существующих инструментов для получения данных и предложен новый метод создания таких инструментов. Определено значение термина «обертка». Описано применение инструментов для извлечения информации из Интернета, показаны недостатки существующих инструментов. Представлены преимущества нового метода.V

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

arious web applications such as online price comparisons and competition monitoring require retrieval of distributed information from the Internet. This paper examines the suitability of software toolkits for the extraction of data from websites and presents a new way of creating toolkits. The term «wrapper» is defined. Short overview of presently available toolkits for generating wrappers and their limitations are provided. Advantages of the new method are presented.

Текст научной работы на тему «Модели и методы извлечения структурированной информации из сети Интернет»

Дф^ст

МОДЕЛИ И МЕТОДЫ ИЗВЛЕЧЕНИЯ СТРУКТУРИРОВАННОЙ ИНФОРМАЦИИ ИЗ СЕТИ ИНТЕРНЕТ

К.А. ЛЕМЕСЕВ, асп. каф. прикладной математики и математического моделированияМГУЛ

Стремительный рост и популярность всемирной сети Интернет послужила основой появления множества источников разнообразной информации в сети. Для многих людей Интернет является самым доступным источником информации практически на любую тему. Инфраструктура Интернета изначально была разработана для использования человеком [1]. Подавляющее большинство данных в Интернете доступны в формате HTML (Hypertext Markup Language, язык разметки гипертекста). Этот формат создан для визуализации данных в интернет-браузерах, но он не предоставляет какой-либо семантической информации о данных, которые записаны с помощью этого формата. Это способ представления данных, неподходящий для автоматических систем обработки и управления данными. В частности, для того чтобы собрать данные из нескольких источников, необходимо разрабатывать специальные, и зачастую сложные, программы, для того чтобы автоматизировать процесс получения структурированных данных для дальнейшей обработки. Для подобных целей необходимы специальные программы-«обертки» (wrappers) . Эти программы «оборачивают» неструктурированные данные для пользователя (которым чаще всего является программист, создающий программы для конечных пользователей), представляя наружу структурированную информацию.

Например, сейчас множество магазинов предоставляют информацию о своих товарах и ценах. Практически невозможно «вручную» собрать все данные для полного и своевременного анализа всех интересующих предложений. Автоматический мониторинг и анализ предложений на рынке - хорошее практическое приложение для подобных программ («оберток»).

Так как создание таких «программ-оберток от начала до конца» является достаточно трудоемкой задачей, были созданы

lemesev. [email protected]

различные методы для генерации программ-оберток. Как в приведенном примере о товарах и ценах, зачастую требуется получать данные сразу из нескольких источников. В этом случае ценность возможности генерации оберток возрастает. Схема использования оберток в этом сценарии выглядит так

В прикладном использовании в роли потребителя редко выступает непосредственно человек. Зачастую это какой-либо программный комплекс, который выполняет обработку данных, полученных от оберток.

Настоящая работа рассматривает процесс создания программ-оберток. Дается описание программ-оберток и их роли в сфере управления информацией. Представлена краткая классификация подходов к созданию оберток и их генерации. Для обозначенного круга задач предлагается новый метод их создания. Показываются преимущества предложенного метода перед существующими.

Обертки

Программы-обертки в контексте извлечения информации из Интернета - программы, которые автоматически извлекают данные из веб-сайтов и конвертируют эти данные в структурированные форматы. Можно выделить три главные функции таких программ. Первая - загрузка HTML-страниц веб-сайтов (краулинг). Вторая - поиск, распознавание и извлечение целевой информации. Третья - сохранение полученных данных в подходящий формат для дальнейших

Рисунок. Общая схема использования оберток

ЛЕСНОЙ ВЕСТНИК 6/2012

113

манипуляций [2]. Впоследствии полученные с помощью обертки данные могут быть использованы другими программами.

Согласно исследованиям [3], около 80 % источников информации, опубликованной в Интернете, служат реляционные СУБД (страницы, на которых располагаются данные, формируются на основе информации, хранящейся в базе данных). В процессе форматирования в HTML-документы структура БД полностью теряется. Обертки пытаются проделать обратный процесс - восстановить структуру исходных данных. Более того, цель некоторых программ - использование Интернета как большой базы данных.

Как правило, для каждого источника данных необходима отдельная обертка. Это вызвано уникальной структурой и разметкой каждого источника. К тому же Интернет динамичен и непрерывно развивается. По этой причине зачастую требуется регулярно обновлять (или даже полностью переделывать) обертки [4].

Любая обертка может быть полностью создана на заданном языке программирования, например, с помощью регулярных выражений. Для небольших приложений такой подход может оказаться приемлемым. Однако, если предполагается использование большого числа оберток, удобно использовать специальные инструментарии для создания оберток (wrapper-generating tookits). Подобные инструментарии способны создавать обертки, базируясь лишь на нескольких параметрах для определенного источника данных.

Инструменты для создания оберток можно классифицировать по различным признакам, например, по типу интерфейса, по возможностям краулинга, присутствия и особенностей графического интерфейса пользователя и нескольким другим. В рамках данной работы рассматривается классификация инструментариев по способу создания и функционирования оберток.

Краткий обзор существующих решений

Как было замечено выше, зачастую страницы веб-сайтов формируются автоматически: информация, хранящаяся в базе данных, форматируется по определенному

шаблону в HTML-документ, который и получает браузер. Для сайта, созданного таким образом, получается набор страниц с конечным числом способов форматирования данных. На этой идее базируются способы получения оберток методами машинного обучения.

Получение оберток с помощью методов машинного обучения происходит по следующей схеме. Определяется модель данных (формальное описание сущностей и их взаимосвязей), помечаются контрольные примеры валидных данных. На основании этих данных инструментарий создает набор правил - алгоритм обертки для извлечения данных согласно модели. Может потребоваться несколько итераций, для того чтобы получить рабочую обертку.

Алгоритмы, положенные в основу подобных инструментариев, используют множество предположений, допущений и наблюдений из сферы того, как обычно данные расположены в структуре сайта и в пределах страницы сайта. Это могут быть как исключительно визуальные признаки данных (в первом приближении: данные на всех страницах расположены одинаково, следовательно, как и в контрольном примере, третий блок от меню содержит целевые данные), так и сложные взаимосвязи между элементами дерева HTML-объектов (в первом приближении: данные на всех страницах расположены одинаково, следовательно, как и в контрольном примере, если элемент имеет вложенность 3 и находится на нечетной позиции, то он содержит целевые данные).

Учитывая все допущения относительно природы происхождения страниц и расположения данных на них, полученные обертки не могут охватить всего многообразия форматирования. Для сложных сценариев используются инструментарии, позволяющие задать соответствие между моделью данных и элементами HTML-документа вручную. Такие инструментарии, в силу своей идеи, способны обработать любые источники. Рассмотрим подробнее устройство инструментариев, предлагающих ручное создание оберток.

Проблемы и предлагаемое решение

Для того чтобы получить обертку с помощью инструментария, необходимо создать

114

ЛЕСНОЙ ВЕСТНИК 6/2012

программу, которая определяет соответствие между элементами модели данных и объектами исходных документов. В зависимости от сложности задачи, сложность программы может варьироваться от простого указания элементов DOM-дерева до имплементации сложной логики и переработки HTML-страниц. Становятся крайне важными выразительность и удобство языка описания соответствия HTML-документа и модели данных.

Как показывают исследования [2], в большинстве существующих инструментариев используются оригинальные, специально созданные языки. Не все языки умеют оперировать с HTML и его объектами (HTML-awareness). Учитывая, что большая часть работы ведется именно с HTML-документами, это обстоятельство уменьшает ценность таких языков.

Большинство языков - декларативные. На первый взгляд, эта особенность не накладывает ограничений на возможности языка. Однако при рассмотрении применения декларативных языков к решаемой задаче становятся очевидным две проблемы. Во-первых, разработчики оберток лучше знакомы с императивными языками программирования (в силу их большей распространенности). Но даже при условии знакомства разработчика с какими-либо декларативными языками, учитывая оригинальность языка, получаем неизбежную необходимость знакомства с новым языком. Во-вторых, элементарные задачи, которые возникают при разработке оберток, лучше решаются с помощью императивных языков. Это косвенно признают разработчики инструментариев, основанных на декларативных языках, встраивая частичную поддержку императивных языков [6].

Потребитель результата функционирования обертки - программный комплекс. Это значит, что обертку (и среду для ее выполнения, если таковая имеется) необходимо интегрировать в систему, в которой располагается потребитель. Следствием предыдущего пункта являются дополнительные проблемы на этом этапе.

С учетом выявленных недостатков предлагается способ создания оберток, основанный на объектном языке с усиленной поддержкой

HTML. При таком способе создания оберток все перечисленные недостатки исчезают.

Использование объектного языка в качестве основы обертки

В настоящее время индустрия разработки программного обеспечения значительно эволюционировала. В частности, на сегодняшний день нет значительных трудностей встроить поддержку широко известных языков в собственные приложения. Для того чтобы избавиться от недостатков, связанных с оригинальными языками, необходимо обеспечить поддержку какого-либо (или нескольких) широко распространенного языка.

Выбрав объектный язык, создатель оберток не должен изучать, возможно, новую для него парадигму разработки. Ограниченная поддержка императивных языков больше не нужна.

Усиленная поддержка HTML

Для того чтобы обеспечить еще лучшее соответствие требований разработке оберток, необходимо обеспечить поддержку манипуляций с HTML. В качестве спецификации функций, которые необходимо обеспечить, возьмем набор методов, которые предоставляет стандарт Document Object Model для структуры HTML. Методы из этого набора, например, используются в современных вебприложениях для построения графического интерфейса пользователя, этим гарантируя достаточную гибкость и полноту для рассматриваемой задачи. К тому же, с использованием знакомого подхода сложность использования для среднего программиста уменьшается.

Интеграция в инфраструктуру приложений

Выбор объектного языка для оберток позволяет использовать всю мощь инфраструктурных решений, которые доступны на сегодняшний день. Помимо стандартных путей интеграции через хранилища данных (файлы, базы данных и прочее), такой подход обеспечивает максимальную гибкость. Например, может быть реализован общеизвестный шаблон проектирования «Наблюдатель»

ЛЕСНОЙ ВЕСТНИК 6/2012

115

i Надоели баннеры? Вы всегда можете отключить рекламу.