Как научить машину выделять полезную информацию на веб-странице? Как извлекать из неё структурированный данные? С какими трудностями можно столкнуться, пытаясь применить один подход к сайтам с разной вёрсткой? Помимо этих вопросов, докладчик затронет темы машинного обучения и алгоритмов обхода веба.
10. The Document Object Model (DOM) is a cross-platform
and language-independent convention for representing
and interacting with objects in HTML, XHTML, and XML
documents.
10
Всем DOM
26. стоит искать в том блоке, где больше всего текста
〉комментарии к посту
〉рейтинг в одном блоке, описание - в другом
предварительная обработка страницы
〉выделение значимого контента
какая-нибудь магия
26
В каком месте на странице искать?
33. по какому признаку объединять узлы?
сколько сегментов нам надо?
не знаем, какой из сегментов основной
33
Недостатки block fusion
34. 34
Оптимизация функционала
<root>
<parent/>
<p>покупайте плюшки</p>
<parent>
<child/>
<child foo=“bar”/>
<p> Hатpиевые атомы предварительно были
замечены близко с центром других комет, но
гелиоцентрическое расстояние жизненно дает
поперечник. Узел на следующий год, когда было
лунное затмение и сгорел древний храм Афины в
Афинах (при эфоре Питии и афинском архонте
Каллии), притягивает экваториальный лимб.</p>
<child foo=“zoo”/>
</parent>
<p>покупайте наших слонов</p>
</root>
35. 35
<root>
<parent/>
<p>покупайте плюшки</p>
<parent>
<child />
<child foo=“bar”/>
<p> Hатpиевые атомы предварительно были
замечены близко с центром других комет, но
гелиоцентрическое расстояние жизненно дает
поперечник. Узел на следующий год, когда было
лунное затмение и сгорел древний храм Афины в
Афинах (при эфоре Питии и афинском архонте
Каллии), притягивает экваториальный лимб.</p>
<child foo=“zoo”/>
</parent>
<p>покупайте наших слонов</p>
</root>
Оптимизация функционала
36. заменим в коде страницы каждый тег на -1 ,
каждое слово в текстовой части на 1
<div><p>Бубен</p></div>
36
Пляска с
-1 -1 +1 -1 -1
42. Об ошибках
42
Тут могла быть
ваша реклама
Экспертная оценка
Положительна
я
Отрицательн
ая
Оценка
системы
Положительн
ая
TP FP
Отрицательн
ая
FN TN
43. 43
О страшных ошибках
И тут могла быть
ваша реклама
Экспертная оценка
Положительна
я
Отрицательн
ая
Оценка
системы
Положительн
ая
TP FP
Отрицательн
ая
FN TN
54. делаем предположение о количестве ( 8<N<25 )
ищем нумерацию на странице
пробуем искать регулярными выражениями
54
Если количество не указано в заголовке
55. 55
Как выбрать направление списка?
с начала или с конца?
1.
2.
3.
4.
5.
6.
10.
9.
8.
7.
6.
5.
4.
3.
2.
1.
57. 57
Пример использования regExp
Хойан, Вьетнам
Человек, ни разу не занимавшийся планированием
самостоятельного путешествия во Вьетнам, скорее всего,
никогда не слышал о Хойане, а услышав, спутал бы с Ханоем.
Гоа, Индия
Это правда, цены на отдых в Гоа в последние годы растут
чересчур быстро, но того, кто туда доберётся, ожидает щедрое
вознаграждение.
Каир, Египет
Каир сегодня следует отнести к категории «в зависимости от
новостей», на самом деле, ситуация в городе только
стимулирует снижение цен на перелеты и неплохие отели в
58. Хойан, Вьетнам
Человек, ни разу не занимавшийся планированием
самостоятельного путешествия во Вьетнам, скорее всего,
никогда не слышал о Хойане, а услышав, спутал бы с Ханоем.
Гоа, Индия
Это правда, цены на отдых в Гоа в последние годы растут
чересчур быстро, но того, кто туда доберётся, ожидает щедрое
вознаграждение.
Каир, Египет
Каир сегодня следует отнести к категории «в зависимости от
новостей», на самом деле, ситуация в городе только
стимулирует снижение цен на перелеты и неплохие отели в
58
Пример использования regExp
60. Место, Страна
Место в Стране
Место (Страна)
Страна: Место
…
60
Еще примеры объектов для поиска
61. плюсы
понятно, как работает
перечисления обычно ведутся одинаковым
способом
минусы
трудно перебрать все варианты
могут выделить лишнее
61
Итоги использования regExp
65. 65
Аккуратность при выборе стоп-слов
Страны
Авиабилеты
Отели
Туры
Виза
Контакты
…
Искусство
Финансы
Новости
Наука
Идеи
Техника
…
Египет
Испания
Колумбия
Перу
Индия
Польша
…
66. плюсы
простота в реализации
легкость в отладке
минусы
неконтролируемый рост их количества
не все стоп-слова принесут только пользу
необходимо постоянное вмешательство человека
66
Итоги использования стоп-слов
70. ходим по childnodes
выбираем уровень вложенности (оптимально 7)
отбрасываем теги <!script> , <!comment>
70
Генерируем xpath-ы
71. 71
для url1 : $x(‘/a/b/text()’) = ‘Египет Турция Тунис …’
для url2 : $x(‘/a/b/text()’) = ‘Египет Турция Тунис …’
Ищем совпадающие блоки
для url1 : $x(‘/div/a/text()’) = ‘Авиабилеты Отели …’
для url2 : $x(‘/div/a/text()’) = ‘Авиабилеты Отели …’
72. Удаляем со страницы те элементы dom дерева, что
являются результатом выполнения найденых xpath
72
Чистим нашу страницу
73. плюсы
уверенность в том, что ничего нужного не пропадёт
совместимость с алгоритмами сегментации
минусы
требуется больше времени, чем стоп-словам
необходимо подбирать глубину xpath
и еще плюсы
все минусы — разовая задача
73
Итоги вырезания боковых блоков