Недавно мы выпустили ABBYY FlexiCapture for Invoices – решение для потокового ввода европейских и счетов в СЭД (системы электронного документооборота). Строго говоря, обрабатывать счета умеет и «большой» ABBYY FlexiCapture, на основе которого сделано новое решение. Но в нем нужно самостоятельно задавать все настройки для работы со счетами, а многие наши клиенты, как выяснилось, предпочитают уже настроенные решения. Ну, вы понимаете – достать «из коробки» программу, установить на компьютер оператору Мэри (продукт продается пока только в странах Европы), подключить к СЭД – и пусть работает.
Решение разработано специально для обработки только одного типа документов – счетов. Это позволило усовершенствовать и «заточить» технологии именно для этих документов (хотя оно и позволяет обрабатывать другие документы).
Самое главное – в ABBYY FlexiCapture for Invoices есть универсальное гибкое описание, с помощью которого можно правильно извлекать информацию из счетов, которые поступают из разных стран. Программа «понимает», из какой страны счёт и «знает», какие стандарты относительно составления счетов существуют в этой стране. Это даёт возможность правильно определять, где в счёте, например, название фирмы-поставщика, а где указана итоговая сумма счета.
В основе решения лежат усовершенствованные технологии «гибких описаний», созданные на большой выборке счетов от различных поставщиков. Иными словами, мы взяли много счетов из разных стран и обучили программу не только их различать и правильно определять, где и что в них указано, но и принимать решение, можно ли вообще принять полученный документ.
Про то, как работают гибкие описания, мы подробно писали здесь, поэтому скажем коротко: гибкое описание – это формализованное описание структуры слабоструктурированного документа, которое создается с помощью инструмента FlexiLayout Studio. В отличие от жестких шаблонов, где структура всех документов такого типа одинаковая, у слабоструктурированных документов расположение полей может отличаться достаточно сильно. Такие поля гибкое описание ищет, опираясь на ключевые слова заголовков, на другие, уже найденные, поля, и так далее.
В каждой стране свои особенности составления счетов: налоговые и юридические правила, форматы данных, местоположение полей и многое другое. Например, в Швейцарии при подсчете налогов на счетах, их значение округляется до 0,05, чаще в меньшую сторону . Это связано с тем, что самая маленькая монета в Швейцарии – 5 сантимов (Сантим – 0,01 от Швейцарского франка). А, например, в Испании, название одной и той же компании может быть написано шестью разными способами, и все это стандартные сокращения.
Такие различия, с одной стороны, несколько усложняют задачу создания универсального гибкого описания, а с другой стороны помогают. А помогают они при поиске остальных полей счета. Но прежде чем искать и распознавать поля, нужно, прежде всего, определить язык распознавания. А для этого сначала нужно определить страну, из которой пришел счет. В этом помогает база данных, которую подключил пользователь. В базе данных содержится список поставщиков и необходимая информация о них: название, адрес, банковские реквизиты и, самое главное, страна. Определив страну, программа смотрит, какие настройки присущи счетам этой страны (налоги, обозначения, сокращения и т.д.), после этого ищутся остальные поля. Так происходит наложение гибкого описания и извлечение необходимых данных.
Хотя решение и готово для использования, пользователь может его улучшить и доработать под свои цели, документы и бизнес-процессы. FlexiCapture for Invoices использует технологию обучения, которая позволяет как администратору программы, так и оператору, занимающемуся проверкой документов (оператор Мэри – помните?), подкорректировать гибкое описание.
Для того чтобы доработать универсальное гибкое описание с учетом особенностей документов определенного поставщика, оператор не должен обладать никакими специальными знаниями и навыками. Доработка гибкого описания идет в процессе обработки документов: если оператор заметил, что какое-либо поле не нашлось на документе, либо определилось неверно, он изменяет рамку вокруг поля с помощью мыши, нажимает кнопку Train. Нажатие кнопки Train дает программе сигнал, что, у данного поставщика данное поле находится в таком-то месте счета, а программа это запоминает, учитывая такие факторы, как содержимое поля, его непосредственное окружение, геометрические соотношения этого поля и других объектов на изображении и другие. Далее гибкое описание изменяется с учетом новых свойств, и специально для данного поставщика формируется новый вариант гибкого описания. Следующие документы от данного поставщика будут обработаны с учетом новых свойств гибкого описания.
Результат обучения (то, как он выглядит внутри программы) – это гибкое описание, состоящее из нескольких вариантов (веток), каждый из которых описывает свой подтип документа от определенного поставщика. В процессе обучения программа «связывает» новые свойства, полученные в процессе обучения, с определенным подтипом документа. Результат наложения общего гибкого описания сравнивается с результатом обученного варианта, и для каждого отдельного поля выбирается лучший результат.
У администратора программы несколько больше возможностей по доработке шаблона, чем у Мэри. Ему доступен весь список вариантов гибкого описания, и он также может обучить каждый из этих вариантов. Имя каждого варианта – это имя компании-поставщика. «Внутри» каждого – выборка документов, на основе которых происходило обучение.
Если администратор решил, что документы от определенного поставщика обрабатываются программой уже достаточно хорошо, он может отключить возможность обучения операторами документов от данного поставщика, чтобы Мэри случайно не испортила результаты обучения.
Помимо автоматического обучения у программы достаточно много возможностей для настройки под нужды конкретной компании. Администратору программы доступен список всех стран, для которых было настроено гибкое описание. У каждой страны есть свой список настроек: набор языков, юридические и налоговые правила, набор и расположение полей. Все эти настройки и свойства можно редактировать (ведь налоговое законодательство иногда меняется, даже в Европе ), а также добавлять новые страны, которых нет в стандартном списке, указывать для них их собственные настройки.
Распознанный и проверенный документ может экспортироваться с одним из трех флагов (статусов): Valid – документы, успешно прошедшие все проверки, Exception – документы, требующие верификации (проверки), и Rejected – документы, в которых после проверки остались критические ошибки, с которыми документ не может быть принят Документы с различными статусами могут быть экспортированы с разными настройками. Статусы программа выставляет автоматически в результате проверок, а оператор может поменять статус документа, при этом ему нужно обязательно написать к каждому документу комментарий – причину смены статуса.
Если такая расстановка дел не устраивает администратора, например, с точки зрения бизнес-процессов компании, он может запретить оператору изменять значение поля «Статус».
Вот такой получился продукт. Надеемся, ABBYY FlexiCapture for Invoices понравится нашим европейским пользователям.
Анастасия Евстратова
Отдел корпоративных проектов
Автор: ABBYYTeam