М. Коробов "Машинное обучение на фронте и в тылу", DUMP-2014

1,621 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,621
On SlideShare
0
From Embeds
0
Number of Embeds
51
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

М. Коробов "Машинное обучение на фронте и в тылу", DUMP-2014

  1. 1. Машинное обучение в ScrapingHub Михаил Коробов, DUMP 2014
  2. 2. Задачи • Скачать веб-странички; • из HTML вытащить информацию.
  3. 3. Примеры • цены и продукты • названия и контакты организаций • категории товаров • … • места дислокации батальонов в WWI • энергопотребление вентиляторов
  4. 4. Единого подхода нет
  5. 5. Подходы • Правила (xpath, css, regex) - Scrapy • …
  6. 6. Сложные случаи • 100000 сайтов, все разные • сайт один, но информация - в обычном тексте • объединение информации из разных источников • хочется «накликать» мышкой, что извлекать, и не писать код
  7. 7. Примеры проектов
  8. 8. 100k сайтов; узнать, какие веб-студии их делали
  9. 9. Классификация ссылок • текст ссылки • текст в title • текст до ссылки • target=_blank • …
  10. 10. Учет нескольких факторов • AND: 15*x1 + 15*x2 > 20 • OR: 15*x1 + 15*x2 > 10 ! • z = sum(wi*xi) • P = f(z)
  11. 11. Подбор правил (весов) • вручную • автоматически: SVM (без ядра), Logistic Regression
  12. 12. Подход • для каждой ссылки выделить признаки • перевести признаки в цифры (получить вектор x) • для каждой ссылки передать в библиотеку x и метку (ссылка на веб-студию: да/нет) • библиотека подберет веса
  13. 13. Подход (предсказание) • для каждой ссылки выделить признаки • перевести признаки в цифры (получить вектор x) • для каждой ссылки передать в библиотеку x • библиотека вернет метку (веб-студия/нет)
  14. 14. Тонкости • Переобучение • Регуляризация • Подбор параметров классификатора • Кросс-валидация
  15. 15. Поиск именованных сущностей (NER) есть 100k сайтов, нужно узнать: • название организации • ее адреса • телефоны • факсы • время работы • URL-ы форм обратной связи • размещенные вакансии • способы подачи заявки на работу • …
  16. 16. US Address <ORG> <STREET> <CITY> <ZIPCODE> <COUNTRY> tel: <TEL>, fax: <FAX>
  17. 17. Правила - сложные и работают не очень хорошо • части необязательны • встречаются в разных местах страницы • сокращения • перестановки • названия организаций не проверишь по словарю • …
  18. 18. Название организации • подстрока веб-страницы • несколько токенов, идущих подряд
  19. 19. Contact:O Us:O ScrapingHub:B-ORG Inc.:I-ORG Copyright:O 2014:O BIO-кодирование
  20. 20. O I-ORG B-ORG … I-ORG I-STREET B-CITY
  21. 21. CRF • обычно 1 порядка • максимизирует вероятность всей цепочки, а не тегов для отдельных токенов • реализации: Wapiti, CRFsuite
  22. 22. Подход • Выделяем из HTML текст • разбиваем его на токены • тренировочные данные: каждому токену сопоставляем тег в BIO кодировке • для каждого токена определяем характерные признаки • передаем все в библиотеку для тренировки
  23. 23. Примеры признаков (фич) • сам токен • предыдущий токен • с заглавной буквы? • по регекспу похож на телефон • часть названия города и GeoNames (начало, середина?) • HTML-элемент, в котором лежит токен • первый или последний токен в HTML элементе? • word2vec
  24. 24. Разметка тренировочных данных • WebAnnotator (https://addons.mozilla.org/en-US/ firefox/addon/webannotator/) • GATE (https://gate.ac.uk/)
  25. 25. WebStruct github.com/scrapinghub/webstruct • загрузка данных • токенизация с сохранением информации о позиции в HTML • конвертация в BIO и обратно • интерфейсы к CRF • работа с GeoNames • метрики • группировка сущностей • …
  26. 26. Вопросы? https://github.com/kmike

×