28
Машинное обучение Kontur Labs Павел Егоров Михаил Самойленко Алексей Буславьев @ xoposhiy [email protected]

Машинное обучение

  • Upload
    -

  • View
    560

  • Download
    1

Embed Size (px)

DESCRIPTION

Презентация Павла Егорова, СКб Контур

Citation preview

Page 1: Машинное обучение

Машинное обучение

Kontur LabsПавел ЕгоровМихаил СамойленкоАлексей Буславьев

@[email protected]

Page 2: Машинное обучение

ЗадачаБухгалтерские документы:

акты, накладные, счета, договора, …

Excel

Установленных стандартных шаблонов — НЕТ!

Хотим извлекать «интересные» поля:• Тип документа, Номер, Дата• Сумма, НДС, Основание• Покупатель, Продавец• …

Page 3: Машинное обучение

3

Page 4: Машинное обучение

4

Page 5: Машинное обучение

5

Page 6: Машинное обучение

6

Page 7: Машинное обучение

7

Page 8: Машинное обучение

Куча хороших данных

→ PROFIT

Машинное обучение

Page 9: Машинное обучение

Данные

Данные — это множество векторов:

vi = (1, 0.5, 1.37, 2.8, -1, -0.1, …)

Разметка — что-то, известное для каждого вектора обучающей выборки. Это то, что мы хотим научиться вычислять для произвольного вектора.

Page 10: Машинное обучение

Классификаторы…тренируются классифицировать на обучающей выборке

• Нейронные сети• KNN (K nearest neighbors)• Линейное разделение• Дерево решений• Рандомизированный лес• SVM

Page 11: Машинное обучение

Feature-engineeringЗадача:«Является ли данный кусок текста датой документа?»

Фичи, господа, фичи!

Page 12: Машинное обучение

Фичи• Положение на странице• Размер шрифта• Жирность• Расстояние до ключевых слов• …и направление • Положение гипотезы внутри блока текста

(ячейки)• Выравнивание• На сколько далеко от Now?

Page 13: Машинное обучение

Прагматичный взглядМашинное обучение — всего лишь способ объединения большого количества слабых признаков в сильный классификатор

Если фич мало — просто закодируйте эвристику.

Page 14: Машинное обучение

Генеральный планИщем в документе поле, в котором Тип/Дата/Номер/…

Но постойте! Это же не задача классификации!

Двухходовка:Простая эвристика находит все гипотезыКлассификатор выбирает из них

правильную

Page 15: Машинное обучение
Page 16: Машинное обучение
Page 17: Машинное обучение

Разметка базы

Demo

Page 18: Машинное обучение

Обучение и

тестированиеРазмеченная база:• Обучающая выборка• Тестовая выборка

Метрики качества:• Точность = truePositive / allPositive• Полнота = truePositive / allTrue

Page 19: Машинное обучение

Общая схема

Для каждого поля отдельно

Размечаем базу

документов

Делаем генератор

гипотез

Обучаем

Изучаем ошибки

Придумываем фичи

Page 20: Машинное обучение

Отладка

Demo

Page 21: Машинное обучение

ИКРРаспознаем всё, во всех форматах!

1. Новые типы документов, со своими полями2. Новые форматы3. Optical character recognition

Page 22: Машинное обучение

Я тоже хочу так уметь!Machine learning @ Stanford university (www.coursera.org)

Классическая книга:Pattern Recognition and Machine Learning

Christopher M. Bishop

Книги попроще:Machine Learning in Action, Peter Harrington

Machine learning for Hackers, Drew Conway, John Myles White

Page 24: Машинное обучение
Page 25: Машинное обучение

Excel• http://poi.apache.org (JAVA)• https://code.google.com/p/npoi/ (.NET port)

Текст-блок: X, Y, W, H, Font, VAlignment, HAllignmentИнтерпретация формул

Игнорируем:Картинки, объекты вне ячеек, границы,

Page 26: Машинное обучение

Фичи. ИнвариантностьИнвариантность относительно некоторых трансформаций:

Шрифт, масштаб, положение, синонимы, выравнивание текста, …

Page 27: Машинное обучение

Данные — наше всё!• «Повезло» — у нас уже есть 100К+

документов.• Грубые фильтры:

Неинтересные нам документы (отчеты, расчеты, …)Дубли и очень похожие документыТестовые, пустые, мусор

→ ~2К документов

Page 28: Машинное обучение

RandomForest