SlideShare une entreprise Scribd logo
1  sur  28
Машинное обучение
Kontur Labs             @xoposhiy
  Павел Егоров
  Михаил Самойленко   pe@kontur.ru
  Алексей Буславьев
Задача
Бухгалтерские документы:
     акты, накладные, счета, договора, …

Excel

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

Хотим извлекать «интересные» поля:
• Тип документа, Номер, Дата
• Сумма, НДС, Основание
• Покупатель, Продавец
• …
3
4
5
6
7
Машинное обучение

 Куча хороших данных
             → PROFIT
Данные
Данные — это множество векторов:
vi = (1, 0.5, 1.37, 2.8, -1, -0.1, …)

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

•   Нейронные сети
•   KNN (K nearest neighbors)
•   Линейное разделение
•   Дерево решений
•   Рандомизированный лес
•   SVM
Feature-engineering
Задача:
«Является ли данный кусок текста датой документа?»




    Фичи, господа, фичи!
Фичи
•   Положение на странице
•   Размер шрифта
•   Жирность
•   Расстояние до ключевых слов
•   …и направление
•   Положение гипотезы внутри блока текста (ячейки)
•   Выравнивание
•   На сколько далеко от Now?
Прагматичный взгляд
Машинное обучение — всего лишь способ объединения
большого количества слабых признаков в сильный
классификатор



Если фич мало — просто закодируйте эвристику.
Генеральный план
Ищем в документе поле, в котором Тип/Дата/Номер/…

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

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



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

Метрики качества:
• Точность = truePositive / allPositive
• Полнота = truePositive / allTrue
Общая схема
                             Придумываем
                                                 Обучаем
                                 фичи
 Делаем       Размечаем
генератор        базу
 гипотез      документов


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



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




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

1. Новые типы документов, со своими полями
2. Новые форматы
3. Optical character recognition
Я тоже хочу так уметь!
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
Q&A
Егоров Павел, Kontur Labs
@xoposhiy
pe@kontur.ru
Excel
• http://poi.apache.org (JAVA)
• https://code.google.com/p/npoi/ (.NET port)

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

Игнорируем:
    Картинки, объекты вне ячеек, границы, …
Фичи. Инвариантность
Инвариантность относительно некоторых трансформаций:

    Шрифт, масштаб, положение, синонимы,
    выравнивание текста, …
Данные — наше всё!
• «Повезло» — у нас уже есть 100К+ документов.
• Грубые фильтры:
  Неинтересные нам документы (отчеты, расчеты, …)
  Дубли и очень похожие документы
  Тестовые, пустые, мусор
     → ~2К документов
RandomForest

Contenu connexe

En vedette

Определение курильщика по кардиограмме
Определение курильщика по кардиограммеОпределение курильщика по кардиограмме
Определение курильщика по кардиограммеАлександр Дьяконов
 
Алгебраический подход к анализу данных и его приложения
Алгебраический подход к анализу данных и его приложенияАлгебраический подход к анализу данных и его приложения
Алгебраический подход к анализу данных и его приложенияАлександр Дьяконов
 
Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)Александр Дьяконов
 
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15] Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15] Python Meetup
 
Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)Александр Дьяконов
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NETRoman Nevolin
 
Machine Learning and Azure Machine Learning
Machine Learning and Azure Machine LearningMachine Learning and Azure Machine Learning
Machine Learning and Azure Machine LearningAlexander Konduforov
 

En vedette (11)

Определение курильщика по кардиограмме
Определение курильщика по кардиограммеОпределение курильщика по кардиограмме
Определение курильщика по кардиограмме
 
Алгебраический подход к анализу данных и его приложения
Алгебраический подход к анализу данных и его приложенияАлгебраический подход к анализу данных и его приложения
Алгебраический подход к анализу данных и его приложения
 
Решение задачи Search Results Relevance
Решение задачи Search Results RelevanceРешение задачи Search Results Relevance
Решение задачи Search Results Relevance
 
Спектральная теория графов
Спектральная теория графовСпектральная теория графов
Спектральная теория графов
 
Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)
 
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15] Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
 
Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)
 
Теория нечётких множеств
Теория нечётких множествТеория нечётких множеств
Теория нечётких множеств
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NET
 
Pandas: обзор основных функций
Pandas: обзор основных функцийPandas: обзор основных функций
Pandas: обзор основных функций
 
