Як ми допомагали проводити медичну перепис в Республіці Бангладеш


Як знають постійні читачі нашого блогу, в ABBYY розробляють не тільки Lingvo і FineReader, але і рішення для автоматизації введення документів і даних. Їх часто використовують для обробки переписів населення – ми працювали у Греції, Литві, Саудівської Аравії, Таджикистані та Кувейті (стаття про кувейтському проекті). Звичайно, про роботу в екзотичних країнах писати цікавіше всього, і сьогодні ми розповімо про медичну перепису, яка пройшла кілька років тому в Республіці Бангладеш.

Бангладеш – держава в південно-східній Азії, займає восьме місце у світі по чисельності населення (Росія, даними Вікіпедії, зараз на 9 місці), межує з Індією і Бірмою. 160-мільйонне населення Бангладеш живе на площі 147 тисяч квадратних кілометрів, тобто щільність населення дуже висока. Порівняйте, на якій площі живемо ми, а на який – бангладешці (а чисельність населення плюс-мінус однакова).



Переважна більшість бангладешців – сільські жителі (135 мільйонів 160), і умови їх життя, м'яко кажучи, далекі від ідеальних. Не у всіх домогосподарствах є доступ до питної води, санітарні умови залишають бажати кращого. При всьому при тому бангладешці – молодці, і останнім часом досягли значних успіхів у галузі охорони здоров'я. Всесвітня організація охорони здоров'я повідомляє про визначний прогрес Бангладеш у багатьох життєво важливих областях – в країні зменшилася смертність новонароджених та дітей віком до п'яти років, збільшилася тривалість життя, стали більш доступними щеплення і більш успішної боротьба з туберкульозом.



Генеральне управління з послуг охорони здоров'я (ГУУЗ) Міністерства охорони здоров'я і сімейного благополуччя Бангладеш з 1961р. проводить регулярний опитування населення, щоб зібрати дані про стан здоров'я сільських жителів країни найбільш поширених хронічних захворюваннях, смертності та її причини, а також побутових і економічних умовах життя. Ці дані необхідні для прийняття правильних стратегічних рішень в області охорони здоров'я – на їх основі розробляють ті чи інші програми медичної підтримки, але збирати їх дорого і складно.

Саму перепис Міністерство охорони здоров'я Башгладеш проводить самостійно. В установі є цілий штат службовців (вони називаються community health workers), які регулярно відвідують сільські домогосподарства, щоб зрозуміти, як там справи і чи не потрібна допомога – всього на службі їх близько 23 тисяч. Саме вони займалися збором даних і заповнення анкет.

Анкети завжди оброблялися вручну. На перенесення даних в електронну систему йшло цілих два роки – чи жарт, обробити 30 мільйонів сторінок. З огляду на важливість інформації, що збирається, це було занадто довго. У 2011 році Бюро статистики Бангладеш вивчило досвід проведення подібних опитувань і переписів всьому світу і вирішив автоматизувати обробку анкет за допомогою технології інтелектуального розпізнавання символів – intelligent character recognition (ICR).

Дуже коротко – чим відрізняється ICR від OCR (optical character recognition).OCR – розпізнавання друкованих символів. ICR – в даному випадку: розпізнавання символів, написаних від руки друкованими літерами (іноді пишуть «рукопечатных» символів).


Отже, урядом Бангладеш був оголошений тендер на обробку анкет медичної перепису, який виграв наш партнер – компанія Devnet – з нашим рішенням ABBYY FlexiCapture. Але задовго до того, як був обраний переможець, організатори тендеру за допомогою компаній, які брали участь у тендері, розробили анкету, яку могла б прочитати машина.



Анкета двомовна. Велика частина підписів до полів і чек-боксів зроблена на бенгальською – офіційною мовою Республіки Бангладеш (місцеві називають його «бангла»). У Бангладеш, звичайно, викладають англійську в школах, але не всі його знають, тому анкету не стали робити цілком англійською – пошкодували переписувачів. Підписи до основних елементів форми продубльовані англійською – щоб наша техпідтримка могла зорієнтуватися і зрозуміти, про що мова, якщо при обробці даних виникнуть труднощі.

Бенгальська мова специфічний і досить складний – ми поки не розпізнаємо, тому всі поля, які належало розпізнавати (порожні клітинки), переписувачі повинні були заповнювати англійською мовою.

Напевно, читачам цікаво, яку інформацію, власне, треба було збирати. Нам теж стало цікаво, і ми попросили перевести партнера анкету для цієї статті.



Перше питання – коди регіонів, районів і домогосподарств – це основний ідентифікатор анкети. Якщо всі мешканці будинку не вмістилися на одному аркуші, саме цей код допомагає при обробці анкети «зібрати» всі аркуші разом, щоб ніхто не загубився.

У другому питанні респондентів просили вказати джерело питної води – і тут з'ясувалося багато тонкощів. Виявилося, що грунтові води в Бангладеш (а також у деяких сусідніх регіонах) часто заражені миш'яком – і це велика проблема. Існує ціла програма, в рамках якої воду в свердловинах досліджують на вміст миш'яку, а свердловини потім маркують. Зеленим – безпечні (Tube well green), червоним – небезпечні (Tube well red), деякі свердловини досліджувати не встигли (або жителі, яким вони належать, відмовилися від досліджень) – це третій варіант відповіді. Детальніше про проект з маркуванням можна прочитати в книзі Arsenic Exposure and Health Effects, яка частково доступна в мережі.

