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