Machine Learning and Azure Machine Learning
Machine Learning and Azure Machine LearningMachine Learning and Azure Machine Learning
Machine Learning and Azure Machine Learning
 

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

CV2015. Лекция 5. Выделение объектов.
CV2015. Лекция 5. Выделение объектов.CV2015. Лекция 5. Выделение объектов.
CV2015. Лекция 5. Выделение объектов.Anton Konushin
 
CV2011 Lecture 10. Image retrieval
CV2011 Lecture 10.  Image retrievalCV2011 Lecture 10.  Image retrieval
CV2011 Lecture 10. Image retrievalAnton Konushin
 
CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.Anton Konushin
 
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...JSC “Arcadia Inc”
 
Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)Olga Maksimenkova
 
машинное обучение и анализ данных
машинное обучение и анализ данныхмашинное обучение и анализ данных
машинное обучение и анализ данныхYandex
 
Генерация вопросов к тексту
Генерация вопросов к текстуГенерация вопросов к тексту
Генерация вопросов к текстуIdris Yusupov
 
Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Ontico
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationAnton Gorokhov
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java DeveloperOlexandra Dmytrenko
 
Презентация курса "Основы программирования" на C#
Презентация курса "Основы программирования" на C#Презентация курса "Основы программирования" на C#
Презентация курса "Основы программирования" на C#Vadim Martynov
 
Some Elements of Functional Porgamming Languages
Some Elements of Functional Porgamming LanguagesSome Elements of Functional Porgamming Languages
Some Elements of Functional Porgamming Languages_ymn
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionAnton Konushin
 
Универсальный сигнатурный анализ кода на C#, Java, PHP
Универсальный сигнатурный анализ кода на C#, Java, PHPУниверсальный сигнатурный анализ кода на C#, Java, PHP
Универсальный сигнатурный анализ кода на C#, Java, PHPИван Кочуркин
 
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.Anton Konushin
 
Russir 2010 final
Russir 2010 finalRussir 2010 final
Russir 2010 finalyaevents
 
Машинное обучение в Яндексе
Машинное обучение в ЯндексеМашинное обучение в Яндексе
Машинное обучение в ЯндексеAlexandra Kaminskaya
 

Similaire à Машинное обучение (20)

CV2015. Лекция 5. Выделение объектов.
CV2015. Лекция 5. Выделение объектов.CV2015. Лекция 5. Выделение объектов.
CV2015. Лекция 5. Выделение объектов.
 
CV2011 Lecture 10. Image retrieval
CV2011 Lecture 10.  Image retrievalCV2011 Lecture 10.  Image retrieval
CV2011 Lecture 10. Image retrieval
 
CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.
 
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
 
Squeek 1
Squeek 1Squeek 1
Squeek 1
 
BDD
BDDBDD
BDD
 
Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)
 
машинное обучение и анализ данных
машинное обучение и анализ данныхмашинное обучение и анализ данных
машинное обучение и анализ данных
 
4 azure 24 04
4 azure 24 044 azure 24 04
4 azure 24 04
 
Генерация вопросов к тексту
Генерация вопросов к текстуГенерация вопросов к тексту
Генерация вопросов к тексту
 
Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: Personalization
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
 
Презентация курса "Основы программирования" на C#
Презентация курса "Основы программирования" на C#Презентация курса "Основы программирования" на C#
Презентация курса "Основы программирования" на C#
 
Some Elements of Functional Porgamming Languages
Some Elements of Functional Porgamming LanguagesSome Elements of Functional Porgamming Languages
Some Elements of Functional Porgamming Languages
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time vision
 
Универсальный сигнатурный анализ кода на C#, Java, PHP
Универсальный сигнатурный анализ кода на C#, Java, PHPУниверсальный сигнатурный анализ кода на C#, Java, PHP
Универсальный сигнатурный анализ кода на C#, Java, PHP
 
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
 
Russir 2010 final
Russir 2010 finalRussir 2010 final
Russir 2010 final
 
Машинное обучение в Яндексе
Машинное обучение в ЯндексеМашинное обучение в Яндексе
Машинное обучение в Яндексе
 

Plus de Даниил Силантьев

