Привет, Хабр!

В этом посте хотим рассказать, как технология FastML (о самой разработке уже рассказывали здесь) начала работать на российских документах разного типа в контуре нашего продукта ContentCapture и что из этого вышло.

Вкратце введем в курс дела. Многие компании сталкиваются с необходимостью обрабатывать большое количество однотипных (не одинаковых) документов, извлекать из них нужную информацию и экспортировать. Естественно, это долго, мучительно, а иногда еще и с ошибками. Для автоматизации такой рутины и используется ContentCapture, а точнее, встроенные в него две технологии — гибкие описания и теперь еще и FastML. 

Гибкие описания — это универсальный подход к извлечению данных, особенно если речь идет о сложных документах. Однако для их создания нужно время и навыки работы со специальным инструментом — Content AI Layout Studio. Для тех, у кого таких скиллов нет, и был создан FastML, с которым сможет справиться любой пользователь, независимо от техподготовки. С помощью FastML модели для новых типов документов создаются в несколько кликов на основе нескольких примеров, что значительно сокращает время их внедрения в контур компании и бизнес-процессы. 

Под катом рассказываем и показываем, какие теперь документы могут автоматически обрабатывать пользователи ContentCapture с помощью встроенного в него FastML, а также делимся данными тестирования и объясняем, в чем могут возникнуть сложности.

Обучение FastML

Для того чтобы добавить в ContentCapture новый тип документа для автоматической обработки данных, необходимо предварительно обучить технологию FastML. Рекомендуется использовать для этого не менее 5 документов, разметив в них области, из которых программа будет извлекать и экспортировать информацию. Кстати, даже если документы однотипные, отдельные поля могут располагаться в разных местах — и наша технология умеет это распознавать и корректно обрабатывать.

На данный момент FastML можно обучить полям со следующей информацией: текст (печатный и рукописный), штрихкоды, метки (чекмарки) и таблицы.

Количество документов, загружаемых в систему для обучения, не ограничено. Однако следует учитывать, что для обучения будут использоваться только 50 последних документов. Чем больше общий объем загруженных данных, тем больше ресурсов — памяти и времени — потребуется для их обработки. Важно также помнить, что речь идет о документах с одинаковым лейаутом (например, как в паспорте).

Если речь идет о документах одного типа, но с разными лейаутами (например, счет-фактуры или прайс-листы от разных компаний), предыдущий способ настройки технологии может дать неточные результаты, и компании потребуется разрабатывать более сложные и индивидуальные решения.

Если говорить о скорости обучения, то логично ожидать, что чем больше документов получит система, тем дольше она будет обучаться. Но логично и другое: качество модели, обучившейся на большем количестве примеров, будет лучше — чем больше документов (с ограничением до 50 шт.), тем лучше результат.

Так, если залить в систему 10 документов для обучения, то прирост времени обработки документов вырастет на 110% относительно обучения 5 документов. 

Зависимость времени обучения от объема обучающей выборки
Зависимость времени обучения от объема обучающей выборки

Скорость обучения зависит и от сложности формы: чем больше полей в документе, тем дольше модель будет учиться. 

Скорость обучения в зависимости от количества текстовых полей в документе
Скорость обучения в зависимости от количества текстовых полей в документе

Пользовательский сценарий создания модели для нового типа документа выглядит примерно так:

  • пользователь определяет поля, информацию из которых он планирует извлекать автоматически

  • загружает в систему минимум 5 документов нового типа (обучающую выборку)

  • размечает нужные поля на каждом документе

  • запускает обучение системы

  • применяет новую модель для автоматического поиска данных во всех аналогичных документах

Далее наглядно покажем, как обучить FastML искать поля в документе:

Тестирование

Как уже упоминалось, основной нашей целью являлось расширение пула российских документов, с которыми умеет работать технология FastML. Мы определили 9 типов документов, которые условно разделили на 2 категории: ID и документы с таблицами. Далее  поговорим о результатах тестирования по качеству обучения полей у каждой группы и поясним за цифры.

Результаты тестирования по качеству обучения полей для различных типов документов
Результаты тестирования по качеству обучения полей для различных типов документов

Ниже представлена зависимость качества обучения от количества документов в обучающей выборке. Взяли для примера такие документы, как ТОРГ-12, ИНН и СНИЛС.

Зависимость качества обучения от количества документов в обучающей выборке
Зависимость качества обучения от количества документов в обучающей выборке

ID

В первую группу вошли: паспорт РФ, загранпаспорт, СНИЛС, водительское удостоверение, диплом о высшем образовании (разворот с ФИО, названием вуза и полученной специальностью). По итогам тестирования, качество обучения полей в этой группе близко к 90%.

Здесь стоит сразу оговорить самую большую сложность работы FastML с ID-документами. У каждого из указанных ID — сложный и разный цветной фон, а еще есть фоновый текст, голограммы, статичный текст, который не нужно извлекать, и прочий «мусор». И поскольку FastML обучается на текстовом слое, многоуровневый фон ID может стать причиной неточного распознавания нужной информации, поэтому так важно загружать в систему на обучение документы очень хорошего качества.

Документы с таблицами

Во вторую группу мы включили: справку 2-НДФЛ, УПД, УКД и счет-фактуру. По результатам тестирования качество обучения полей в данных типах документов составило 85%. Такой результат получили по нескольким причинам. Во-первых, из-за сложностей при обработке многострочного текста в ячейках. Во-вторых, модель плохо справляется с ситуациями, когда происходит разрыв страницы, и часть содержимого ячейки оказывается на одной странице, а другая переходит на следующую. В-третьих, модель путается, если один документ полностью заполнен, а другой только частично.

Здесь стоит сразу поговорить про специфику таблиц. В любом документе таблица состоит из заголовочной строки с колонками и строками, которые повторяются неизвестное количество раз. И самое важное в их распознавании — верно создать группы элементов для обучения. А остальное уже можно доверить технологии, т.к. она понимает, что количество колонок в таблицах вариативно, и накладывает на конкретный документ только нужные колонки, а те, которых нет — пропускает. 

Как создать группу элементов для обучения таблицы для лучшего результата:

  • использовать механизм продолжения строк. Пользователю не нужно в 100-строчной таблице размечать каждую строку, достаточно разметить первые 2-3, а затем нажать кнопку «Продолжение строк» и разметка создастся автоматически. Останется лишь  внести коррективы в случае неточностей

  • разметить 5 документов для обучающей выборки 

  • если неправильно разметились регионы, то система это поймет и не будет учиться на таких документах

Ниже продемонстрируем, как обучить FastML искать таблицы в документе:

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

Мы будем продолжать работу над улучшением и расширением FastML. Так, в перспективе будут добавлены новые объекты для обучения полей — подписи, печати и изображения.

Комментарии (0)