Your SlideShare is downloading. ×
М. Коробов "Машинное обучение на фронте и в тылу", DUMP-2014
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

1,069
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,069
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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