Перспективы развития услуг мобльной передачи данных
Перспективы развития услуг мобльной передачи данныхПерспективы развития услуг мобльной передачи данных
Перспективы развития услуг мобльной передачи данныхДаниил Силантьев
 
13. Роман Фадеев "Правовые риски в email маркетинге"
13. Роман Фадеев "Правовые риски в email маркетинге"13. Роман Фадеев "Правовые риски в email маркетинге"
13. Роман Фадеев "Правовые риски в email маркетинге"Даниил Силантьев
 
11. Кудренко Дмитрий "Неизвестный email-маркетинг"
11. Кудренко Дмитрий  "Неизвестный email-маркетинг"11. Кудренко Дмитрий  "Неизвестный email-маркетинг"
11. Кудренко Дмитрий "Неизвестный email-маркетинг"Даниил Силантьев
 
10. Рысь Александр "Контент в email маркетинге: 10 работающих идей"
10. Рысь Александр "Контент в email маркетинге: 10 работающих идей"10. Рысь Александр "Контент в email маркетинге: 10 работающих идей"
10. Рысь Александр "Контент в email маркетинге: 10 работающих идей"Даниил Силантьев
 
9. Ильин Владимир Сегментация и персонализация в емейл-маркетинге
9. Ильин Владимир   Сегментация и персонализация в емейл-маркетинге9. Ильин Владимир   Сегментация и персонализация в емейл-маркетинге
9. Ильин Владимир Сегментация и персонализация в емейл-маркетингеДаниил Силантьев
 
8. Савицкая Юлия Стратегия email маркетинга: как сэкономить время, средства ...
8. Савицкая Юлия  Стратегия email маркетинга: как сэкономить время, средства ...8. Савицкая Юлия  Стратегия email маркетинга: как сэкономить время, средства ...
8. Савицкая Юлия Стратегия email маркетинга: как сэкономить время, средства ...Даниил Силантьев
 
12. Иван Шкиря "Почта в одном b2b-сервисе"
12. Иван Шкиря   "Почта в одном b2b-сервисе"12. Иван Шкиря   "Почта в одном b2b-сервисе"
12. Иван Шкиря "Почта в одном b2b-сервисе"Даниил Силантьев
 
4. Сас Андрей "email-маркетинг на крупных базах подписчиков"
4. Сас Андрей   "email-маркетинг на крупных базах подписчиков"4. Сас Андрей   "email-маркетинг на крупных базах подписчиков"
4. Сас Андрей "email-маркетинг на крупных базах подписчиков"Даниил Силантьев
 
6. Александр Пуртов "Репутационные оценки рассылок"
6. Александр Пуртов "Репутационные оценки рассылок"6. Александр Пуртов "Репутационные оценки рассылок"
6. Александр Пуртов "Репутационные оценки рассылок"Даниил Силантьев
 
1. Силантьев Даниил "email-маркетинг с опорой на конкурентов"
1. Силантьев Даниил   "email-маркетинг с опорой на конкурентов"1. Силантьев Даниил   "email-маркетинг с опорой на конкурентов"
1. Силантьев Даниил "email-маркетинг с опорой на конкурентов"Даниил Силантьев
 
3. Дмитрий Пивоваров — "опыт e96 в рассылках"
3. Дмитрий Пивоваров — "опыт e96 в рассылках"3. Дмитрий Пивоваров — "опыт e96 в рассылках"
3. Дмитрий Пивоваров — "опыт e96 в рассылках"Даниил Силантьев
 
Email-маркетинг (для) уральских компаний
Email-маркетинг (для) уральских компанийEmail-маркетинг (для) уральских компаний
Email-маркетинг (для) уральских компанийДаниил Силантьев
 
Думай как подписчик. Лайфхаки емэйл-маркетолога
Думай как подписчик. Лайфхаки емэйл-маркетологаДумай как подписчик. Лайфхаки емэйл-маркетолога
Думай как подписчик. Лайфхаки емэйл-маркетологаДаниил Силантьев
 
ВЕЧЕР EMAIL-МАРКЕТИНГА В ЕКАТЕРИНБУРГЕ
ВЕЧЕР EMAIL-МАРКЕТИНГА В ЕКАТЕРИНБУРГЕВЕЧЕР EMAIL-МАРКЕТИНГА В ЕКАТЕРИНБУРГЕ
ВЕЧЕР EMAIL-МАРКЕТИНГА В ЕКАТЕРИНБУРГЕДаниил Силантьев
 
