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

  • 1,019 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,019
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
18
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