В этом выпуске:
- IT-интегратор, переквалифицировавшийся из HR-агентства
- Люди в длинных одеждах в офисе Аби*
- 6-летний водитель самосвала
Скандалы, интриги, расследования
А если серьёзно, то расскажем в общих чертах о переписи в стране с особым восточным колоритом.
Как знают постоянные читатели нашего блога, мы делаем не только Lingvo и FineReader, но и программы, которые извлекают данные из форм. Некоторое время назад их стали активно использовать для обработки переписей населения: мы помогали считать переписные листы в Греции, Литве, Саудовской Аравии, Таджикистане и Кувейте. В Кувейте проект получился, пожалуй, самым интересным – о нем мы и расскажем под катом.
* Реальных фото не сохранилось, а выложенное воспроизвели по памяти
Перепись, о которой пойдет речь, прошла в Кувейте в 2011 году. Людей, здания и мелкий бизнес переписывали в Кувейте и раньше, но все данные – страшно даже представить – заносили в базу вручную. Всем было понятно, что это долго и дорого, поэтому накануне нового проекта чиновники из Министерства статистики Кувейта ездили по соседним странам – пытались перенять успешный опыт. Успешный опыт нашелся в Саудовской Аравии, где как раз в это время заканчивали обрабатывать бюллетени нашим ABBYY FlexiCapture 9.0.
Восток – дело тонкое, поэтому наши потенциальные кувейтские партнеры не могли просто купить у нас программу. Они приехали в наш московский офис – убедиться в том, что ABBYY действительно существует и что мы достаточно крупные. У нас, конечно, нет дресс-кода и мы видали всякое, но люди в длинных белых одеждах смотрелись в офисе весьма необычно даже для нас. В общем, наши восточные гости получили ответы на все свои вопросы, и работа началась.
В проектах переписи мы делаем довольно крупную часть работы – обработку бюллетеней (о ней ниже), но в Кувейте и кроме этого было много интересных моментов. Обычно госструктуры, которые проводят переписи, либо делают всё своими силами, либо привлекают подрядчиков. Кувейтское министерство статистики поручило менеджерить перепись Gulf Business Services & Recruitment Group, основной деятельностью этой компании был… подбор персонала. Согласитесь необычно. Почему им? Сначала подрядчиков было несколько, но одной из важнейших задач было собрать отряд переписчиков, которые хорошо справятся с работой и будут делать мало ошибок. Поэтому оказалось, что контракт на поиск людей – самый крупный. Потом чиновники справедливо рассудили, что руководить всеми процессами лучше из единого центра, и всю работу передали им.
Перепись проходила в несколько этапов. Сначала по всей стране разместили рекламу предстоящей переписи, и людям предлагали «переписаться» в электронном виде. Для этого нужно было оставить заявку на сайте, а в назначенный день снова зайти и заполнить анкету. Можно было не заполнять анкету руками, а заказать «обратный звонок» и продиктовать все данные по телефону. Так была собрана информация о 320 тысячах жителей – это около 11% всех бюллетеней.
Следующим этапом была «бумажная» перепись. Поскольку обрабатывать переписные листы предстояло нам, логично, что и бланки разрабатывали мы. Бланки двухсторонние, формат А3. Задача осложнялась тем, названия полей нужно было делать не только на английском, но и на малознакомом нам арабском языке, выравнивание тоже было нетипичным – справа налево. Выглядели они так:
Кроме имени и фамилии, у человека спрашивали: возраст, образование, семейное положение, место и стаж работы, умеет ли они пользоваться интернетом и компьютером, кем он приходится хозяину квартиры, в которой он живет, ну и идентификационный номер (из паспорта). Паспорт, кстати, выглядит примерно так:
На переписных листах не было уникальных номеров, главным идентификатором листа был адрес дома (квартиры), жителей которых в данный момент переписывали. Все жители дома – на одном листе, другой дом – другой лист.
Адрес задавался 13-значным числом. Каждый район, квартал, улица, домохозяйство имели свой уникальный код, который переписчик вписывал в бюллетень.
Было организовано 113 центров, в которые переписчики сдавали заполненные формы. Каждый вечер бумажные формы пересылались в центральный пункт обработки информации, где их сканировали и распознавали. Ежедневно туда стекалось 14-17 тысяч форм. Было организовано две станции сканирования, которые работали практически круглосуточно (использовались сканеры Fujitsu fi-6800, пропускная способность – 20-60 тыс. страниц в день). При сканировании пакет документов получал уникальный номер, состоявший из даты, номера коробки, в которой он пришел, и номера центра, из которого его прислали.
Отсканированные документы распознавали и верифицировали при помощи ABBYY FlexiCapture 9.0 (было организовано 30 станций верифицирования). Здесь надо сказать, что продукт был существенно доработан для этого проекта. Потребность в той или иной функции возникала у клиента уже в процессе работы, так что наш сотрудник провел в Кувейте около 1,5 месяцев, изнывая от жары и женщин в паранджах.
Так, в какой-то момент понадобилось сделать так, чтобы пакет документов можно было собирать скриптами. Что такое в данном случае «пакет»? Пакет – это несколько переписных листов, относящихся к одному адресу. На один лист помещалось 8 человек, но в Кувейте живут кучно, и во многих домах было больше 8 жителей – тогда переписчик брал новый лист. Итак, представьте ситуацию, когда работник центра сканирования несет пачку документов к сканеру и вдруг роняет её. Обратно с пола документы собираются не в том порядке, что был вначале и, ясное дело, сканируются, как попало. Заказчик переписи считал, что в подобном случае верификатор будет не настолько компетентен, чтобы правильно вручную собрать в системе все листы, относящиеся к одному дому. Поэтому мы «научили» систему собирать пакет автоматически, используя закодированный адрес (который, как мы помним, был главным идентификатором переписного листа). В нынешней, десятой версии FlexiCapture эта функция реализована по умолчанию, но на момент переписи в Кувейте «десятка» ещё не вышла, поэтому пришлось дописывать в процессе.
Распознавали бюллетени в два этапа. Почему в два? Министерству статистики нужно было быстро собрать информацию о количестве домов (квартир) и количестве жителей, не дожидаясь, пока проверят все остальные данные. Поэтому на первом этапе из переписных листов извлекалась информация о дате заполнения, адресе и количестве людей, живущих по этому адресу. Всё это верифицировалось (верификация – это когда оператор сравнивает отсканированное изображение с распознанными данными и исправляет ошибки, если они вдруг есть) и отправлялось в базу данных – таким образом можно было следить за тем, насколько быстро идет перепись и сколько ещё осталось. Потом пакеты документов экспортировались в специальные папки, при этом генерилось xml-описание, которое задавало правильную последовательность загрузки листов. На втором этапе при помощи этого описания документы распознавались в нужном порядке, извлекалась информация из всех полей, которые не трогали при первом проходе. Потом документы верифицировали, данные подгружались в ту же базу. Для хранения информации использовался SQL Server 2008 R2, для публикации результатов – SharePoint 2010.
Ещё одна функция, которую мы сделали специально до этого проекта, – автоматическая проверка соблюдения правил. Правила были нужны, чтобы избежать очевидных логических ошибок. Правила были такого рода: например, у детей не должно быть детей, у детей до определенного возраста и у лиц пенсионного возраста не должно быть заполнено поле «Работа», владелец дома должен быть старше своих сыновей на 18 лет и более. Итак, если в анкете нам вдруг попадался мальчик 6 лет, который работает водителем самосвала, система определяла, что правило нарушено, и выдавала ошибку. Дальше оператор должен был решить, можно ли исправить эту ошибку путем сравнения распознанных данных с отсканированным изображением листа. Если, например, у переписчика плохо писала ручка, и система не распознала двойку перед шестеркой в возрасте, ошибку исправляли. Если исправить не получалось, ошибке присваивали статус критической и система автоматически передавала данные о телефонном номере домохозяйства, а также о сути ошибки, в call-центр, где операторы связывались с хозяевами дома и уточняли информацию.
Предварительные результаты переписи населения были предоставлены в Министерство уже через две недели после окончания сбора форм. Всего было обработано 750 тысяч двусторонних переписных листов, это позволило во много раз (по сравнению с ручным вводом) сократить время обработки данных переписи. Но цифры цифрами, а для нас этот проект был важен ещё и потому, что в результате из компании, которая не имела отношение к IT, нам удалось вырастить образованного партнера, который теперь помогает нам продвигать наши продукты в Кувейте.
Светлана Лузгина,
при поддержке ABBYY 3A (3A = Азия, Африка, Латинская Америка)
Автор: luciana