Email-маркетинг для организаторов мероприятий
Email-маркетинг для организаторов мероприятийEmail-маркетинг для организаторов мероприятий
Email-маркетинг для организаторов мероприятийДаниил Силантьев
 

Plus de Даниил Силантьев (20)

презентация Huawei
презентация Huaweiпрезентация Huawei
презентация Huawei
 
Перспективы развития услуг мобльной передачи данных
Перспективы развития услуг мобльной передачи данныхПерспективы развития услуг мобльной передачи данных
Перспективы развития услуг мобльной передачи данных
 
13. Роман Фадеев "Правовые риски в email маркетинге"
13. Роман Фадеев "Правовые риски в email маркетинге"13. Роман Фадеев "Правовые риски в email маркетинге"
13. Роман Фадеев "Правовые риски в email маркетинге"
 
11. Кудренко Дмитрий "Неизвестный email-маркетинг"
11. Кудренко Дмитрий  "Неизвестный email-маркетинг"11. Кудренко Дмитрий  "Неизвестный email-маркетинг"
11. Кудренко Дмитрий "Неизвестный email-маркетинг"
 
7. николаев леонид mail con_2015
7. николаев леонид mail con_20157. николаев леонид mail con_2015
7. николаев леонид mail con_2015
 
10. Рысь Александр "Контент в email маркетинге: 10 работающих идей"
10. Рысь Александр "Контент в email маркетинге: 10 работающих идей"10. Рысь Александр "Контент в email маркетинге: 10 работающих идей"
10. Рысь Александр "Контент в email маркетинге: 10 работающих идей"
 
9. Ильин Владимир Сегментация и персонализация в емейл-маркетинге
9. Ильин Владимир   Сегментация и персонализация в емейл-маркетинге9. Ильин Владимир   Сегментация и персонализация в емейл-маркетинге
9. Ильин Владимир Сегментация и персонализация в емейл-маркетинге
 
8. Савицкая Юлия Стратегия email маркетинга: как сэкономить время, средства ...
8. Савицкая Юлия  Стратегия email маркетинга: как сэкономить время, средства ...8. Савицкая Юлия  Стратегия email маркетинга: как сэкономить время, средства ...
8. Савицкая Юлия Стратегия email маркетинга: как сэкономить время, средства ...
 
12. Иван Шкиря "Почта в одном b2b-сервисе"
12. Иван Шкиря   "Почта в одном b2b-сервисе"12. Иван Шкиря   "Почта в одном b2b-сервисе"
12. Иван Шкиря "Почта в одном b2b-сервисе"
 
4. Сас Андрей "email-маркетинг на крупных базах подписчиков"
4. Сас Андрей   "email-маркетинг на крупных базах подписчиков"4. Сас Андрей   "email-маркетинг на крупных базах подписчиков"
4. Сас Андрей "email-маркетинг на крупных базах подписчиков"
 
6. Александр Пуртов "Репутационные оценки рассылок"
6. Александр Пуртов "Репутационные оценки рассылок"6. Александр Пуртов "Репутационные оценки рассылок"
6. Александр Пуртов "Репутационные оценки рассылок"
 
1. Силантьев Даниил "email-маркетинг с опорой на конкурентов"
1. Силантьев Даниил   "email-маркетинг с опорой на конкурентов"1. Силантьев Даниил   "email-маркетинг с опорой на конкурентов"
1. Силантьев Даниил "email-маркетинг с опорой на конкурентов"
 
3. Дмитрий Пивоваров — "опыт e96 в рассылках"
3. Дмитрий Пивоваров — "опыт e96 в рассылках"3. Дмитрий Пивоваров — "опыт e96 в рассылках"
3. Дмитрий Пивоваров — "опыт e96 в рассылках"
 
Проект Timejob
Проект TimejobПроект Timejob
Проект Timejob
 
Проект СлейКнигу
Проект СлейКнигуПроект СлейКнигу
Проект СлейКнигу
 
Email-маркетинг (для) уральских компаний
Email-маркетинг (для) уральских компанийEmail-маркетинг (для) уральских компаний
Email-маркетинг (для) уральских компаний
 
