АННОТАЦИЯ 2
ВВЕДЕНИЕ 7
1 МЕТОДЫ, АЛГОРИТМЫ И МОДЕЛИ АНАЛИЗА ВЕБ-СТРАНИЦ 9
1.1 Методы машинного обучения 9
1.1.1 Деревья решений 10
1.1.2 Наивный байесовский классификатор 13
1.1.3 Выбор общих параметров 15
1.2 Методы анализа признакового пространства 16
1.2.1 Корреляция 16
1.2.2 Автокорреляция 18
1.2.3 Факторный анализ 20
1.3 Подготовка данных для анализа 22
1.4 Описание предметной области 22
1.4.1 Веб-скрейпинг 22
1.4.2 Объектная модель документа 24
2 ПОСТРОЕНИЕ ПРИЗНАКОВОГО ПРОСТРАНСТВА 27
2.1 Постановка задачи 27
2.2 Формирование обучающей выборки 27
2.3 Пример признакового пространства для одной из веб-страниц 28
2.4 Выбор метода для поиска аналога 30
2.4.1 Деревья решений 30
2.4.2 Наивный байесовский классификатор 31
2.4.3 Выбор общих параметров 32
2.5 Отбор оптимальных признаков 33
2.6 Выводы по разделу 37
3 РАЗРАБОТКА ПРОГРАММЫ ДЛЯ ТЕСТИРОВАНИЯ МЕТОДА ПОИСКА
АНАЛОГОВ 38
3.1 Разработка архитектуры приложения 38
3.2 Проверка корректности работы 41
3.4 Выводы по разделу 46
ЗАКЛЮЧЕНИЕ 47
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 48
ПРИЛОЖЕНИЕ 1 Исходный код
В современном мире, нас окружает огромное количество информации, которая, чаще всего, хранится в электронном виде на веб-сайтах. У каждого магазина, новостного агентства или другого сервиса есть сайт, с которого можно получить какие-то данные, например, список доступных товаров или актуальных новостей. Люди используют социальные сети, где публикуют свои личные данные: имя, фамилию и номер телефона.
Образуется конкуренция в различных сферах деятельности людей, например, в бизнесе и рекламе. Она требует активного сбора данных и делает крайне востребованными подходы по их оперативному получению из уже имеющейся открытой информации.
Такой большой поток не отсортированных сведений может показаться нам бесполезным, но в нем содержится ценная информация, которую можно использовать в бизнесе, рекламе и других сферах деятельности.
В ходе стремительного развития веб-технологий появляются новые способы для улучшения взаимодействия каждого пользователя с интернет страницами. Интернет полон открытых данных, но требует определенных специальных средств для их сбора.
Из-за популярности этой сферы, была сформирована область программной инфраструктуры, поддерживающей накопление и постоянное пополнение архивов данных различной природы и назначения.
Проблема обеспечения простого и быстрого сбора больших объемов данных из сети стала более актуальной. Возникает потребность в определенном классе программных средств, которые станут удобным и простым в использовании инструментом для рядового пользователя, не имеющего продвинутых знаний в области современных веб-технологиях, при этом имеющего высокую скорость сбора корректных данных на различных веб-страницах.
Для комплексного выполнения таких требований нужно использовать новые подходы и методы в разработке, способные решить все основные проблемы создания и работы систем данного класса.
Цель данной работы - построение признакового пространства для веб-страниц и их визуальных элементов.
Задачи данной работы:
- выполнить обзор методов машинного обучения, предназначенных для решения задачи классификации;
- описать оптимальное признаковое пространство для веб-страниц и их элементов;
- выполнить программную реализацию приложения, которое извлекает структурированные данные с веб-страниц;
- провести тестирование разработанного приложения.
Рассмотрена задача построения признакового пространства для элементов веб-страниц и разработана программное обеспечение в форме расширения для браузера.
Выполнен обзор существующих методов поиска аналогов и анализа признакового пространства. Было рассмотрено три метода: дерево решений, наивный байесовский классификатор и метод выбора общих параметров. Метод выбора общих параметров показал наилучшие результаты.
Было выбрано несколько признаков для элементов веб-страниц из всех признаков описанных в DOM-дереве элемента. Произведена проверка на независимость признаков. Все выбранные признаки оказались независимыми. Данное признаковое пространство позволило выбрать аналоги на страницах из обучающей выборки в 95% случаев.
Была разработана программа на языке JavaScript как расширение для браузера Google Chrome и протестирована на одном из сайтов из выборки. Программа нашла все 120 аналогичных элементов на сайте и собрала их за 6 секунд.