Автоматический сбор данных по примерам
DESCRIPTION
В настоящее время в интернете можно найти огромное количество полезной информации. Повсеместно встает проблема сбора этой информации в автоматическом режиме. Однако полностью автоматические методы извлечения информации далеко не всегда могут обеспечить необходимую полноту и точность результата. В докладе будет представлен новый инструмент для управляемого извлечения структурированных данных. Пользователь указывает примеры интересующей его информации на нескольких страницах сайта. Система автоматически строит шаблоны специального вида для поиска такой же информации на всех страницах сайта. Будет рассказано об используемых алгоритмах и проблемах, с которыми пришлось столкнуться при их реализации. Также будет дан обзор нерешенных задач и перспектив их развития.TRANSCRIPT
Автоматический сбор данных по примерамСергей НуркРазработчик
YaC, Москва, 1 октября 2010 года
План
● Введение● SinglePage● Алгоритм● Итоги
2
Глава 1.Введение
3
5
6
Вёрстка
Разнообразна Часто изменяется
7
Специализированные парсеры
На каждый сайт – свой
8
Нужна армия
9
Общие алгоритмы
Предполагают наличие на странице регулярной структуры
10
11
MDR
Основные требования
● Простая настройка● Простая поддержка● Высокие показатели полноты и точности
12
Глава 2.SinglePage
13
Управляемая экстракция1. Пользователь задает примеры
2. Система автоматически извлекает данные со всего сайта
14
Взгляд внутрь1. По примерам строим шаблоны (один атрибут – один шаблон)
2. Применяем шаблоны к остальным (подходящим) страницам
15
Гипотетические преимущества
● Быстрая настройка
● Не требуется разбираться в структуре страницы
● Структурированное извлечение нужной информации
● Устойчивость к изменениям вёрстки (пересоздание шаблонов)
16
Ограничения● Отдельная страница на каждый объект● Группа страниц с однотипной вёрсткой
17
Глава 3.Алгоритм
18
Позиционирование
1. Xpath
2. Шаблон в виде дерева
19
20
21
//ul/li[3]/span
22
23
//ul/li[3]/span
24
//ul/li[3]/span Size=20 quad laser...
TreePattern
25
26
TreePattern
Схема алгоритма
27
● Находим вхождения примеров● Строим TreePattern, задающий
положение узла● Применяем TreePattern к
остальным страницам
Построение TreePattern
28
● Начинаем от мест вхождения примеров
● Синхронно движемся по деревьям, сравнивая узлы
● Накапливаем TreePattern
Построение TreePattern
29
Построение TreePattern
30 30
Построение TreePattern
31 31
Построение TreePattern
32 32
Построение TreePattern
33 33
34
Проблема
Препятствия
● Сложности с вхождением примеров
● Неправильные страницы
35
Поиск вхождений
36
Множественные вхождения
4 варианта
Выбираем лучший
37
Фильтрация страниц
38
Применяем шаблоны
Не применяем шаблоны
Все страницы
Глава 4.Итоги
39
Изменяющийся контент
Изменяется не везде
Хватает информации для формирования шаблонов
Есть возможность исправить пример
40
Статистика
Время создания < 20 мин
Предварительная оценка качества – несколько секунд
Полнота: 88% Точность: 92%
successfail
successfail
41
Нерешенные задачи
● Несколько объектов на странице
● Хорошая устойчивость к неоднородной верстке
42
ЗаключениеПолуавтоматические методы
● По качеству данных и универсальности сравнимы со сбором «в ручную»
● Сложность и время настройки минимальны
P.S. Экономьте Ваше время!
43
Вопросы
44