Думай как подписчик. Лайфхаки емэйл-маркетолога
Думай как подписчик. Лайфхаки емэйл-маркетологаДумай как подписчик. Лайфхаки емэйл-маркетолога
Думай как подписчик. Лайфхаки емэйл-маркетолога
 
ВЕЧЕР EMAIL-МАРКЕТИНГА В ЕКАТЕРИНБУРГЕ
ВЕЧЕР EMAIL-МАРКЕТИНГА В ЕКАТЕРИНБУРГЕВЕЧЕР EMAIL-МАРКЕТИНГА В ЕКАТЕРИНБУРГЕ
ВЕЧЕР EMAIL-МАРКЕТИНГА В ЕКАТЕРИНБУРГЕ
 
Email-маркетинг для ИТ-компаний
Email-маркетинг для ИТ-компанийEmail-маркетинг для ИТ-компаний
Email-маркетинг для ИТ-компаний
 
Email-маркетинг для организаторов мероприятий
Email-маркетинг для организаторов мероприятийEmail-маркетинг для организаторов мероприятий
Email-маркетинг для организаторов мероприятий
 

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

  • 1. Машинное обучение Kontur Labs @xoposhiy Павел Егоров Михаил Самойленко pe@kontur.ru Алексей Буславьев
  • 2. Задача Бухгалтерские документы: акты, накладные, счета, договора, … Excel Установленных стандартных шаблонов — НЕТ! Хотим извлекать «интересные» поля: • Тип документа, Номер, Дата • Сумма, НДС, Основание • Покупатель, Продавец • …
  • 3. 3
  • 4. 4
  • 5. 5
  • 6. 6
  • 7. 7
  • 8. Машинное обучение Куча хороших данных → PROFIT
  • 9. Данные Данные — это множество векторов: vi = (1, 0.5, 1.37, 2.8, -1, -0.1, …) Разметка — что-то, известное для каждого вектора обучающей выборки. Это то, что мы хотим научиться вычислять для произвольного вектора.
  • 10. Классификаторы …тренируются классифицировать на обучающей выборке • Нейронные сети • KNN (K nearest neighbors) • Линейное разделение • Дерево решений • Рандомизированный лес • SVM
  • 11. Feature-engineering Задача: «Является ли данный кусок текста датой документа?» Фичи, господа, фичи!
  • 12. Фичи • Положение на странице • Размер шрифта • Жирность • Расстояние до ключевых слов • …и направление • Положение гипотезы внутри блока текста (ячейки) • Выравнивание • На сколько далеко от Now?
  • 13. Прагматичный взгляд Машинное обучение — всего лишь способ объединения большого количества слабых признаков в сильный классификатор Если фич мало — просто закодируйте эвристику.
  • 14. Генеральный план Ищем в документе поле, в котором Тип/Дата/Номер/… Но постойте! Это же не задача классификации! Двухходовка: Простая эвристика находит все гипотезы Классификатор выбирает из них правильную
  • 15.
  • 16.
  • 18. Обучение и тестирование Размеченная база: • Обучающая выборка • Тестовая выборка Метрики качества: • Точность = truePositive / allPositive • Полнота = truePositive / allTrue
  • 19. Общая схема Придумываем Обучаем фичи Делаем Размечаем генератор базу гипотез документов Изучаем ошибки Для каждого поля отдельно
  • 21. ИКР Распознаем всё, во всех форматах! 1. Новые типы документов, со своими полями 2. Новые форматы 3. Optical character recognition
  • 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
  • 23. Q&A Егоров Павел, Kontur Labs @xoposhiy pe@kontur.ru
  • 24.
  • 25. Excel • http://poi.apache.org (JAVA) • https://code.google.com/p/npoi/ (.NET port) Текст-блок: X, Y, W, H, Font, VAlignment, HAllignment Интерпретация формул Игнорируем: Картинки, объекты вне ячеек, границы, …
  • 26. Фичи. Инвариантность Инвариантность относительно некоторых трансформаций: Шрифт, масштаб, положение, синонимы, выравнивание текста, …
  • 27. Данные — наше всё! • «Повезло» — у нас уже есть 100К+ документов. • Грубые фильтры: Неинтересные нам документы (отчеты, расчеты, …) Дубли и очень похожие документы Тестовые, пустые, мусор → ~2К документов