phpRS            

Dnešní datum: 10. 09. 2010   | Hlavní stránka | Seznam rubrik | Kniha návštěv |  
  Hlavní menu
Hlavní stránka
Seznam rubrik
Fotogalerie
Kniha návštěv
Stáhněte si
Odkazy
Ankety
TOP 15

  Reklama


  Rubriky

  Poslouchám na síti


Spusť přehrávač


Spusť přehrávač


  Informace o webu
Všehochuť aneb od každého trochu

Content © 1991-2010 Slávek Rydval

View Slávek Rydval's profile on LinkedIn

Vytvořeno pomocí phpRS a Texy!

RSS kanál

Software

* FormReader 4.1

Vydáno dne 05. 08. 2005 (1463 přečtení)

Vžijte se do loňského roku a představte si, že jste bídně placení zaměstnanci Českého statistického úřadu, kteří mají na starost přepis vyplněných sčítacích archů do nějakého informačního systému. Zpracování i části Prahy by přineslo nesmírně nudnou, pracnou a otravnou práci. S tímto a jemu podobnými případy může velmi dobře pomoci recenzovaný produkt.

Instalace produktu, jak je dobrým zvykem, je bezproblémová a nemělo by cenu se o ni bavit, kdyby tu nebyl hardwarový klíč, který je nutné vložit do volného USB portu (dodává se i klíč pro paralelní port) a instalační program musí zákonitě nainstalovat i ovladač. To je ovšem docela nechutné, protože legální uživatelé musí mít v systému (a v paměti) naprostou zbytečnost oproti nelegálním, kteří si produkt prostě a jednoduše cracknou. Ale to jen na okraj, pojďme se podívat na vlastní FormReader.

Práce s ním je rozdělena do dvou základních kroků. Prvním je seznámení FormReaderu s formulářem a druhým pak vlastní proces skenování vyplněných předloh, rozpoznávání zadaných dat a uložení.

Krok 1 — Příprava formuláře

První krok je nejdůležitější — pokud jej neprovedeme precizně, bude potřeba v druhém kroku provádět velké množství oprav. O co tedy jde? Po naskenování prázdného formuláře se musí určit oblasti, které jsou nějakým způsobem pro vás relevantní. Tyto oblasti se dělí do tří kategorií: blok pro rozpoznávání zadaných dat, referenční a servisní blok.

Blok pro rozpoznávání určuje oblast, ve které bude docházek ke čtení zadaných údajů jako je např. rodné číslo, stav, obvod hrudníku kandidátek na sekretářku apod. Pokud jste již pár (desítek) formulářů vyplnili, jistě víte, že text se nezadává podle libovůle respondenta, ale např. do rámečků, různých sloupců, oddělených polí apod. (vezměme jako ukázku poštovní směrovací číslo na pohlednici). To ale není vše. Často je na výběr z několika možností a dotazovaný má zaškrtnout správnou odpověď a další. S tímto vším FormReader počítá a při určování oblasti (bloku) pro rozpoznávání je nutné také zadat druh této oblasti (kromě zmíněného lze určit oblast i pro čárový kód).

Referenční bloky slouží jednak k „sesynchronizování“ naskenovaného vyplněného formuláře s předlohou, ale také k vymezení toho, jak se má rozpoznávat text. Pokud např. zadáváte již zmíněné poštovní směrovací číslo, pak musíte určit jednotlivé obdélníky, aby nebyly zahrnuty do rozpoznávání čísel a následně z toho nevycházely paznaky.

Poslední jsou servisní bloky, které jsou určeny např. k zadání dat obsluhou.

To, že jste určili jednotlivé oblasti, ještě neznamená, že jste u konce. Naopak, ke každé rozpoznávané oblasti je zapotřebí určit její atributy. Nejdůležitějším atributem je datový typ. Tímto typem bývá text, číslo apod., což velmi usnadňuje rozpoznání textu (jestliže si např. FormReader myslí, že našel malé l, ale blok má numerický datový typ, ihned ví, že jde o jedničku). Datovým typem však může být i něco mnohem složitějšího — již několikrát zmíněné PSČ má v České republice právě pět cifer apod. To, že jsem zmínil konkrétní stát, není náhodou. Aplikace oplývá takto definovanými typy pro několik desítek států. Skvělé je na tom i to, že formulář může být vícejazyčný — pro každou rozpoznávanou oblast můžete definovat atribut odpovídající jinému státu. Pokud si přesto nevyberete, můžete si definovat typ vlastní či si upravit stávající (např. FormReader se mylně domnívá, že v naší republice používáme šestimístné PSČ). Tyto typy lze úspěšně definovat pomocí regulárních výrazů, povolených znaků apod.

Pokud tedy máte nadefinovány typy, můžete přejít na další oblast a tou jsou pravidla. Pomocí pravidel lze určit velké množství podmínek, které musí být splněny, aby byl formulář přijatelný (tuto práci sice může vykonat např. SQL databáze či aplikační server, kam se nakonec data odesílají, ale při ukládání do textového souboru byste měli smůlu). Na výběr je z patnácti druhů pravidel jako jsou regulární výrazy, testy na součet čísel, normalizace měny, test oproti databázi a další.

