
Привет!
В этом посте хотим рассказать, как технология 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. Так, в перспективе будут добавлены новые объекты для обучения полей — подписи, печати и изображения.
Автор: ContentAI_Team