Контроль и корректировка при распознавании форм Е.Л.Плискин
Контроль и корректировка при распознавании форм 1
1. Введение 1
2. Бумажный документ. Его страницы, части и поля. Пачки. Идентификатор документа. 1
3. Распознавание. Вероятность ошибок. 2
4. Контроль документа. Сомнительные поля. Подтвержденные поля. 2
5. Порядок частей. Повторные части и итоговые поля. Ключевые поля. 3
6. Человеческий интерфейс редактора. 3
7. Формат хранения документа. 4
8. Внутреннее представление документа в редакторе. 4
9. Виды контроля. 5
10. Литература. 5
1. Введение 1.1. Для контроля и корректировки форм при их распознавании предлагается использовать редактор документов специального вида. В разделах 1–6 описывается структура формы, специфика процесса распознавания и человеческого интерфейса редактора. В разделах 7–9 описываются форматы хранения, внутреннее представление документа в редакторе и другие подробности реализации.
1.2. Модуль контроля и корректировки налоговых деклараций физических лиц для Госналогинспекции Республики Башкортостан, реализованный на платформе Макинтош, является частным решением названной задачи. Здесь оно излагается очищенным от деталей, относящихся преимущественно к налоговому ведомству. Примеры и иллюстрации взяты из реальной практики. Новизна задачи, систематичность и подробность изложения должны компенсировать читателю недостаточное освещение смежных подходов.
1.3. Упомянем макетный редактор, созданный в 1980-х годах во ВНИИСИ АН СССР В.Л.Арлазаровым и сотрудниками для ЭВМ ЕС-1045 и алфавитно-цифрового терминала ЕС-7920, который предназначался для ввода текстов и документооборота [1]. Документы состояли из частей, в том числе повторных, а в для хранения документов использовался текстовый формат, служебные строки и строки-значения полей. Подобный формат хранения применен в предлагаемом редакторе.
1.4. Принцип построения документов из частей лежит в основе технологии составных документов OpenDoc™[2].
1.5. В модуле контроля и корректировки для налоговых карт юридических лиц, разработанном А.Фиалковым, документ состоит из одной части и из одной страницы. Имеется автоматический контроль документа, режим просмотра сомнительных полей и документов. Графический образ страницы прокручивается в сыром виде.
1.6. Предлагаемый редактор в значительной мере опирается на операционную систему MacOS 7.5. Несомненно, что реализация редактора на платформе Макинтош при помощи Symantec C++ 8.1 позволила сильно сократить объем программирования. Практически весь документный контур, в том числе загрузка и сохранение документа; макетирование включая показ части и частично скроллинг; оконный интерфейс, включая плавающие окна: панель управления и информационное, получены как результат использования Symantec C++ 8.1 в готовом или почти готовом виде. Объем программирования можно оценить в 3 человеко-месяца.
2. Бумажный документ. Его страницы, части и поля. Пачки. Идентификатор документа. 2.1. Форма—это документ реального мира на бумажном носителе, например, налоговая декларация физического лица. Она может состоять из нескольких страниц. Число страниц формы переменное, от 1 до некоторого небольшого предела порядка 10. Разные физические лица заполняют разное количество страниц сведениями о своих доходах и расходах. Страница является единицей сканирования и распознавания. При сканировании возникает графический образ страницы, который затем распознается. Графические образы страниц представляют собой отдельные графические файлы в некоторой папке на диске, пронумерованные в порядке сканирования. Массовая обработка форм связана с потенциальной возможностью перестановки порядка страниц.
2.2. Пачка является минимальным множеством документов, в котором гарантированно содержатся все страницы, поскольку пачки бумажных документов не смешиваются. Страницы документа помечены уникальным идентификатором документа, присущим документу и отличающим его от других документов пачки. Например, идентификатором может служить 12-значный социальный номер физического лица. Идентификатор документа и другие поля распознаются в виде текста, пригодного для редактирования, поиска и анализа.
2.3. Поле является элементарным данным: кодом, числом или текстовой строкой, как например: “код вида дохода”, “сумма дохода” и “название организации, в которой получен доход”. Поля группируются в смысловые блоки, или части документа. Три названных поля образуют часть “Величина дохода, полученного в одной организации”. Серия повторов такой части может встретиться как на одной странице документа, так и на разных. Так, в налоговой форме предусмотрены дополнительные листы для большого количества однотипных сведений. Если же сведений немного, то все повторы части могут уместиться на одной странице, для чего в форме предусматривается место для заполнения нескольких повторов части на странице. Лишние части на бумаге не заполняются.
Таковы бумажные документы; в компьютерном представлении документа, напротив, группируются все повторы части, а пустых частей не нужно. Об этом говорится ниже в разделе 5.
3. Распознавание. Вероятность ошибок. 3.1. При распознавании поля берется фрагмент графического образа страницы и получается текстовое значение. Процесс распознавания включает определение рамки поля, разбиение на символы, распознавание отдельных символов, а также словарный или контекстный контроль значения поля. Рамка поля определяется достаточно надежно. Остальные функции модуля распознавания являются источником ошибок, приводящих к искажению значения поля. Нормативная вероятность правильного распознавания отдельного символа составляет 98,8%. То есть, на 1000 символов допускается 12 ошибок. Эта вероятность считается в среднем для всех полей, но она гораздо выше для индексных полей, для которых в бумажной форме нанесена сетка наподобие сетки на почтовых конвертах для указания почтового индекса. Такая сетка используется для всех цифровых полей. Вероятность правильного распознавания одного символа индексного поля может составлять 99,85%.
3.2. Особую важность имеет точность распознавания идентификаторов, поскольку от этого зависит сборка документа из страниц, которые, как отмечалось выше, могут поступать в неправильном порядке. Если при сборке не делать никаких предположений относительно порядка страниц, то вероятность сборки документа из 4-х страниц с правильным 12-значным идентификатором при вероятности распознавания символа 99,85% равна:
0.9985 48 = 0,9304
То есть, в среднем 7% документов будут неправильно скомплектованы! Поэтому не только отдельные поля, но и самый состав распознанного документа нуждается в контроле и корректировке.
3.3. Манипуляции на этапе контроля и корректировке производятся оператором в отсутствие бумажных оригиналов. Вместо них он имеет дело с редактором, позволяющим зрительно сравнивать значения полей с графическим образом, корректировать поля, а при необходимости производить перекомплектацию документа путем слияния или разделения страниц.
3.4. Неправильно распознанный идентификатор может совпадать или не совпадать ни с одним из идентификаторов в пачке. При уменьшении размера пачки уменьшается и вероятность совпадения, приводящего к склейке чужих страниц в один документ. Распадение документа на части, вообще говоря, более вероятное последствие ошибки в идентификаторе. Гипотетическая возможность команды разделения склеенных страниц в следующей версии редактора здесь не рассматривается, а вот команда слияния двух одновременно открытых документов с одинаковым социальным номером в редакторе реализована.
4. Контроль документа. Сомнительные поля. Подтвержденные поля. 4.1. Контроль документа является частью этапа корректировки и служит для всесторонней оценки достоверности распознавания как отдельных полей, так и документа в целом. Трудоемкость корректировки в основном зависит от количества полей, которые просматривает оператор, внимание которого следует фокусировать на сомнительных полях, частях и документах.
К сомнительным в первую очередь относятся неуверенно распознанные поля. При загрузке документа и затем по ходу корректировки редактор выполняет дополнительные проверки как отдельных полей, так и групп полей на достоверность.В процессе корректировки сомнительные поля могут становиться несомнительными и наоборот. Таким образом, с точки зрения программного контроля поля делятся на сомнительные и несомнительные.
4.2. С человеческой же точки зрения мы разделим поля на подтвержденные оператором и еще не подтвержденные. В рабочем режиме редактор последовательно фокусирует внимание оператора на еще не подтвержденных сомнительных полях, а оператор подтверждает их. Контроль выполняется редактором на ходу, как будет подробнее сказано несколько ниже. Подтвержденное поле становится таковым раз и навсегда в процессе корректировки.
4.3. Схема распределения ответственности за корректировку предлагается следующая. Документ, содержащий хотя бы одно сомнительное, но не подтвержденное поле, не пропускается редактором в выходную папку. Оператору предлагается как минимум подтвердить все сомнительные поля. Любое поле может быть подтверждено оператором при помощи клавиши ENTER, независимо от сообщений блока контроля по поводу этого поля. Сообщения блока контроля сохраняются в документе наряду с признаком подтвержденности поля. В выходной папке накапливаются исходные документы для последующих этапов обработки, которые здесь не рассматриваются (например, для ввода в базу данных).
4.4. Визуально сомнительные поля выделяются на экране синим цветом. Для подтвержденных полей в строке состояния показывается сообщение “Подтверждено оператором”.
5. Порядок частей. Повторные части и итоговые поля. Ключевые поля. 5.1. В компьютерном представлении все повторы принято группировать. В бумажном документе часть повторов может располагаться на одной странице, а другая часть на дополнительных листах, после других частей. Поэтому вообще говоря, порядок частей в редактируемом документе отличается от бумажного оригинала. В предлагаемом редакторе порядок показа частей определяется во-первых, типом части, а во-вторых, повторы идут в порядке страниц. В налоговой декларации 12 типов частей, в том числе шапка и два раздела по 5 и 6 пунктов соответственно. Для переключения частей имеется панель 6 (рис.1).
5.2. Итоговыми полями называются поля, зависящие от повторных частей. К итогам относятся в частности, суммы. Повторной части могут соответствовать несколько итогов 11 (рис.1). Они показываются вместе с каждой повторной частью. Это второе отступление от бумажного порядка частей, поскольку на бумаге итоги заполняются один раз, а в редакторе повторяются.
5.3. Ключевым полем называется некоторое избранное поле повторной части. Ключи призваны облегчить навигацию в документе. Предполагается, что ключ отличает экземпляр части от других экземпляров такой же части. Обычно ключевое поле–первое поле в части. Например, порядковый номер повтора части 10 (рис.1). Уникальность ключей не предполагается. Из ключей составляется меню 9 (рис.1).
6. Человеческий интерфейс редактора. 6.1. Редактор, предлагаемый для контроля и корректировки при распознавании форм, может “вести” оператора только по неподтвержденным сомнительным полям, или по всем сомнительным полям или по всем полям. Хороший человеческий интерфейс уменьшает трудоемкость корректировки, которая зависит от количества полей, просмотренных оператором, а также от количества нажатий на клавиши и кнопку мыши.
6.2. Требования к качествам человеческого интерфейса редактора:
Экономность и стабильность картинки:
Не более одной части на экране.
Не показывать пустых частей.
Не менять часть неожиданно при переходе от поля к полю.
Не показывать окрестность графического образа поля.
Кнопка контроля значения без покидания текущего поля.
Автоматическое масштабирование графического образа поля.
Навигация:
Узнаваемость части по расположению полей и пояснительному тексту подобно бумажному оригиналу.
Идентификация типа части и экземпляра повторной части.
Указатель положения в документе (полоса прокрутки).
Показ идентификатора документа наряду с именем файла.
Подсветка сомнительных полей цветом и показ сообщения об ошибке от блока контроля в строке состояния.
Показ ключа текущей части.
Показ номера страницы.
Строка состояния.
Показ информации о документе при просмотре папки на диске.
Доступность:
“Горячая кнопка” ENTER для подтверждения поля и поиска оставшихся не подтвержденными сомнительных полей.
Листание всех частей вперед и назад, в начало и в конец документа.
Листание сомнительных частей.
Выбор повтора части из меню.
Повтор итогов в каждой части.
Откат:
Команда отмены изменения значения поля.
Возможность прохода по сомнительным полям, включая уже подтвержденные.
Команда восстановления последнего запомненного состояния документа с диска.
Реактивность:
Фоновая загрузка графических образов.
Показ минимального графического образа поля.
7. Формат хранения документа. 7.1. Результаты распознавания документа хранятся отдельно от графических образов, в текстовом файле. Файл состоит из строк. Строки, начинающиеся символом %, считаются служебными, а остальные строки содержат собственно значения полей. После знака % идет код служебной строки. Имеется два кода: P–описатель страницы и W–описатель поля. Описатель страницы включает номер страницы. Описатель поля включает номер поля, координатную привязку к графическому образу страницы, код ошибки и признак подтверждения оператором. После описателя поля идет строка-значение.
7.2. Части могут идти в произвольном порядке, страницы так же. Внутри части порядок полей фиксированный. Допускаются пустые части, но редактор их не показывает и удаляет при сохранении документа.
7.3. Имя документа по возможности включает идентификатор документа, хотя это не предполагается. Расширение имени документа отражает его статус: P–уверенно распознан, M–неуверенно распознан, PP–откорректирован, MM–корректировался, но остались неподтвержденные сомнительные поля.
7.4. Имя файла графического образа включает имя документа и номер страницы, например: MYDOC_01.TIF.
8. Внутреннее представление документа в редакторе. 8.1. Документ как объект C++ обладает массивом дескрипторов полей и массивом ссылок на страницы. Элементы интерфейса редактора как объекты C++ содержат константный номер поля в макете и переменный индекс в массиве дескрипторов полей.
8.2. Дескриптор поля включает номер поля; номер части в макете; номер части в документе; номер части в серии повторов; номер страницы; текстовое значение поля; код ошибки; признак подтверждения оператором; ссылку на графический образ поля. Ссылка на графический образ может быть нулевой, если образ еще не загружен. Номер страницы нулевой для нового документа.
8.3. Страница как объект C++ содержит обратную ссылку на документ, номер страницы, ссылку на графический файл, признак загрузки в память. При загрузке страница фрагментируется на графические образы полей, которые хранятся по отдельности. Загрузка всех страниц может происходить не сразу, а в свободное время после открытия документа, пока оператор работает с одной частью (фоновая загрузка страниц). Графический файл закрывается сразу после фрагментации страницы.
8.4. Графический образ поля как объект C++ содержит битовый образ поля, его ширину и высоту в пикселах. При показе образ автоматически растягивается или сжимается по размеру панели, предназначенной для него в интерфейсе редактора. Масштаб не должен быть меньше 50%, иначе могут теряться тонкие линии.
9. Виды контроля. 9.1. Имеется пять разновидностей контроля: 1) контроль вводимых символов; 2) контроль отдельного поля; 3) контроль документа, который включает контроль отдельных полей, а также 4) контроль частей по отдельности и 5) глобальный контроль документа.
9.2. Контроль вводимых символов производится при вводе в цифровое поле. Нецифровой символ сразу вызывает звуковой сигнал и сообщение в строке состояния.
9.3. Контроль отдельного поля производится автоматически при выходе из измененного поля, а также–для всех полей–при контроле документа. В частности, здесь проверяется принадлежность к списку возможных значений поля по словарю.
9.4. Контроль документа производится: 1) при открытии документа; 2) при нажатии клавиш RETURN и ENTER (на Макинтоше это две разные клавиши. Клавиша RETURN оставляет курсор в текущем поле, а клавиша ENTER после проверки документа ищет следующее неподтвержденное сомнительное поле); 3) по команде “Проверить”; 4) по команде “Экспортировать”.
9.5. Контроль документа выполяется в следующем порядке, при этом переход к более сложному виду контроля происходит только если после предыдущего вида контроля в документе нет ни одного неподтвержденного сомнительного поля:
Контроль каждого поля по отдельности.
Контроль каждой части по отдельности.
Глобальный контроль (зависимости между частями).
9.6. Контроль части может включать сравнение полей в пределах одной части. Например: сравнение даты начала и даты конца временного периода.
9.7. Глобальный контроль включает расчет и проверку итогов.
10. Литература. 1. Арлазаров В.Л., Кузнецова Е.Н., Фарсобина В.В. «Внутриучрежденческая почта». В журнале «Механизация и автоматизация управления» №4 за 1991 год. Издание УкрНИИ НТИ, Киев.
2. Orfali R., Harkey D., Edwards J. The essential distributed objects survival guide. John Wiley & Sons, Inc., 1996.
Рис 1.Элементы интерфейса.
1–панель управления со строкой состояния; 2–заголовок окна (имя документа); 3–кнопки перехода к первой, предыдущей, следующей и последней части; 4–кнопки поиска первой, предыдущей, последующей и последней из сомнительных частей; 5–графический образ поля 6–панель переключения по типу части; 7–номер страницы; 8–полоса прокрутки документа; 9–меню ключей; 10–ключевое поле; 11–итоговые поля. |