В третьому питанні запитували тип вбиральні, у четвертому – економічну ситуацію в сім'ї.

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

Коли анкета була розроблена, наші партнери зробили інструкцію для переписувачів, в якій було коротке пояснення – що таке «машиночитаемая форма» – і правила, за якими потрібно таку форму заповнювати. Наприклад – писати чорною або темно-синьою ручкою, використовувати великі англійські літери, не виходити за межі клітинок, залишати порожню клітку після кожного слова, а також приклади правильного і неправильного заповнення. Ось такі.







Крім інструкції, переписувачі проходили спеціальні тренінги, і весь процес їх роботи (починаючи з тренінгів і закінчуючи наданням заповнених анкет) зайняв близько 10 місяців. Незважаючи на ретельний інструктаж, помилок при заповненні було досить багато. У середньому близько 10% тексту виходило за межі клітин, часто переписувачі у відповідь на питання, де можливий тільки одна відповідь, відзначали більше одного чек-боксу, часто зустрічався почерк, який важко було розібрати. До того ж тендер на вибір партнера для обробки анкет затягнувся (ми знаємо, це часто буває з тендерами), а зібрані анкети зберігалися в поганих умовах, і частина з них були зіпсовані водою і поганим поводженням. Все це ускладнювало обробку анкет.

Схема обробки анкет виглядає так:



Спочатку анкети сканують. Для цього використовувалися 10 сканерів Kodak i1420 і Kodak i3400. Пропускна здатність моделі i3400 – 50 сторінок в хвилину, 15 тисяч сторінок на день, моделі i1420 – 45 сторінок в день, 13 тисяч сторінок на день.





Допитливий читач, напевно, звернув увагу, що фон анкети, рамки і деяка пояснювальна інформація зроблені червоним кольором, і здивувався – як же так, бідна країна, стільки фарби. Звичайно, червоний колір тут неспроста. Можна налаштувати сканер таким чином, що колір на етапі сканування буде віддалятися (drop-out colors). Після сканування з форми зникнуть всі елементи, за винятком реперів (чорних квадратів по кутах) і заповнених полів.



Це потрібно для поліпшення якості розпізнавання. Наприклад, якщо переписувач при заповненні анкети не тільки «виліз» за межі клітини, але ще й частину букви або цифри потрапила на червоний текст (наприклад, на назву рядка), програму буде складно розпізнати символ. Якщо червоний колір прибрати, ця проблема буде вирішена. Раніше таку операцію можна було зробити тільки за допомогою сканера, в останніх випусках FlexiCapture при необхідності можна прибирати кольоровий фон на програмному рівні.

Коли сканування завершено, FlexiCapture обробляє відскановані зображення (прибирає сміття, виправляє спотворення) і розпізнає дані у формі.

Анкети в системі об'єднуються в «пакети». Пакет – це кілька переписних листів, що належать до одного адресою. На один лист входило 12 осіб, а в Бангладеш живуть купчасто, і в багатьох будинках було більше 12 жителів – тоді переписувач брав новий лист. Отже, уявіть ситуацію, коли працівник центру сканування несе пачку документів до сканера і раптом опускає її. Назад з підлоги документи збираються не в тому порядку, що був спочатку і, ясна річ, скануються, як попало. Замовник перепису вважав, що в подібному випадку верифікатор буде не настільки компетентний, щоб правильно вручну зібрати в системі всі листи, що відносяться до одного будинку. Тому система збирала пакет автоматично, використовуючи закодований адреса (який, як ми пам'ятаємо, був головним ідентифікатором переписного листа) і ім'я переписувача.

Оскільки програма може помилитися, всі дані потрібно верифікувати – людина повинна очима порівняти розпізнані символи із зображенням на скані. Було організовано два великих центру верифікації, в яких у дві зміни працювали 120 осіб. Виглядало це так:



Дані з чек-боксів не верифицировались – інформація перевірялася за допомогою правил – наприклад, в якихось питаннях міг бути тільки одна відповідь і т. п.

Для верифікації даних з інших полів на допомогу людям були розроблені скрипти, які визначали помилки в деяких полях. Наприклад, номер телефону міг утримувати тільки 11 символів; були певні правила при використанні кодів родинних зв'язків, номерів будинків, кодів регіону і т. п. Якщо були помилки, програма ставила «прапорець», щоб оператор звернув увагу на це місце. Далі оператор повинен був вирішити, чи можна виправити цю помилку шляхом порівняння розпізнаних даних з відсканованим зображенням листа. Якщо, наприклад, у переписувача погано писала ручка, і система не розпізнала якийсь символ, помилки виправляли. Якщо виправити не виходило, помилку привласнювали статус критичної.

При верифікації оператор може переглядати весь аркуш, а може – тільки окреме поле (а інший оператор – інше поле). Як правило, другий спосіб ефективніше, його і використовували у проекті. Після верифікації дані вивантажувалися в базу – MS SQL enterprise 2012. В систему був інтегрований англо-бенгальська словника імен – з його допомогою всі імена експортувалися відразу бенгальською мовою.

Ось, власне, і вся історія про перепис в Бангладеш. На закінчення, як водиться, трохи статистики: в середньому в день оператори обробляли трохи більше 100 тисяч сторінок, і 30 мільйонів сторінок було оброблено приблизно через 9 місяців.

Світлана Лузгіна
Служба корпоративних комунікацій за підтримки ABBYY 3A (три А = Азія, Африка, Латинська Америка).

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.