Tím nejsou možnosti vyčerpány, ale jedná se již převážně o kosmetické záležitosti. Načtená písmena lze automaticky převádět na malá či velká, je možné určit druh rozpoznávaného písma (psané rukou, strojem, …) a další. Možností je mnoho a čím více se specifikuje co, kde a jak se na formuláři vyplňuje, tím větší je pravděpodobnost, že bude docházet při vlastním procesu rozpoznávání k co nejmenšímu počtu chyb.

Krok 2 — Dávkové zpracování

Druhý krok již nepotřebuje tolik znalostí o formuláři a může jej dělat dobře vycvičená opice, která bude jednotlivé formuláře skenovat a korigovat případné chyby. Celý proces je rozdělen do několika podúloh. Naskenování netřeba nijak zvlášť komentovat, pouze je dobré říct, že lze skenovat jednu stránku formuláře nebo všechny stránky najednou. Podobně lze i otevřít již jednou uložený naskenovaný formulář. Poté dojde k rozpoznávání naskenovaného formuláře podle zadaných kritérií v prvním kroku. Zde je vidět síla (a samozřejmě i slabina) celého procesu. Pokud se jedná o ručně vypisovaný formulář a respondent píše jako prase, je nutné dost věcí doopravit. K tomu je samozřejmě vhodně navrženo i prostředí. Na levé straně okna aplikace je naskenovaný formulář, na pravé pak rozpoznaný text, který lze opravovat. Při případné opravě je ve spodním okně vidět, kterou část právě upravujete (jde o zvětšenou část naskenovaného formuláře, viz obrázek). Druhá možnost je nechat zkorigovat obsluhou vše najednou a pak se prochází jednotlivá pole za sebou a v případě potřeby se data opravují. Toho lze s úspěchem použít na velkém, případně velmi strukturovaném formuláři.

Na závěr zbývá data uložit. Možností je opět několik: textový soubor, CSV soubor, tabulka DBF či tabulka Excelu, ale i databáze, ke které je potřeba připojit se pomocí ODBC, případně do OLE Automation objektu. Je škoda, že aplikace nezvládá novější databázovou konektivitu pomocí OLE DB a proto se musí zbytečně případný ODBC ovladač pro konkrétní databázi doinstalovat.

Celkový pohled

Při práci s nástrojem lze v podstatě dojít k jedinému problému a tím jsou již jednou zmínění nečitelně píšící respondenti. Při testování aplikace jsem zkusil zadávat několik druhů formulářů (pohlednici, složenku typu C, přihlášku na vysokou školu a daňové přiznání) s tím, že jsem něco vyplnil ručně, něco vytiskl na počítači a složenku pracně vypsal na psacím stroji. FormReader zvládl vše až na opravdové detaily na jedničku kromě ručně vyplněných údajů. Na jednu stranu ho chápu, sám mám často problém po sobě cokoliv přečíst, na druhou stranu se nabízí otázka, má cenu pořizovat takovýto nástroj, jestliže většinu dat budou respondenti vyplňovat ručně? Osobně si myslím, že ano. Ačkoliv se mohou vyskytnout problémy a často načtená data opravovat, přesto se získá cenný pomocník: kontroluje integritu dat, ukládá je do zvoleného datového zdroje a procento úspěšnosti může být relativně veliké. Ne každý se totiž musí za svůj pravopis stydět.

Na FormReaderu jsou působivé jeho možnosti. Parametrizování jednotlivých polí, které jsou určeny k rozpoznávání, je impozantní. Datové typy (navíc pro velké množství států včetně České republiky), podpora nejen textových dat, ale i zaškrtávacích polí, definování pravidel a export do databáze činí tento produkt ukázkou dobře odvedené práce. Občas sice zakulhá uživatelské prostředí, které by mohlo být výrazně vylepšeno, ale přesto se v něm neztratíte. Pakliže o „něčem takovém“ uvažujete, myslím, že jste našli výtězného kandidáta. FormReader vás jistě mile překvapí.

Obrázky

Oblast defonovaná jako PSČ s volbou typu „chlívečků“.
Definice typu pole
Naskenovaná obálka a rozpoznávání textu.
IDE
Definování regulárního výrazu poskytuje mnoho možností.
Regulární výraz

Plusy, mínusy, závěr

Plusy

  • Velké množství nastavitelných parametrů
  • Podpora češtiny

Mínusy

  • Hard Lock
  • Drobnosti v GUI

Závěr

  • Kvalitní nástroj pro převod vyplněných formulářů do elektronické podoby.

Kontakt


Tento článek byl napsán pro časopis Softwarové noviny 5/2002.

Upozornění: tento text neprošel redakční úpravou, takže je tak, jak byl napsán včetně případných chyb. Žádná část tohoto článku nesmí být použita bez předchozího souhlasu autora.

Seznam mých dalších článků je v tomto přehledu.



[Akt. známka: 0 / Počet hlasů: 0] 1 2 3 4 5

Celý článek | Autor: Slávek Rydval | Počet komentářů: 0 | Přidat komentář | Informační e-mailVytisknout článek

  Čtenář
Jméno:
Heslo:


Registrace | Info
Zapomenuté heslo

  Vyhledávání

Hledej
na Nawebce!


Rozšířené vyhledávání

  Kalendář
<<  Září  >>
PoÚtStČtSoNe
  1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30    

  Reklama


rkEdit Oracle Profiler
rkEdit Oracle Profiler