Классификация документов по их внешнему виду и содержанию

от автора

imageСегодня мы расскажем вам, как и зачем можно применять классификаторы для разделения и сортировки разных документов по их типам.

В компании ABBYY, помимо программистов, лингвистов, аналитиков и других разных полезных людей, есть много классификаторов. Конечно, классификаторы – не люди, а алгоритмы, но они выполняют работу, без которой качественное распознавание текста невозможно. Без них не обойтись на самых разных этапах обработки документов – от нахождения зон, содержащих текст на картинках, до распознавания конкретных символов в строчках с текстом.

Но на этом работа классификаторов не заканчивается. Ещё они могут обрабатывать пакеты документов и раскладывать их «по кучкам» в зависимости от типа документов.

Представьте себе работу агентов компании, страхующей автомобили. При каждом страховом происшествии на место должен выехать агент, в задачи которого входит уточнить данные о клиенте и страховом случае. Как правило, агент вооружён фотоаппаратом и фотографирует автомобиль, полис ОСАГО, квитанцию, справку от ГИБДД, и другие необходимые документы.

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

Использование классификатора в этом случае делает систему чуть умнее – фотографируя документ какого-то типа, не надо лишний раз сообщать, что вы фотографируете документ и говорить, что на нём изображено.

Или другой случай.

Вы купили билет на Ибицу и о, чёрт, надо идти получать визу. С вас потребуют пачку документов сантиметровой толщины, которая показывает, что вы белые и пушистые и не планируете вдруг превратиться в нелегального мигранта. Потом девушка в окошке будет долго перекладывать ваши документы, складывать их в нужном порядке, чтобы потом передать в правильной последовательности в консульство, где вам таки выдадут визу.
А если применить классификатор, то у вас можно взять всю эту пачку, положить в потоковый сканер, быстро отсканировать, и получится пакет, разобранный по типам документов (заявление, справка из банка, справка с работы, копия паспорта и т.п.) и отсортированный, одно удовольствие смотреть и обрабатывать. Как итог – сокращение времени ожидания клиентов, удешевление обработки, в общем, плюсы со всех сторон.

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

Это не кадр из будущего, а технология, доступная уже сегодня в очередной версии наших технологий.

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

Теперь несколько слов про то, как классификатор устроен.

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

С помощью этой базы вы обучаете классификатор. Потом берёте другую базу, проверяете работу классификатора на ней, и если результаты вас устраивают, можно пускать классификатор «в бой».

При работе и обучении классификатор использует набор признаков, помогающих отделить документы одного типа от документов другого типа. Все признаки можно условно разделить на графические и текстовые.

Графические признаки хорошо разделяют группы документов, сильно внешне отличающиеся друг от друга. Условно говоря, если вы смотрите издали на документ так, что не можете прочитать текст на нём, но можете понять, какой у него тип, то графические признаки тут будут хорошо работать.

Так, графические признаки могут хорошо отделять слитный и неслитный текст, например, письма и платёжные квитанции. Они смотрят на размер изображения, плотность цветов в разных его частях, разные другие характерные элементы вроде вертикальных и горизонтальных линий.
А если внешне документы похожи, или одну группу, не читая текст, нельзя отделить от другой группы, то помогают текстовые признаки. Они очень похожи на те, что используются в спам-фильтрах и позволяют по характерным словам определять принадлежность документа к тому или иному типу. Отделять письма от договоров, чеки от визитных карточек удобно именно с помощью текстовых признаков.

Также текстовые признаки помогают отделять документы похожего вида, но отличающиеся значением одного или нескольких полей. Например, чеки из Макдональдса и Теремка внешне очень похожи, но если рассматривать их как текст, то отличия будут очень заметны.
В итоге классификатор для каждой обучающей выборки даёт больший вес тем текстовым или графическим признакам, которые позволяют наилучшим образом разделять документы из этой выборки по типам.

На наших тестах и тестах наших клиентов классификатор документов по типам показывает себя довольно хорошо. Умеет обучаться даже на одном изображении на тип, позволяет классифицировать документы со скоростью до 120 страниц в минуту на одно ядро процессора, делая при этом менее 1% ошибок. Нам очень нравится. Хотелось бы, чтобы понравилось и вам видеть его работу в настоящих боевых условиях.

Все сценарии, описанные в этой статье, можно реализовать с помощью классификатора, доступного в ABBYY FineReader Engine 11. Если у вас есть другие сценарии, в которых использование классификатора могло бы помочь решить вашу задачу, пишите нам . Постараемся вам помочь.

Василий Панфёров
Департамент продуктов для разработчиков

ссылка на оригинал статьи http://habrahabr.ru/company/abbyy/blog/181398/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *