
A kérdések szövegét OCR-rel (Office 2003al szállított MODI-nak nevezett dologgal) nyertem ki a beszkennelt lapok képeiből.
Mivel nagyon sok oldal volt ezért automatizáltam. Egy darab teszt 4 oldalból áll, 4 darab JPEGként szkennelve. Mivel a MODI csak TIFF képeket támogat ezért az egyes tesztekhez tartozó 4 darab képet összefűztem 1 darab többoldalas (multipage) TIFFbe GraphicsMagickel. (A MODI nem fogad el bármilyen TIFFet, ajánlom a "Fax" tömörítési algoritmust)
Az elkészült négy oldalas tiffekből (01.tiff, 02.tiff, 03.tiff, stb.) pedig ez az egyszerű C#-os program nyerte ki a szöveget. Letöltés
Az OCR persze vétett pár hibát, így át kellet olvasnom mind a 35 tesztlap szövegét. Lusta vagyok hozzá de már a 25. tesztnél tartok.
A nyers OCR által kinyert szöveg persze alig van rendezve (példa, az első feladatlap szövege), a számítógép által is könnyen olvasható adattá kellett átalakítani. Formátumnak XML-t választottam. Az XML-be való konvertálást egy Python program végezte (ronda a forráskódja, siettem vele, akit érdekel megnézheti), a kimenet pedig így nézett ki.
A helyes válaszok egy külön szkennelt oldalon vannak, ezeket kimásoltam egy szövegfileba. Az említett python program ezt a filet is használja az XML elkészítésére.
A "tesztprogramot" XHTML/Javascriptre akartam alapozni. Mivel XSLT-t még nem használtam, jó alkalom volt ez arra hogy megtanuljam az alapjait. Az alkalmazott XSLT filet itt lehet letölteni. (Elhiszem hogy nem a legeslegjobb módon van megírva, de 1 nap alatt tanultam meg azt ami alapján összeraktam.)
A legtöbb böngésző ugyan támogat XSLT transzformációt (még az Internet Explorer is), de véletlenül sem problémamentes. Úgy döntöttem hogy az XML fájlokon előre elvégzem az XSLT transzformációt XHTML-be és majd ezt kapják a böngészők (az AIR beépített Webkit alapú böngészője is). Erre egy Kernow nevű programot használtam.
A Javascript fejlesztés megkönnyítésére JQuery-t használltam. A tesztet kiértékelő függvények rövidek és egyszerűek.
Egy teszthez 12 ábra tartozik (forgalmi helyzetek, táblák). Mivel 35 teszt és így 420 darab ábra van, biztos voltam abban hogy nem kézileg fogom kivágni a képeket (meghülyültem volna). A feladatra Rob Antonishen Divide Scanned Images nevű GIMP scriptjét használtam átalakítva , testreszabva, mivel az alap verzió nem tud kötegfeldolgozást nekem pedig 70 képen kellett átfuttatnom a scriptet. Még sosem programoztam Schemeban (GIMP scriptek általában Schemeban íródnak), de egy óra próbálkozás után elkészült a script automatizált verziója. (Akit érdekel később letöltheti) A feldolgozás kb. 10 percig tartott, de lehetett volna gyorsabb is, mivel a GIMP csak az egyik processzormagot használta.
Az elkészült verziót és annak teljes forráskódját letölthetővé fogom tenni.
Nincsenek megjegyzések:
Megjegyzés küldése