• No results found

#BLBMÈDzTLÈ QSÈDF

N/A
N/A
Protected

Academic year: 2022

Share "#BLBMÈDzTLÈ QSÈDF"

Copied!
44
0
0

Loading.... (view fulltext now)

Full text

(1)

)*4503*$,Å$) 5&95ƾ 4 7:6Ç*5¶.

13"7%Ɠ10%0#/045/¶$) .0%&-ƾ

#BLBMÈDzTLÈ QSÈDF

4UVEJKOÓ QSPHSBN # o *OGPSNBǏOÓ UFDIOPMPHJF 4UVEJKOÓ PCPS 3 o *OGPSNBǏOÓ UFDIOPMPHJF

"VUPS QSÈDF 5PNÈÝ ,PVOPWTLâ 7FEPVDÓ QSÈDF QSPG *OH +BO /PV[B $4D

(2)

"650."5*$ &%*5*/( 0' 4$"//&%

)*4503*$"- 5&954 #"4&% 0/ 130#"#*-*45*$

.0%&-4

#BDIFMPS UIFTJT

4UVEZ QSPHSBNNF # o *OGPSNBUJPO 5FDIOPMPHZ 4UVEZ CSBODI 3 o *OGPSNBUJPO 5FDIOPMPHZ

"VUIPS 5PNÈÝ ,PVOPWTLâ

4VQFSWJTPS QSPG *OH +BO /PV[B $4D

(3)
(4)
(5)
(6)

Podˇ ekov´ an´ı

R´ad bych podˇekoval m´emu vedouc´ımu, Prof. Ing. Janu Nouzovi, CSc., za nab´ıdku tohoto zaj´ımav´eho t´ematu a odbornou pomoc pˇri jeho ˇreˇsen´ı. Sleˇcnˇe Jaroslavˇe Ryb´ınov´e za ne- skuteˇcnou trpˇelivost a pomoc pˇri vytv´aˇren´ı t´eto dokumentace. A nakonec bych r´ad podˇekoval Prof. Dr. Zoraidˇe Callejas Carri´on za konzultaci a uˇziteˇcn´e rady.

Acknowledgement

I would like to thank my supervisor, Prof. Ing. Jan Nouza, CSc., for offering me this interesting topic and for his professional support in progress of this thesis. To Ms. Jaroslava Ryb´ınov´a for immense patience and support through the making of this documentation. And lastly I would like to thank Prof. Dr. Zoraida Callejas Carri´on for consultation and helpful insights.

(7)

Tato pr´ace se zab´yv´a problematikou vyuˇzit´ı OCR pro digitalizaci historick´ych text˚u, konkr´etnˇe plnˇe automatick´ymi post-OCR opravami chyb. Pr´ace se zamˇeˇruje hlavnˇe na vyuˇzit´ı pravdˇepo- dobnostn´ıch metod, jako jsou statistiky znakov´ych z´amˇen a pravdˇepodobnostn´ı jazykov´e mo- dely. C´ılem t´eto pr´ace je vytvoˇren´ı a zhodnocen´ı postup˚u a n´astroj˚u, jenˇz umoˇzn´ı co nej- spolehlivˇeji sn´ıˇzit procento neslovn´ych chyb zp˚usoben´ych digitalizac´ı roˇcn´ık˚u 1945 aˇz 1983 den´ıku Rud´e Pr´avo. V´ysledkem pr´ace jsou dva syst´emy, pomoc´ı nichˇz byly provedeny auto- matick´e opravy na v´yˇse zm´ınˇen´ych textov´ych dokumentech. Prvn´ı z nich, zaloˇzen na v´ypoˇctu pravdˇepodobnosti, zvl´ad´a opravit aˇz 6,97 % vstupn´ıch chyb pˇri spolehlivosti oprav aˇz 83 %.

Druh´y syst´em, vyuˇz´ıvaj´ıc´ı algoritmus zaloˇzen´y na vlastn´ı sk´orovac´ı metodˇe, zvl´ad´a opravit aˇz 5,7 % vstupn´ıch chyb pˇri spolehlivosti oprav aˇz 92 %.

Kl´ıˇ cov´ a slova

OCR, post-procesing, plnˇe automatick´e opravy, statistiky znakov´ych z´amˇen, pravdˇepodob- nostn´ı jazykov´y model, Rud´e Pr´avo, historick´e texty

Abstract

This thesis is dealing with the problematics of historical document digitization via OCR, specifically with fully automated post-OCR error corrections. The thesis is focused mainly on the utilization of probability-based methods, such as character confusion statistics and probabilistic language models. Goal of this thesis is the creation and evaluation of procedures and tools for the purpose of reliably reducing the amount of OCR generated non-word errors in the digitized version of the

”Rud´e Pr´avo“ newspaper with prints dating from 1945 to 1983.

The thesis results in two systems, which were used in fully automated correction of the afore- mentioned text documents. First system, based on probability calculations, has a correction rate of up to 6,97 % with a reliability of up to 83 %. The second system, based on a personal scoring method, has a correction rate of up to 5,7 % with a reliability of up to 92 %.

Keywords

OCR, post-processing, fully automated error corrections, character confusion statistics, pro- bability language model, Rud´e Pr´avo, historical documents

(8)

OBSAH

Obsah

Seznam obr´azk˚u 8

Seznam tabulek 8

1 Uvod´ 9

1.1 Motivace . . . 9

1.2 OCR . . . 10

1.2.1 Zp˚usobovan´e chyby . . . 10

1.2.2 Metody pro zlepˇsen´ı kvality . . . 11

1.3 Pˇribl´ıˇzen´ı podklad˚u . . . 13

1.3.1 Datab´aze digitalizovan´eho den´ıku . . . 13

1.3.2 Slovn´ık . . . 14

2 Pouˇzit´e metody pro automatick´e opravy 15 2.1 Porovn´av´an´ı se slovn´ıkem . . . 15

2.2 Statistika znakov´ych z´amˇen . . . 15

2.3 N-gramov´y jazykov´y model . . . 18

3 Postup pr´ace 20 3.1 Pˇr´ıpravn´a ˇc´ast . . . 20

3.2 Anal´yza . . . 23

3.3 V´yvoj n´astroj˚u pro automatick´e opravy – Prvn´ı syst´em . . . 25

3.3.1 Architektura . . . 25

3.3.2 Testov´an´ı . . . 26

3.3.3 V´ysledky . . . 29

3.4 V´yvoj n´astroj˚u pro automatick´e opravy – Druh´y syst´em . . . 32

3.4.1 Architektura . . . 32

3.4.2 Testov´an´ı . . . 33

3.4.3 V´ysledky . . . 34

3.5 Distribuce oprav do textu . . . 36

4 Zhodnocen´ı 37 5 Z´avˇer 40 5.1 Budouc´ı pr´ace . . . 40

Pouˇzit´a literatura 41

Pˇr´ılohy 42

(9)

Seznam obr´ azk˚ u

1 Statistika roˇcn´ık˚u Rud´eho Pr´ava: Poˇcet ˇretˇezc˚u a stran v z´avislosti na roˇcn´ıku 13

2 V´yvojov´y diagram: Prvn´ı anal´yza . . . 20

3 V´yvojov´y diagram: Druh´a anal´yza . . . 23

4 V´yvojov´y diagram: Prvn´ı algoritmus pro automatick´e opravy . . . 26

5 V´yvojov´y diagram: Druh´y algoritmus pro automatick´e opravy . . . 32

6 V´yvojov´y diagram: Distribuce oprav do textu . . . 36

Seznam tabulek

1 Prvn´ı anal´yza textov´e datab´aze . . . 21

2 Uk´azka nejˇcastˇejˇs´ıch nezn´am´ych ˇretˇezc˚u . . . 21

3 Druh´a anal´yza textov´e datab´aze . . . 22

4 Poˇcet statisticky v´yznamn´ych chyb vybran´ych k opravˇe . . . 25

5 Porovn´an´ı syst´em˚u s p˚uvodn´ı a vynucenou velikost´ı p´ısmen; M = 100, N = 1000 27 6 Kvantita a kvalita oprav pˇri r˚uzn´ych hodnot´ach M . . . 28

7 Redukce chyb v z´avislosti na poˇctu iterac´ı . . . 29

8 V´ysledky prvn´ıho syst´emu: Kvantita . . . 30

9 V´ysledky prvn´ıho syst´emu: Kvalita . . . 30

10 V´ysledky prvn´ıho syst´emu: Doba bˇehu (v minut´ach) . . . 31

11 V´ysledky druh´eho syst´emu: Kvantita . . . 34

12 V´ysledky druh´eho syst´emu: Kvalita . . . 35

13 V´ysledky druh´eho syst´emu: Doba bˇehu (v hodin´ach) . . . 35

14 Srovn´an´ı obou syst´em˚u . . . 37

15 Anal´yza datab´aze po opravˇe druh´ym syst´emem . . . 37

16 Uk´azka nˇekter´ych nov´ych ˇretˇezc˚u do slovn´ıku . . . 42

17 Uk´azka spr´avnˇe vytvoˇren´ych oprav prvn´ıho syst´emu . . . 42

18 Uk´azka spr´avnˇe vytvoˇren´ych oprav druh´eho syst´emu: . . . 42

19 Uk´azka ˇspatnˇe vytvoˇren´ych oprav prvn´ıho syst´emu: . . . 43

20 Uk´azka ˇspatnˇe vytvoˇren´ych oprav druh´eho syst´emu: . . . 43

(10)

1 UVOD´

1 Uvod ´

1.1 Motivace

Jiˇz od ˇsedes´at´ych let dvac´at´eho stolet´ı se OCR (Optical Character Recognition – optick´e rozpozn´av´an´ı znak˚u) vyuˇz´ıv´a pro automatizovan´y pˇrevod psan´ych a tiˇstˇen´ych dokument˚u do digit´aln´ı textov´e podoby. Skladov´an´ı textov´ych soubor˚u pˇrin´aˇs´ı na rozd´ıl od skladov´an´ı fyzick´ych v´ytisk˚u ˇci naskenovan´ych stran nepop´ırateln´e v´yhody, napˇr. menˇs´ı velikost datab´az´ı, rychlejˇs´ı pˇr´ıstup k dat˚um a moˇznost snadn´eho automatick´eho vyhled´av´an´ı a porovn´av´an´ı v textu. Prvn´ım krokem k takov´e digitalizaci je skenov´an´ı dokumentu. Pot´e je aplikov´ano OCR, jenˇz rozpozn´a jednotliv´e znaky a pˇrevede je do digit´aln´ı textov´e podoby. Proces OCR vˇsak nen´ı dokonal´y a ne vˇzdy je schopen vytvoˇrit pˇresnou kopii p˚uvodn´ıho textu. D´ıky mnoha faktor˚um (napˇr. kvalita skenu ˇci pouˇzit´y font) se m˚uˇze OCR spl´est a rozpoznat znak mylnˇe.

Modern´ı OCR maj´ı schopnost rozpoznat aˇz 99 % vˇsech znak˚u spr´avnˇe. Pokud uvaˇzujeme pr˚umˇernou d´elku slova 5 znak˚u, kaˇzd´e dvac´at´e slovo bude rozpozn´ano ˇspatnˇe, coˇz vede k 5%

chybovosti ve v´ysledn´em textu. Tato hodnota pak bude jeˇstˇe vyˇsˇs´ı pro historick´e dokumenty, jejichˇz kvalita tisku b´yv´a obvykle horˇs´ı.

Tyto chyby je samozˇrejmˇe z´ahodno naj´ıt a opravit. Opravy OCR generovan´eho textu jsou bˇeˇznˇe troj´ıho typu – manu´aln´ı, kdy chyby hled´a a opravuje ˇclovˇek, ˇc´asteˇcnˇe automatick´e, kdy chyby hled´a stroj a ˇclovˇeku nab´ız´ı jejich nejpravdˇepodobnˇejˇs´ı opravy, a plnˇe automatick´e, kdy vyhled´av´an´ı a opravu chyb vykon´av´a pouze stroj. Kv˚uli bˇeˇznˇe velk´emu poˇctu a veli- kosti digitalizovan´ych dokument˚u obvykle nepˇripadaj´ı prvn´ı dvˇe moˇznosti v ´uvahu. Stejnˇe tak tomu je i v pˇr´ıpadˇe historick´eho den´ıku Rud´e Pr´avo, jehoˇz roˇcn´ıky 1945 aˇz 1983 byly po- moc´ı OCR pˇrevedeny do textov´eho form´atu. I pˇres vysokou kvalitu vyuˇzit´eho OCR a n´asledn´y post-procesing se v textech st´ale vyskytuj´ı chyby, jejichˇz opravou pomoc´ı plnˇe automatick´eho syst´emu se tato bakal´aˇrsk´a pr´ace zab´yv´a. Plnˇe automatick´e opravov´an´ı chyb v textu m´a ˇ

radu v´yhod, hlavnˇe z hlediska rychlosti, s jakou jsou schopny dneˇsn´ı syst´emy text proch´azet a opravovat - to, co by jednomu ˇclovˇeku trvalo roky, je pˇr´ıstroj schopen opravit v ˇr´adu ho- din. M´a vˇsak i nˇekolik probl´em˚u, kter´e je nutno minimalizovat – nejvˇetˇs´ı z nich obvykle zast´av´a nemoˇznost opravovat naprosto spolehlivˇe ˇci nemoˇznost opravit vˇsechny chyby. Z to- hoto d˚uvodu byla vyvinuta ˇrada r˚uznˇe ´uspˇeˇsn´ych metod a algoritm˚u, kter´e pom´ahaj´ı tyto nedostatky sn´ıˇzit a zlepˇsit tak ´uspˇeˇsnost plnˇe automatick´ych syst´em˚u pro post-OCR opravy chyb.

Jedn´ım z moˇzn´ych pˇr´ıstup˚u je vyuˇz´ıv´an´ı statistik a v´ypoˇct˚u pravdˇepodobnost´ı. Tohoto pˇr´ıstupu vyuˇzili, mimo jin´ych, p´anov´e Tong a Evans v roce 1996 [1]. Na z´akladˇe metod statistik nejˇcastˇejˇs´ıch znakov´ych z´amˇen a pravdˇepodobnostn´ıho jazykov´eho modelu dok´azal jejich syst´em dos´ahnout aˇz 60,2% redukce slovn´ych a neslovn´ych chyb na testovac´ım korpusu

(11)

(70 stran z ˇcasopisu o v´ypoˇcetn´ı technice, v angliˇctinˇe). Tato pr´ace vyuˇz´ıv´a jejich poznatk˚u pˇri implementaci syst´emu pro co nejspolehlivˇejˇs´ı sn´ıˇzen´ı poˇctu neslovn´ych chyb vyskytuj´ıc´ıch se v textov´e datab´azi den´ıku Rud´e Pr´avo.

1.2 OCR

OCR se dnes bˇeˇznˇe vyuˇz´ıv´a k ˇradˇe r˚uzn´ych ´uˇcel˚u, napˇr´ıklad pro automatick´e rozpozn´av´an´ı SPZ, asistenci slep´ych a zrakovˇe postiˇzen´ych, extrakci psan´ych dat z formul´aˇr˚u ˇci obch´azen´ı CAPTCHA anti-bot syst´em˚u. Tato pr´ace je zamˇeˇrena na zlepˇsen´ı kvality OCR pˇri archivaci historick´ych text˚u, je tedy nutno uv´est druhy relevantn´ıch chyb a zp˚usoby, kter´e se pouˇz´ıvaj´ı k jejich odstranˇen´ı.

1.2.1 Zp˚usobovan´e chyby

Vˇetˇsina aplikac´ı vyuˇz´ıvaj´ıc´ı OCR vyˇzaduje pro spr´avnou funkci vysokou pˇresnost OCR procesu. Ten vˇsak nen´ı dokonal´y a vlivem faktor˚u jako kvalita skenu, pouˇzit´y font nebo nepˇresn´y ´uhel zarovn´an´ı skenovan´e str´anky vznikaj´ı chyby v podobˇe ˇspatnˇe rozpoznan´ych znak˚u. Tyto chyby se obvykle klasifikuj´ı do dvou hlavn´ıch kategori´ı:

Neslovn´e chyby Neslovn´a chyba (z angl.

”non-word error“, dosl.

”ne-slovo chyba“) vznik´a, kdyˇz OCR procesem rozpoznan´y ˇretˇezec v dan´em jazyce neexistuje (napˇr. ˇretˇezec

”mili´on“ je roz- pozn´an jako

”mili´un“). Neslovn´e chyby obvykle zast´avaj´ı vˇetˇsinu chyb vyskytuj´ıc´ıch se v textu. Z´aroveˇn jdou sn´azeji opravit, nebot’ tyto ˇretˇezce (obvykle) nejsou obsaˇzeny v ˇz´adn´em slovn´ıku. To umoˇzˇnuje algoritmu takovou chybu snadno naj´ıt a pomoc´ı r˚uzn´ych metod vybrat nejvhodnˇejˇs´ı opravu, kter´a bude pouˇzita.

Slovn´e chyby Slovn´a chyba (z angl.

”real-word error“, dosl.

”re´aln´e-slovo chyba“) vznik´a, kdyˇz OCR procesem rozpoznan´y ˇretˇezec v dan´em jazyce existuje, ale nekoresponduje s origin´aln´ım ˇ

retˇezcem (napˇr. ˇretˇezec

”ˇrekl“ je rozpozn´an jako

”utekl“). Oprava slovn´ych chyb je tˇeˇzˇs´ı neˇz oprava chyb neslovn´ych, nebot’ k nalezen´ı nejvhodnˇejˇs´ı opravy je nutno br´at v potaz kontext.

Tyto dvˇe hlavn´ı kategorie mohou b´yt dle potˇreb aplikace rozdˇeleny do ˇrady podkategori´ı, napˇr´ıklad Segmentace, tedy rozpojen´ı ˇci spojen´ı ˇretˇezc˚u, Interpunkˇcn´ı chyby, tedy z´amˇeny, vkl´ad´an´ı a maz´an´ı interpunkˇcn´ıch znam´enek a jin´e.

(12)

1 UVOD´

1.2.2 Metody pro zlepˇsen´ı kvality

Kvalita OCR se d´a vylepˇsit ve tˇrech kroc´ıch: pre-procesingu, samotn´e OCR ˇc´asti a v post–

procesingu [2].

Pre-procesing

Aby mohl OCR proces spr´avnˇe rozpozn´avat znaky a ˇretˇezce, mus´ı m´ıt k dispozici co nejlepˇs´ı vstupn´ı obraz. K vylepˇsen´ı kvality vstupn´ıho obrazu se vyuˇz´ıv´a ˇrady technik, napˇr´ıklad za- rovn´an´ı, kter´e opravuje pootoˇcen´e nebo ohnut´e str´anky, nebo odstranˇen´ı ˇsumu, jenˇz potlaˇcuje nechtˇen´e artefakty vytvoˇren´e ˇsp´ınou ˇci nepˇresnost´ı pˇri skenov´an´ı. Nejd˚uleˇzitˇejˇs´ımi metodami pˇri digitalizaci historick´ych novin jsou anal´yza rozvrˇzen´ı textu (tak´e zn´amo jako

”z´onov´an´ı“), pˇri kter´e se text rozdˇeluje do logick´ych blok˚u (napˇr. sloupce ˇcl´ank˚u), a anal´yza

slit´ych/rozbit´ych znak˚u, pˇri kter´e se hledaj´ı a spr´avnˇe rozdˇeluj´ı/zceluj´ı poˇskozen´e znaky.

OCR

Pro kaˇzd´y znak vstupn´ıho obrazu je provedena anal´yza a na z´akladˇe pouˇzit´eho algoritmu je vygenerov´an list kandid´at˚u. Kaˇzd´y znak v tomto listu je ohodnocen ˇc´ıslem, kter´e ud´av´a, jak moc si je OCR algoritmus jist´y, ˇze se jedn´a o stejn´y znak jako v p˚uvodn´ım dokumentu.

V z´asadˇe existuj´ı dva typy algoritm˚u – maticov´e porovn´av´an´ı a extrakce charakteristick´ych rys˚u. Maticov´e porovn´av´an´ı bere pixelovou mˇr´ıˇzku dan´eho znaku tak jak je a porovn´av´a ji s datab´az´ı ˇsablon znak˚u. V´ysledn´e sk´ore toho kter´eho znaku je urˇceno na z´akladˇe podobnosti jednotliv´ych pixel˚u. Extrakce charakteristick´ych rys˚u vyuˇz´ıv´a rozloˇzen´ı vstupn´ıho obrazu na charakteristick´e rysy, jako jsou linky, jejich smˇer, kruˇznice a body protnut´ı. Pomoc´ı tˇechto rys˚u a datab´aze zn´am´ych rys˚u se pak algoritmus snaˇz´ı vhodnou metodou klasifikovat vstupn´ı znak.

Tato metoda je pouˇz´ıv´ana ve vˇetˇsinˇe ICR (Intelligent Character Recognition – inteligentn´ı rozpozn´av´an´ı znak˚u, obvykle zamˇeˇren´e na ruˇcnˇe psan´e p´ısmo) a lepˇs´ıch OCR, nebot’ poskytuje vˇetˇs´ı flexibilitu a moˇznost rozpozn´avat vysoce odliˇsnˇe napsan´e/vytiˇstˇen´e znaky. Tato metoda tak´e umoˇzˇnuje samovoln´e uˇcen´ı syst´emu na dan´em korpusu dat, coˇz dok´aˇze vylepˇsit v´ysledky rozpozn´av´an´ı neobvykl´ych font˚u nebo nekvalitn´ıch sken˚u.

Pro vylepˇsen´ı kvality OCR se ˇcasto pouˇz´ıvaj´ı slovn´ıky, kter´e mohou pomoci v pˇr´ıpadˇe nejist´eho rozpozn´an´ı ˇretˇezc˚u. Slovn´ıky mohou b´yt ´upln´e, nebo specializovan´e na obor, ze kter´eho rozpozn´avan´y dokument poch´az´ı. Nutno podotknout, ˇze slovn´ıkov´y pˇr´ıstup nemus´ı b´yt optim´aln´ı, pokud se v dokumentu vyskytuj´ı nezn´am´e ˇretˇezce, napˇr´ıklad vlastn´ı jm´ena.

V´ysledek tohoto procesu je obvykle ukl´ad´an ve form´atu ˇcist´eho textu (TXT). Kvalitnˇejˇs´ı OCR programy vˇsak mohou ukl´adat text do form´at˚u vyuˇz´ıvaj´ıc´ıch metadata k anotaci obsahu, napˇr. PDF nebo DOC, coˇz m˚uˇze v dalˇs´ı f´azi pomoci s automatickou opravou.

(13)

Post-procesing

Post-procesing se zab´yv´a ´upravou textov´ych dokument˚u vyˇsl´ych z OCR aplikace. Jedn´a se tedy obvykle o pr´aci s ˇcistˇe textov´ymi soubory, konkr´etnˇe hled´an´ı a opravu chyb. Post- procesing je hlavn´ı n´apln´ı t´eto bakal´aˇrsk´e pr´ace. Dˇr´ıve v t´eto kapitole byly pˇredstaveny dva z´akladn´ı typy chyb – slovn´e a neslovn´e. Oba typy chyb maj´ı sv´e specifick´e metody oprav, tato pr´ace se vˇsak zab´yv´a pouze chybami neslovn´ymi.

Obvykl´y pˇr´ıstup k oprav´am neslovn´ych chyb je pomoc´ı slovn´ıku, kter´y obsahuje spr´avnˇe napsan´e ˇretˇezce v dan´em jazyce. Nejprve je tˇreba chyby nal´ezt. Textov´y dokument je rozdˇelen na jednotliv´e ˇretˇezce a ty jsou porovn´av´any se slovn´ıkem. Pokud se v nˇem nenal´ezaj´ı, pak se pravdˇepodobnˇe jedn´a o neslovnou chybu. Druh´ym krokem je z´ısk´an´ı ˇretˇezc˚u ze slovn´ıku jako kandid´at˚u k opravˇe a jejich porovn´an´ı. Nejlepˇs´ı by samozˇrejmˇe bylo porovn´avat s chybou vˇsechny ˇretˇezce, kter´e slovn´ık obsahuje. Tento pˇr´ıstup je vˇsak znaˇcnˇe neefektivn´ı, zvl´aˇstˇe u vˇetˇs´ıch slovn´ık˚u. Proto se vyuˇz´ıv´a r˚uzn´ych metod, kter´e z´ıskaj´ı ze slovn´ıku pouze ty ˇretˇezce, kter´e jsou zkouman´e chybˇe nˇejak podobn´e.

K tomuto ´uˇcelu lze napˇr´ıklad vyuˇz´ıt Soundex algoritmu p´an˚u Rusella a Odella [3], kter´y mapuje ˇretˇezce podle zvuku jednotliv´ych znak˚u, nebo algoritmu Pollocka a Zamory [4], kter´y redukuje ˇretˇezce do formy obsahuj´ıc´ı pouze struktur´alnˇe d˚uleˇzit´e znaky. V t´eto pr´aci je vyuˇz´ıv´ano z´ısk´av´an´ı kandid´at˚u pomoc´ı vektorov´eho prostoru, pˇredstaveno Saltonem [5], kter´e vyuˇz´ıv´a indexace pomoc´ı znakov´ych n-gram˚u.

N-gram

N-gram je souvisl´a sekvence N prvk˚u v dan´e posloupnosti. V oboru komputaˇcn´ı lingvis- tiky se ˇcasto jedn´a o sekvenci znak˚u v ˇretˇezci nebo ˇretˇezc˚u v souboru. Pro N = 2 se vˇzil n´azev

”bigram“ a pro N = 3 se pouˇz´ıv´a n´azev

”trigram“. Ostatn´ı N se zapisuj´ı pomoc´ı ˇ

c´ısla, e.g.

”5-gram“.

Po z´ısk´an´ı seznamu kandid´at˚u k opravˇe je nutno vybrat z nich toho nejvhodnˇejˇs´ıho. To obvykle zaˇrizuje sk´orovac´ı funkce, kter´a jednotliv´e kandid´aty ohodnocuje dle dan´eho krit´eria, napˇr´ıklad podobnosti s chybn´ym ˇretˇezcem. Mezi ˇcasto vyuˇz´ıvan´e funkce patˇr´ı Levenshteinsk´a vzd´alenost [6], kter´a ud´av´a nejmenˇs´ı moˇzn´e mnoˇzstv´ı povolen´ych operac´ı (z´amˇena, vloˇzen´ı nebo smaz´an´ı jednoho znaku), kter´e je potˇreba k transformaci ˇretˇezce a na ˇretˇezec b.

Existuje nˇekolik r˚uzn´ych variant Levenshteinsk´e vzd´alenosti, napˇr. Damerau-Levenshteinsk´a vzd´alenost [7], jenˇz pˇrid´av´a operaci z´amˇeny dvou sousedn´ıch znak˚u, nebo LCS (Longest Com- mon Subsequence; Nejdelˇs´ı spoleˇcn´a subsekvence), kter´a umoˇzˇnuje pouze operace pˇrid´an´ı a odebr´an´ı znaku. D´ale se kaˇzd´e operaci d´a nastavit rozd´ıln´a v´aha a t´ım z´ıskat optimalizova- nou vzd´alenost pro specifickou ´ulohu. Tyto algoritmy jsou mimo jin´e schopny sestavit seznam

(14)

1 UVOD´

krok˚u k transformaci ˇretˇezce a na ˇretˇezec b, ˇcehoˇz m˚uˇze b´yt vyuˇzito pˇri porovn´av´an´ı ˇretˇezc˚u.

Dalˇs´ı formou porovn´av´an´ı podobnosti ˇretˇezc˚u je porovn´av´an´ı znakov´ych n-gram˚u. Tˇech se d´a vyuˇz´ıt k mˇeˇren´ı podobnosti ˇretˇezc˚u jiˇz napˇr´ıklad jednoduch´ym sk´orov´an´ım tak, ˇze seˇcteme poˇcet spoleˇcn´ych znakov´ych n-gram˚u ˇretˇezce a a ˇretˇezce b. Druh´a moˇzn´a metoda je mˇeˇren´ı koeficientu podobnosti, tedy pod´ıl shodn´ych a unik´atn´ıch znakov´ych n-gram˚u z obou slov.

Metody vyuˇzit´e v t´eto pr´aci jsou detailnˇeji pops´any v kapitole 2.

1.3 Pˇribl´ıˇzen´ı podklad˚u

Pro tuto pr´aci byly poskytnuty dva hlavn´ı podklady – datab´aze soubor˚u vytvoˇren´a digitalizac´ı den´ıku Rud´e Pr´avo a slovn´ık zn´am´ych, historicky podm´ınˇen´ych ˇretˇezc˚u. Ani jeden z tˇechto podklad˚u se nesm´ı veˇrejnˇe ˇs´ıˇrit a z tohoto d˚uvodu nen´ı po dohodˇe s vedouc´ım pr´ace obsaˇzen na pˇriloˇzen´em datov´em m´ediu.

1.3.1 Datab´aze digitalizovan´eho den´ıku

Tato datab´aze obsahuje str´anky den´ıku Rud´e Pr´avo v naskenovan´e i textov´e formˇe. Pro tuto pr´aci jsou d˚uleˇzit´e pouze textov´e soubory, skeny str´anek slouˇz´ı jen pro kontrolu v´ysledk˚u pˇri testov´an´ı.

V datab´azi se vyskytuje celkem 302 432 156 ˇretˇezc˚u v 69 662 textov´ych souborech, rozloˇze- n´ych do 39 roˇcn´ık˚u dle obr´azku 1.

Obr´azek 1: Statistika roˇcn´ık˚u Rud´eho Pr´ava: Poˇcet ˇretˇezc˚u a stran v z´avislosti na roˇcn´ıku

(15)

Zaj´ımavost´ı je, ˇze nˇekter´e str´anky chyb´ı (napˇr. 21. a 22. kvˇetna 1945, a tis´ıce dalˇs´ıch).

Tento fakt je nejsp´ıˇse zapˇr´ıˇcinˇen t´ım, ˇze se nˇekter´e strany nedochovaly ve fyzick´e formˇe, nebo byly po OCR procesu tak poˇskozeny, ˇze oprava nebyla moˇzn´a a byly tud´ıˇz vyˇrazeny. Obr´azek 1 je tedy reprezentac´ı rozloˇzen´ı ˇretˇezc˚u v datov´em korpusu, nikoliv v re´aln´em den´ıku Rud´e Pr´avo.

Pouˇz´ıvan´ym jazykem je pˇrev´aˇznˇe ˇceˇstina vyuˇz´ıvan´a v dan´em historick´em obdob´ı, okrajovˇe se pak vyskytuj´ı pas´aˇze psan´e slovensky. Pouˇz´ıvan´y jazyk se v pr˚ubˇehu let nepatrnˇe mˇen´ı, cel´y archiv tedy obsahuje ˇradu r˚uzn´ych textov´ych variac´ı. Kv˚uli p˚uvodu dokument˚u se v textu tak´e nal´ez´a ˇrada r˚uzn´ych t´emat, coˇz ztˇeˇzuje ´ukol nalezen´ı a opravy chyb, nebot’ nelze pouˇz´ıt specializovan´eho slovn´ıku.

1.3.2 Slovn´ık

Druh´ym pˇrijat´ym podkladem byl slovn´ık zn´am´ych, historicky podm´ınˇen´ych ˇretˇezc˚u. V tom- to slovn´ıku se nach´azelo celkem 570 424 ˇretˇezc˚u. Vˇsechny ˇretˇezce jsou v nˇem zaps´any mal´ymi znaky, s v´yjimkou vlastn´ıch jmen a akronym˚u.

Obvykl´y postup pˇri vytv´aˇren´ı takov´eho slovn´ıku

”od nuly“ je v´ypoˇcet TF (Term frequency;

frekvence v´yskyt˚u) unik´atn´ıch ˇretˇezc˚u v textov´ych souborech. D´a se pˇredpokl´adat, ˇze ˇcasto se vyskytuj´ıc´ı ˇretˇezce jsou ˇretˇezce spr´avnˇe rozpoznan´e a pro slovn´ık d˚uleˇzit´e. Kaˇzd´y unik´atn´ı ˇ

retˇezec s poˇctem v´yskyt˚u nad urˇcitou hranici je pak zaps´an do slovn´ıku.

Nutno podotknout, ˇze je zapotˇreb´ı nesm´ırn´e mnoˇzstv´ı pr´ace, aby byl slovn´ık opravdu kva- litn´ı a obsahoval pouze spr´avn´e ˇretˇezce. A pr´avˇe spr´avnˇe vyvoˇren´y kvalitn´ı slovn´ık je tou nejd˚uleˇzitˇejˇs´ı souˇc´ast´ı drtiv´e vˇetˇsiny syst´em˚u pro automatick´e opravy textu.

Jedn´ım z c´ıl˚u t´eto pr´ace je tento slovn´ık rozˇs´ıˇrit o dalˇs´ı historicky podm´ınˇen´e, v textu se vyskytuj´ıc´ı ˇretˇezce.

(16)

2 POU ˇZIT ´E METODY PRO AUTOMATICK ´E OPRAVY

2 Pouˇ zit´ e metody pro automatick´ e opravy

2.1 Porovn´av´an´ı se slovn´ıkem

Jak je pops´ano v kapitole 1.2.2, porovn´avat testovan´y chybn´y ˇretˇezec s cel´ym slovn´ıkem by bylo vysoce neefektivn´ı. Je tedy z´ahodno vyuˇz´ıt metody, kter´a omez´ı mnoˇzinu porovn´avan´ych ˇ

retˇezc˚u ze slovn´ıku pouze na ty, jenˇz sd´ılej´ı s p˚uvodn´ım chybn´ym ˇretˇezcem nˇejakou podobnost.

Tato pr´ace vyuˇz´ıv´a pro v´ybˇer takov´e mnoˇziny indexaci pomoc´ı vektorov´eho prostoru, kterou definoval Salton [5]. Vˇsechny ˇretˇezce ve slovn´ıku jsou indexov´any pomoc´ı znakov´ych

n-gram˚u. Chybn´y ˇretˇezec je rozloˇzen na znakov´e n-gramy stejn´e d´elky a ty pak slouˇz´ı k z´ısk´an´ı podobn´ych slovn´ıkov´ych ˇretˇezc˚u.

Vˇsechny ˇretˇezce ve slovn´ıku jsou indexov´any pomoc´ı znakov´ych trigram˚u a bigram˚u.

Napˇr´ıklad:

”nebo”->{#ne, neb, ebo, bo#, #n, ne, eb, bo, o#}

Chybn´y ˇretˇezec je rozloˇzen na znakov´e bigramy, pokud je kratˇs´ı neˇz 4 znaky, jinak je rozloˇzen na znakov´e trigramy. Pro kaˇzd´y takov´y n-gram je z datab´aze z´ısk´ana skupina ˇretˇezc˚u, jenˇz dan´y n-gram obsahuj´ı. U vˇsech z´ıskan´ych ˇretˇezc˚u je uchov´av´ana informace o tom, kolikr´at byly z datab´aze pˇrijaty. Toto TF sk´ore, kter´e je z´aroveˇn souˇctem vˇsech sd´ılen´ych n-gram˚u, slouˇz´ı k urˇcen´ı z´akladn´ı podobnosti mezi chybn´ym ˇretˇezcem a ˇretˇezcem ze slovn´ıku. Napˇr´ıklad byl v textu nalezen chybn´y ˇretˇezec

”nebc“:

”nebc”->{#ne, neb, ebc, bc#}

Pˇri porovn´an´ı se slovn´ıkem byl, mimo jin´e, z´ısk´an ˇretˇezec

”nebo“ se sk´ore 2.

2.2 Statistika znakov´ych z´amˇen

Mˇejme ˇretˇezec W , sloˇzen´y ze znak˚u w1,...,wn, jenˇz zastupuje ˇretˇezec v p˚uvodn´ım doku- mentu. D´ale mˇejme ˇretˇezec S, sloˇzen´y ze znak˚u s1,...,sn, zastupuj´ıc´ı ˇretˇezec rozpoznan´y OCR procesem. Na z´akladˇe statistik znakov´ych z´amˇen m˚uˇzeme vypoˇc´ıtat p(S|W ), tedy pravdˇepodobnost, ˇze ˇretˇezec W byl OCR procesem rozpozn´an jako ˇretˇezec S.

Tong a Evans vyuˇz´ıvaj´ı k v´ypoˇctu t´eto pravdˇepodobnosti algoritmu podobn´eho tomu, jak´y definoval Wagner [8]. Tento algoritmus vyuˇz´ıv´a stejn´ych operac´ı jako Levenshtein, tedy a) vloˇzen´ı znaku, b) smaz´an´ı znaku a c) z´amˇena znaku za jin´y znak. Pˇri digitalizaci historick´ych v´ytisk˚u se vˇsak st´av´a, ˇze jsou dva aˇz tˇri znaky slity dohromady (napˇr. ˇretˇezec

”ˇri“ je roz- pozn´an jako znak

”n“), nebo naopak, jeden znak je rozloˇzen na dva aˇz tˇri znaky (napˇr. znak

(17)

”m“ je rozloˇzen na ˇretˇezec

”iii“). Toto umoˇzˇnuje br´at v potaz algoritmus zn´am´y jako Ratcliff- Obershelpovo rozpozn´av´an´ı vzor˚u [9] (d´ale jen RO). Jedn´a se o rekurzivn´ı algoritmus, kter´y hled´a v ˇretˇezc´ıch nejdelˇs´ı spoleˇcnou subsekvenci, rozdˇeluje oba ˇretˇezce na ˇc´ast pˇred a po na- lezen´e shodn´e subsekvenci a na obˇe tyto ˇc´asti aplikuje znovu s´am sebe. V´ysledkem tohoto algoritmu je nejmenˇs´ı poˇcet krok˚u k transformaci ˇretˇezce a na ˇretˇezec b s t´ım, ˇze Leven- shteinsk´a operace z´amˇeny znaku je zmˇenˇena na z´amˇenu ˇretˇezc˚u libovoln´e d´elky N > 0.

Napˇr´ıklad: Mˇejme ˇretˇezec a =

”Stochastika“ a ˇretˇezec b =

”Sochaˇrstv´ı“. RO zjist´ı tyto kroky transformace ˇretˇezce a na ˇretˇezec b:

”S“ z˚ust´av´a

”S“

”t“ smaz´ano

”ocha“ z˚ust´av´a

”ocha“

vloˇzeno

”ˇr“

”st“ z˚ust´av´a

”st“

”ika“ zmˇenˇeno na

”v´ı“

Nejprve se vˇsak mus´ı definovat ˇreˇsen´ı z´amˇen v´ıceznakov´ych ˇretˇezc˚u. Mˇejme napˇr´ıklad krok transformace - z´amˇena ˇretˇezce a =

”abcd“ ˇretˇezcem b =

”efghijklm“. Pro spr´avnou maxi- malizaci pravdˇepodobnosti p(

”efghijklm“|

”abcd“) by bylo nutno prov´est tzv. vyˇcerp´avaj´ıc´ı porovn´an´ı, pˇri kter´em by byly vyzkouˇseny vˇsechny moˇzn´e kombinace z´amˇen znak˚u a ˇretˇezc˚u.

To by vˇsak bylo komputaˇcnˇe pˇr´ıliˇs n´aroˇcn´e, proto jsou takov´e pravdˇepodobnosti zaokrouh- lov´any na

p(b|a) = p(b|a)max(len(a),len(b)) (1) za pˇredpokladu, ˇze

len(a) <= 3 a z´aroveˇn len(b) <= 3 kde

len(a) oznaˇcuje d´elku ˇretˇezce a (stejnˇe pro b)

Toto rozhodnut´ı je zaloˇzeno na pozorov´an´ı, ˇze m´alokdy jsou takto ˇspatnˇe rozpozn´any ˇretˇezce o v´ıce neˇz 3 znac´ıch. Kaˇzd´a z´amˇena obsahuj´ıc´ı v´ıce znak˚u je br´ana jako nezn´am´a z´amˇena, pops´ano d´al.

(18)

2 POU ˇZIT ´E METODY PRO AUTOMATICK ´E OPRAVY

Pro v´ypoˇcet pravdˇepodobnosti p(S|W ) pro kroky k1 aˇz kn transformace podle RO je pouˇzito rovnice

p(S|W ) =

n

Y

k=1

p(sk|wk) (2)

kde

p(sk|wk) =

n

Y

i=1

p(si|wi) (3)

pokud len(sk) = len(wk), jinak cel´e dle rovnice 1 kde

k je ˇc´ıslo kroku

sk je podˇretˇezec ˇretˇezce S vyuˇz´ıv´an v kroku k (podobnˇe pro wk) si je znak na indexu i v podˇretˇezci sk (podobnˇe pro wi)

Probl´em nezn´am´ych z´amˇen je ˇreˇsen stejnˇe, jak ho ˇreˇs´ı Tong a Evans. Tedy pokud je pravdˇepodobnost p(y|x) nezn´am´a, pˇredpokl´ad´a se univerz´aln´ı pravdˇepodobnost

p(y|x) =

( α pokud x = y

(1−α)

N pokud x 6= y (4)

p(del(x)) = p(ins(x)) = (1 − α)

N (5)

kde

N je poˇcet tisknuteln´ych znak˚u

α je pˇredpokl´adan´a pravdˇepodobnost, ˇze znak byl rozpozn´an korektnˇe del(x) je smaz´an´ı znaku x

ins(x) je vloˇzen´ı znaku x

Za pˇredpokladu, ˇze OCR nedˇel´a chyby n´ahodnˇe, se d´a pravdˇepodobnost jednotliv´ych krok˚u vypoˇc´ıtat ze statistik znakov´ych z´amˇen jako

p(y|x) = num(sub(x, y))

num(x) (6)

p(del(x)) =num(del(x))

num(x) (7)

p(ins(x)) = num(ins(x))

num(ins) (8)

kde

num(x) je celkov´y poˇcet x sub(x, y) je poˇcet z´amˇen y za x num(ins) je celkov´y poˇcet vloˇzen´ı

(19)

Statistika znakov´ych z´amˇen se samozˇrejmˇe mus´ı nejprve z´ıskat. Prvn´ı algoritmus imple- mentovan´y v t´eto pr´aci vyuˇz´ıv´a stejn´eho iterativn´ıho zp˚usobu

”uˇcen´ı se z opravov´an´ı“, jak´y pouˇzili Tong a Evans. Algoritmus se tedy statistiky znakov´ych z´amˇen uˇc´ı z vlastn´ıch oprav.

Tento mechanismus umoˇzˇnuje algoritmu nauˇcit se pravdˇepodobnosti z´amˇen znak˚u a ˇretˇezc˚u u specifick´ych OCR prostˇred´ı a t´ım vylepˇsit sv´e schopnosti oprav.

K t´eto ˇc´asti se vztahuje i ˇc´ast algoritmu pro porovn´an´ı d´elky ˇretˇezc˚u. Tento vzorec pro

´

upravu pravdˇepodobnosti byl pˇrid´an z d˚uvod˚u popsan´ych v kapitole 3.3.2. ´Uprava pravdˇepo- dobnosti na z´akladˇe porovn´an´ı d´elky je aplikov´ana pomoc´ı rovnice

p(S|W ) = p(S|W ) ∗ 0, 1|len(S)–len(W )|

(9) tedy v´ysledn´a pravdˇepodobnost je sn´ıˇzena o jeden ˇr´ad pro kaˇzdou jednotku rozd´ılu d´elky.

Retˇˇ ezce liˇs´ıc´ı se o d´elku jednoho znaku budou m´ıt o ˇr´ad niˇzˇs´ı pravdˇepodobnost, ˇretˇezce liˇs´ıc´ı se o d´elku dvou znak˚u budou m´ıt o dva ˇr´ady niˇzˇs´ı pravdˇepodobnost atd.

2.3 N-gramov´y jazykov´y model

Tong a Evans definovali ˇc´ast sv´eho probl´emu jako vypoˇcten´ı pravdˇepodobnosti v´yskytu ˇ

retˇezc˚u v cel´e vˇetˇe v z´avislosti na pˇredchoz´ıch ˇretˇezc´ıch. Bran´ı kontextu v potaz jim umoˇznilo opravovat jak neslovn´e, tak slovn´e chyby. Tato pr´ace se zamˇeˇruje pouze na neslovn´e chyby, tento probl´em je tedy moˇzno redukovat pouze na v´ypoˇcet bezprostˇredn´ı pravdˇepodobnosti.

Architektura opravn´eho procesu takt´eˇz zaruˇcuje, ˇze cel´a datab´aze zn´am´ych n-gram˚u bude pˇri automatick´ych oprav´ach k dispozici.

Pˇredpokl´adejme bigramov´y jazykov´y model. Mˇejme sekvenci ˇretˇezc˚u w1, w2 a w3. Bez- prostˇredn´ı pravdˇepodobnost v´yskytu ˇretˇezce w2 se d´a spoˇc´ıtat jako pravdˇepodobnost, ˇze se ˇ

retˇezec w2 vyskytne za ˇretˇezcem w1 a ˇze se ˇretˇezec w3 vyskytne pr´avˇe za ˇretˇezcem w2. Pˇri aplikaci promˇenn´ych tedy

p(wn) = p(wn|wn−1) ∗ p(wn+1|wn) (10) coˇz je implementov´ano jako

p(wn) = num(wn−1+ wn)

num(wn−1) ∗num(wn+ wn+1)

num(wn+1) (11)

kde

num(wn+ wn−1) je poˇcet v´yskyt˚u ˇretˇezce wn−1 n´asledovan´eho ˇretˇezcem wn

num(wn−1) je poˇcet v´yskyt˚u samotn´eho wn−1 analogicky pro wn+1

(20)

2 POU ˇZIT ´E METODY PRO AUTOMATICK ´E OPRAVY

Kombinace obou metod maximalizuje pravdˇepodobnost v´yskytu kandid´ata na m´ısto chyb- n´eho ˇretˇezce v z´avislosti na bezprostˇredn´ım kontextu z obou stran. Jedin´ym probl´emem je, podobnˇe jako u statistiky znakov´ych z´amˇen, odhad pravdˇepodobnosti pˇri nezn´am´ych statis- tik´ach

n-gram˚u v textu. Tento probl´em se d´a vyˇreˇsit napˇr´ıklad jednoduchou metodou pˇrid´an´ı kon- stanty pro nezn´am´e prvky. Pokud algoritmus naraz´ı na n-gram, kter´y nem´a v datab´azi, sub- stituuje jeho pravdˇepodobnost za

p(wn|wn−1) = 0, 01

max(num(wn−1)) (12)

a

p(wn+1|wn) = 0, 01

max(num(wn+1)) (13)

T´ım je zaruˇceno, ˇze sekvence ˇretˇezc˚u, jenˇz nebyla nikdy pozorov´ana, bude m´ıt minim´alnˇe o dva ˇr´ady niˇzˇs´ı pravdˇepodobnost neˇz nejm´enˇe pravdˇepodobn´a sekvence, jenˇz pozorov´ana byla.

Druh´y algoritmus vyuˇz´ıv´a jin´e rovnice pro implementaci jazykov´eho modelu:

Scn= (ln(num(wn−1+ wn))

5 + 2) ∗ Scz (14)

a

Scn= (ln(num(wn+ wn+1))

5 + 2) ∗ Scz (15)

kde

Scn je nov´e sk´ore Scz je z´akladn´ı sk´ore

(21)

3 Postup pr´ ace

Tato ˇc´ast popisuje, jak byla pr´ace ˇreˇsena z praktick´eho hlediska. Jak vypad´a architektura hlavn´ıch ˇc´ast´ı n´astroj˚u pro anal´yzu a automatickou opravu, jak prob´ıhal jejich v´yvoj a jak´e probl´emy bylo nutno vyˇreˇsit.

Veˇsker´e n´astroje byly implementov´any v programovac´ım jazyku Python verze 2.7.6, 32-bit.

O v´yhod´ach a nev´yhod´ach tohoto rozhodnut´ı pojedn´av´am v´ıce v kapitole 4.

Veˇsker´y v´yvoj, testy a fin´aln´ı opravy datab´aze prob´ıhaly na jedin´em poˇc´ıtaˇci s procesorem o taktu 1,65 GHz a operaˇcn´ım syst´emem Windows 7.

3.1 Pˇr´ıpravn´a ˇc´ast

Nejprve bylo potˇreba zjistit, s jak´ymi typy chyb se bude muset algoritmus pro automatickou opravu pot´ykat. Proto byla implementov´ana jednoduch´a anal´yza textu dle obr´azku 2

Obr´azek 2: V´yvojov´y diagram: Prvn´ı anal´yza

(22)

3 POSTUP PR ´ACE

Kaˇzd´y textov´y soubor ve zvolen´em ´useku datab´aze je pˇreˇcten a jeho obsah rozdˇelen na sekvenci ˇretˇezc˚u podle mezer. Kaˇzd´y ˇretˇezec je porovn´an se slovn´ıkem ve vˇsech moˇzn´ych tvarech (s interpunkc´ı a bez, zaps´an pouze mal´ymi p´ısmeny, velk´ymi p´ısmeny atd.) Pokud se nevyskytuje ve slovn´ıku v ˇz´adn´e formˇe, je br´an jako nezn´am´y (ˇspatnˇe rozpoznan´y) ˇretˇezec a je zapoˇc´ıt´an do seznamu chyb a poˇctu jejich v´yskyt˚u. Cel´a datab´aze byla rozdˇelena na pˇetilet´e

´

useky a zanalyzov´ana. Tabulka 1 ukazuje d˚uleˇzit´e hodnoty:

Tabulka 1: Prvn´ı anal´yza textov´e datab´aze

Roky Chybovost Poˇcet ˇretˇezc˚u Poˇcet chyb Poˇcet stran

45-49 5,293457 % 21756802 1151687 5575

50-54 3,353954 % 36619192 1228191 8001

55-59 4,134854 % 37420548 1547285 8162

60-64 5,307494 % 38860503 2062519 8300

65-69 4,663874 % 44582166 2079256 10236

70-74 4,245049 % 40747393 1729747 9885

75-79 4,363819 % 44896038 1959182 10558

80-83 3,889701 % 37549514 1460564 8945

Celkem 4,370710 % 302432156 13218431 69662

D˚uleˇzit´a data z prvn´ı anal´yzy jsou k dispozici na pˇriloˇzen´em datov´em m´ediu. V tabulce 2 pro uk´azku 10 nejˇcastˇejˇs´ıch chyb.

Tabulka 2: Uk´azka nejˇcastˇejˇs´ıch nezn´am´ych ˇretˇezc˚u Retˇˇ ezec Poˇcet v´yskyt˚u

l 171816

M. 79887

e 61568

L. 54635

B. 53840

t 49881

ie 46979

n. 45400

F. 45149

t. 44779

Majorita tˇechto ˇretˇezc˚u je chybnˇe rozpoznan´a, nicm´enˇe se v tomto seznamu vyskytuje velk´e mnoˇzstv´ı r˚uzn´ych existuj´ıc´ıch a spr´avnˇe rozpoznan´ych ˇretˇezc˚u, kter´e nebyly zastoupeny ve slovn´ıku. Hojnˇe se zde vyskytuj´ı ˇr´ımsk´e ˇc´ıslice, r˚uzn´e druhy zkratek (napˇr.

”soudr.“ -

”soudruh“), akronym˚u (

”UNV“ -´

”Ustˇ´ redn´ı N´arodn´ı V´ybor“), dvou slov spojen´ych ˇc´arkou (”Praha-Varˇsava“), ale i cel´ych slov (

”Titovci“ - n´azev knihy z roku 1963). Tento seznam

(23)

tedy bylo nutno prvek po prvku proj´ıt a kaˇzd´y ˇretˇezec podrobit bliˇzˇs´ımu prozkoum´an´ı. Hlavn´ı ot´azkou bylo, zda ˇretˇezec skuteˇcnˇe existoval v dan´em historick´em obdob´ı, co pˇresnˇe znamenal a jak se pouˇz´ıval.

Takto byla podrobena manu´aln´ı anal´yze vˇetˇsina ˇretˇezc˚u, jenˇz se vyskytovaly v cel´em kor- pusu v´ıce neˇz 500x. To zahrnuje prvn´ıch cca 1000 ˇretˇezc˚u z celkov´eho poˇctu 5 367 002 unik´atn´ıch ˇretˇezc˚u. Unik´atn´ıch ˇretˇezc˚u s mal´ym poˇctem v´yskyt˚u je drtiv´a vˇetˇsina, ze sta- tistick´eho hlediska vˇsak mohou b´yt zanedb´any – pokud se ˇretˇezec za 39 let v´ytisk˚u den´ıku vyskytl pouze 10x, nebude m´ıt na cel´y korpus velk´y vliv.

Nˇekter´e nezn´am´e ˇretˇezce zastupuj´ı v´ıceslovn´a spojen´ı, jako napˇr´ıklad

”Ban´ık-Sparta“. Ta nejsou ve slovn´ıku obvykle obsaˇzena, nebot’ moˇzn´ych kombinac´ı je pˇr´ıliˇs velk´e mnoˇzstv´ı. Pro

´

uˇcely anal´yzy jsou tato spojen´ı ignorov´ana podobnˇe jako ˇr´ımsk´e ˇc´ıslice.

Celkovˇe bylo do slovn´ıku pˇrid´ano 53 nov´ych, nejˇcastˇeji se objevuj´ıc´ıch historicky podm´ınˇe- n´ych ˇretˇezc˚u, kter´e jsou k vidˇen´ı na pˇriloˇzen´em datov´e m´ediu. V tabulce 3 je k vidˇen´ı anal´yza pˇetiletek po pˇrid´an´ı k´odu pro rozpozn´av´an´ı ˇr´ımsk´ych ˇc´ıslic a aktualizaci slovn´ıku.

Tabulka 3: Druh´a anal´yza textov´e datab´aze

Roky Chybovost Poˇcet ˇretˇezc˚u Poˇcet chyb Poˇcet stran

45-49 4,542005 % 21756802 988195 5575

50-54 2,809090 % 36619192 1028666 8001

55-59 3,541263 % 37420548 1325160 8162

60-64 4,733091 % 38860503 1839303 8300

65-69 4,117732 % 44582166 1835774 10236

70-74 3,694631 % 40747393 1505466 9885

75-79 3,840608 % 44896038 1724281 10558

80-83 3,419168 % 37549514 1283881 8945

Celkem 3,812665 % 302432156 11530726 69662

Rozd´ıl 0,558044 % 0 1687705 0

Jak je vidno z rozd´ılu, spr´avn´a klasifikace chyb je d˚uleˇzitou souˇc´ast´ı pˇr´ıprav. V´yˇse uveden´e zmˇeny zp˚usobily pokles vypoˇcten´e chybovosti o 0,56 % a poˇcet chyb k opravˇe klesl o v´ıce neˇz mili´on a p˚ul.

(24)

3 POSTUP PR ´ACE

3.2 Anal´yza

Tong a Evans implementovali sv˚uj algoritmus jako iter´ator nad cel´ym textov´ym korpusem.

Pro jejich ´uˇcely to bylo zapotˇreb´ı, pro vyuˇzit´ı v t´eto pr´aci je to vˇsak vysoce neefektivn´ı.

Algoritmus pro automatick´e opravy by musel pˇri kaˇzd´e z mnoha iterac´ı testovat kaˇzd´y z v´ıce neˇz 302 mili´on˚u ˇretˇezc˚u, nemluvˇe o sbˇeru statistik znakov´ych z´amˇen a spolu se vyskytuj´ıc´ıch n-gram˚u, viz kapitola 2. Daleko v´yhodnˇejˇs´ı je iterovat nad cel´ym textov´ym korpusem pouze dvakr´at – jednou pˇri sbˇeru statistik a chyb a podruh´e pˇri distribuci oprav. Mnoho unik´atn´ıch chybnˇe rozpoznan´ych ˇretˇezc˚u se tak´e v textu vyskytuje v´ıcekr´at, a to dokonce se stejn´ym bez- prostˇredn´ım kontextem. Sbˇer chybn´ych ˇretˇezc˚u umoˇzˇnuje takov´e ˇretˇezce slouˇcit a opravovat pouze jednou. Proto byl implementov´an upraven´y algoritmus pro anal´yzu textu dle obr´azku 3.

Obr´azek 3: V´yvojov´y diagram: Druh´a anal´yza

(25)

Tento n´astroj umoˇzˇnuje pˇri jedin´e iteraci nad textov´ym korpusem sbˇer n´asleduj´ıc´ıch dat:

• Chybnˇe rozpoznan´e ˇretˇezce a jejich kontext jako n-gramy specifikovan´e d´elky

• Sekvence spr´avnˇe rozpoznan´ych ˇretˇezc˚u jako n-gramy optim´aln´ı d´elky

• Statistika spr´avnˇe rozpoznan´ych znak˚u (vzhledem k tomu, ˇze automatick´e opravy pra- cuj´ı pouze s chybnˇe rozpoznan´ymi ˇretˇezci, slouˇz´ı tato statistika jako nemˇenn´y z´aklad pro automatick´e opravy)

• R˚uzn´e statistiky textov´eho korpusu – poˇcet soubor˚u, poˇcet ˇretˇezc˚u celkem, spr´avnˇe a chybnˇe rozpoznan´ych, jejich distribuce v textu dle d´elky (poˇctu znak˚u), celkov´a chy- bovost v procentech

• Rychlost zpracov´an´ı korpusu, pamˇet’ov´a a ˇcasov´a n´aroˇcnost n´astroje

Tento n´astroj umoˇzˇnuje nastaven´ı d´elky sb´ıran´ych n-gram˚u a nastaven´ı prahov´eho ˇc´ısla, urˇcuj´ıc´ıho kolikr´at se unik´atn´ı chybnˇe rozpoznan´y ˇretˇezec mus´ı v textu objevit, aby byl zaps´an na v´ystup. Vynech´an´ım statisticky zanedbateln´ych ˇretˇezc˚u se radik´alnˇe sn´ıˇz´ı poˇcet chyb k opravˇe a t´ım i ˇcasov´e n´aroky proveden´ı automatick´ych oprav. Podobnˇe bylo nutno vzhledem k pamˇet’ov´ym n´arok˚um omezit datab´azi spr´avnˇe rozpoznan´ych sekvenc´ı. N´astroj pro anal´yzu ukl´ad´a na disk vˇsechny vidˇen´e sekvence, pˇri automatick´ych oprav´ach se vˇsak vyuˇz´ıv´a redukovan´a verze, kter´a obsahuje pouze sekvence vidˇen´e v´ıce neˇz jednou.

V textov´em korpusu se vyskytuje mnoho ˇretˇezc˚u, kter´e nejsou ve slovn´ıku, ale z´aroveˇn nejsou ˇspatnˇe rozpoznan´e. Nejvˇetˇs´ı a nejprobl´emovˇejˇs´ı mnoˇzinu z nich tvoˇr´ı zkratky. Proto tento n´astroj implementuje algoritmus pro rozpozn´av´an´ı zkratek, kter´e jsou zapisov´any do samostatn´eho vedlejˇs´ıho souboru, kter´y nebyl pro automatick´e opravy pouˇzit.

Textov´a datab´aze byla opˇet rozdˇelena na pˇetilet´e ´useky a zanalyzov´ana t´ımto n´astrojem.

Experiment´alnˇe bylo zjiˇstˇeno, ˇze pro oba implementovan´e algoritmy automatick´ych oprav je nejlepˇs´ı sbˇer trigram˚u pro chybn´e ˇretˇezce a tedy bigram˚u pro ˇretˇezce spr´avn´e. Sbˇer 5- gram˚u a v´ıce je vhodnˇejˇs´ı pro lidsk´e oprav´aˇre, nebot’ maj´ı k dispozici v´ıce kontextu. Zv´yˇsen´ı d´elky n-gram˚u m´a vˇsak za n´asledek prudk´e zv´yˇsen´ı pamˇet’ov´e n´aroˇcnosti, komputaˇcn´ıho ˇcasu a celkov´e sn´ıˇzen´ı poˇctu oprav pro automatick´e opravy pˇri pouze nepatrn´em zv´yˇsen´ı kvality oprav. To je n´asledkem niˇzˇs´ıho poˇctu stejn´ych n-gram˚u pro chybn´e i spr´avn´e ˇretˇezce a t´ım p´adem i sn´ıˇzen´ı

”rozhodnosti“ a rychlosti cel´eho syst´emu.

Tabulka 4 ukazuje, kolik chyb v kaˇzd´em pˇetilet´em bloku bylo shrom´aˇzdˇeno a pˇripraveno k opravˇe. Tˇemito chybami byly pouze statisticky v´yznamn´e chyby, tedy nezn´am´e ˇretˇezce pozorovan´e v´ıce neˇz 10x. Mezi tyto ˇretˇezce nejsou poˇc´ıt´any ˇretˇezce rozpoznan´e jako zkratky.

(26)

3 POSTUP PR ´ACE

Tabulka 4: Poˇcet statisticky v´yznamn´ych chyb vybran´ych k opravˇe

Roky Chyb

celkem

Vybran´ych chyb

Unik´atn´ıch n-gram˚u

Unik´atn´ıch ˇretˇezc˚u

45-49 988195 184109 165794 3807

50-54 1028666 212698 175936 5174

55-59 1325160 285645 249578 6162

60-64 1839303 537888 477934 9330

65-69 1835774 503080 432490 8907

70-74 1505466 388744 327199 7382

75-79 1724281 448978 382724 8986

80-83 1283881 293653 244645 6532

Celkem 11530726 2854795

% celkem 100 24,76

3.3 V´yvoj n´astroj˚u pro automatick´e opravy – Prvn´ı syst´em

3.3.1 Architektura

Na z´akladˇe technologi´ı popsan´ych v kapitole 2 byl implementov´an n´astroj pro automatick´e opravy dle Obr´azku 4.

Pro kaˇzd´y unik´atn´ı chybnˇe rozpoznan´y ˇretˇezec je ze slovn´ıku z´ısk´ana skupina podobn´ych ˇ

retˇezc˚u. Nejpodobnˇejˇs´ıch N ˇretˇezc˚u je oznaˇceno za kandid´aty k opravˇe a porovn´ano s ori- gin´aln´ım ˇretˇezcem. Na z´akladˇe statistik znakov´ych z´amˇen a d´elkov´e podobnosti je jim vypoˇcte- no z´akladn´ı ohodnocen´ı (sk´ore) – pravdˇepodobnost, ˇze jsou t´ım hledan´ym ˇretˇezcem, kter´y byl OCR procesem chybnˇe rozpozn´an. Tato ˇc´ast je komputaˇcnˇe nejn´aroˇcnˇejˇs´ı, proto se vyuˇz´ıv´a pouze prvn´ıch N kandid´at˚u – zbytek je zahozen. Tento list je pro kaˇzd´y unik´atn´ı chybn´y ˇ

retˇezec vygenerov´an pouze jednou a vytvoˇren´a tabulka z´akladn´ıch ohodnocen´ı se jiˇz nemˇen´ı.

Algoritmus d´ale pracuje s r˚uzn´ymi variacemi kontextu chybn´eho ˇretˇezce. Pro kaˇzd´y unik´atn´ı chybn´y n-gram (tj. chybn´y ˇretˇezec a jeho bezprostˇredn´ı kontext) je vytvoˇrena kopie seznamu kandid´at˚u. Na z´akladˇe n-gramov´eho jazykov´eho modelu je vypoˇc´ıt´ana ´uprava ohodnocen´ı vˇsech kandid´at˚u v t´eto kopii.

Pot´e je upraven´y list kandid´at˚u seˇrazen sestupnˇe dle ohodnocen´ı a kandid´at s nejvyˇsˇs´ım sk´ore je porovn´an s druh´ym v ˇradˇe. Pokud je jeho sk´ore M -kr´at vˇetˇs´ı neˇz sk´ore druh´eho kandid´ata, je zvolen za spr´avnou opravu a je pro nˇej vygenerov´an z´aznam do seznamu oprav.

Po skonˇcen´ı hlavn´ıho opravn´eho bloku se odstran´ı dosavadn´ı statistiky znakov´ych z´amˇen a z vygenerovan´eho seznamu oprav se syst´em uˇc´ı statistiky nov´e. Mˇen´ı se tedy pouze statistiky z´ıskan´e z automatick´ych oprav a statistiky vych´azej´ıc´ı z anal´yzy z˚ust´avaj´ı nemˇenn´e.

(27)

Obr´azek 4: V´yvojov´y diagram: Prvn´ı algoritmus pro automatick´e opravy Syst´em prov´ad´ı tento cyklus K-kr´at, dle specifikovan´eho K.

3.3.2 Testov´an´ı

Pˇri v´yvoji a testov´an´ı bylo zjiˇstˇeno, ˇze m´a tento syst´em velk´e probl´emy pˇri hled´an´ı oprav ˇ

retˇezc˚u kratˇs´ıch neˇz 4 znaky. To do textu zan´aˇselo velk´e mnoˇzstv´ı ˇspatnˇe opraven´ych ˇretˇezc˚u, proto se syst´em snaˇz´ı opravovat pouze ˇretˇezce d´elky 4 znak˚u a v´ıce. Vzhledem k povaze chyb vyskytuj´ıc´ıch se v textov´e datab´azi to vˇsak znamen´a, ˇze se syst´em zpravidla pokus´ı opravit pouze tˇretinu ze vˇsech re´aln´ych chyb.

Dalˇs´ım nedostatkem bylo to, ˇze pˇri testov´an´ı syst´em ˇcasto ˇspatnˇe opravoval vlastn´ı jm´ena a jejich tvary, napˇr. ˇretˇezec

”Pariz“ byl opraven jako

”Paˇrez“. Tento nedostatek byl zm´ırnˇen tak, ˇze kaˇzd´e opraven´e vlastn´ı jm´eno je zaps´ano do sekund´arn´ıho souboru, podobnˇe jako zkratky nalezen´e v anal´yze. Tento sekund´arn´ı soubor nen´ı zapoˇc´ıt´an pˇri zhodnocen´ı syst´emu

(28)

3 POSTUP PR ´ACE

do opraven´ych ˇretˇezc˚u a samotn´y syst´em se z nˇej neuˇc´ı statistiky znakov´ych z´amˇen. Za vlastn´ı jm´eno je povaˇzov´an kaˇzd´y ˇretˇezec, jehoˇz prvn´ı znak je velk´ym p´ısmenem, vˇetˇsina dalˇs´ıch znak˚u mal´ymi p´ısmeny a z´aroveˇn pˇred sebou nem´a znak ukonˇcuj´ıc´ı vˇetu. Necel´a tˇretina vˇsech oprav jsou obvykle takto klasifikovan´a vlastn´ı jm´ena.

Velice zaj´ımav´e bylo zjiˇstˇen´ı, jak syst´em reaguje na z´amˇeny velk´ych a mal´ych znak˚u. Vzhle- dem k tomu, ˇze opravovan´ym korpusem je denn´ı tisk, nˇekter´e ˇspatnˇe rozpoznan´e ˇretˇezce byly obsaˇzeny v nadpisech ˇcl´ank˚u, a tedy naps´any cel´e velk´ymi p´ısmeny. S t´ım je ´uzce spjat probl´em opravov´an´ı ˇretˇezc˚u, jenˇz zaˇc´ınaj´ı velk´ym p´ısmenem. Takov´y ˇretˇezec m˚uˇze a nemus´ı b´yt chybnˇe rozpoznan´y v z´avislosti na tom, zda se jedn´a o prvn´ı slovo ve vˇetˇe nebo vlastn´ı jm´eno. To je obt´ıˇzn´e zjistit, proto byl tento algoritmus implementov´an tak, aby vˇsechny tes- tovan´e ˇretˇezce pˇrev´adˇel na mal´e znaky. T´ım se ztr´ac´ı informace o z´amˇen´ach mal´ych a velk´ych znak˚u, nicm´enˇe testov´an´ı na mal´em a stˇrednˇe velk´em korpusu dat uk´azalo, ˇze potlaˇcen´ım ve- likosti znak˚u syst´em neztr´ac´ı na spolehlivosti, viz Tabulka 5. Byla tak´e implementov´ana me- toda, kter´a transformuje ˇretˇezec vkl´adan´y do oprav tak, aby souhlasil s nejpravdˇepodobnˇejˇs´ı formou ˇretˇezce v p˚uvodn´ım dokumentu.

Tabulka 5: Porovn´an´ı syst´em˚u s p˚uvodn´ı a vynucenou velikost´ı p´ısmen; M = 100, N = 1000 P˚uvodn´ı velikost Vˇse mal´ymi znaky

Stran Chyb Opraveno Pˇresnost Opraveno Pˇresnost

70 1903 330 54,6 % 353 55,0 %

200 5940 882 58,0 % 957 59,0 %

Podobn´y probl´em pˇredstavovala interpunkˇcn´ı znam´enka. Ta se mohou v textu vyskytovat pˇrirozenˇe, nebo mohou vznikat chybn´ym rozpozn´an´ım znaku. V´ysledn´y algoritmus vyj´ım´a z extr´emn´ıch konc˚u testovan´eho ˇretˇezce interpunkˇcn´ı znam´enka, jenˇz se tam obvykle vysky- tuj´ı. Neobvykle um´ıstˇen´a znam´enka (napˇr. teˇcka uprostˇred ˇretˇezce) z˚ust´avaj´ı a jsou tedy pˇredmˇetem oprav. Po nalezen´ı opravy se takto vyjmut´a interpunkce vkl´ad´a zpˇet na pozoro- van´e m´ısto, ˇc´ımˇz je zachov´ana vˇetn´a integrita p˚uvodn´ıho textu.

D´ale bylo zjiˇstˇeno, ˇze syst´em je citliv´y na hodnoty N a M . ˇC´ım vˇetˇs´ı je hodnota N , t´ım v´ıce kandid´at˚u je zvoleno k porovn´an´ı s chybn´ym ˇretˇezcem. To zajiˇst’uje vyˇsˇs´ı pravdˇepodobnost, ˇze mezi kandid´aty k opravˇe bude i hledan´y spr´avn´y ˇretˇezec. Porovn´av´an´ı dvou ˇretˇezc˚u je vˇsak v´ypoˇcetnˇe velmi n´aroˇcn´a operace a tedy ˇc´ım vyˇsˇs´ı je hodnota N , t´ım d´ele trv´a vypoˇc´ıtat vˇsem kandid´at˚um z´akladn´ı sk´ore. Tong s Evansem brali v potaz pouze 10 nejpodobnˇejˇs´ıch kandid´at˚u, nicm´enˇe jejich slovn´ık byl pˇribliˇznˇe 6x menˇs´ı a operace z´ısk´an´ı podobn´ych ˇretˇezc˚u jim vracela v ˇr´adu stovek z´aznam˚u. V m´em pˇr´ıpadˇe vrac´ı porovn´an´ı se slovn´ıkem obvykle mezi 1 000 a 60 000 ˇretˇezci. V tom hraje, kromˇe samotn´e velikosti slovn´ıku, velkou roli ˇcesk´y jazyk,

(29)

kter´y k vˇetˇsinˇe z´akladn´ıch slov pˇrid´av´a r˚uzn´e tvary v z´avislosti na p´adu, ˇcasu, rodu, vzoru a ˇc´ıslu. Orientaˇcnˇe plat´ı, ˇze desetin´asobn´e N zp˚usob´ı desetin´asobn´y ˇcas potˇrebn´y k opravˇe korpusu. Pro fin´aln´ı syst´em byla urˇcena hodnota N = 1000.

K vlastnostem ˇcesk´eho jazyka se vztahuje i ˇc´ast d´elkov´eho porovn´an´ı ˇretˇezc˚u. Spousta ˇ

retˇezc˚u je OCR procesem rozpozn´ana tak, ˇze se stanou podˇretˇezcem jin´eho ˇretˇezce. Napˇr´ıklad ˇ

retˇezec

”roku“ byl OCR rozpozn´an jako

”reku“. Syst´em bez porovn´an´ı d´elky ˇretˇezc˚u vyhodno- til jako spr´avnou opravu ˇretˇezec

”rekordu“, patrnˇe d´ıky ˇcasto vidˇen´emu spoleˇcn´emu kontextu.

Po aplikaci vzorce pro sn´ıˇzen´ı sk´ore pˇri rozd´ıln´e d´elce byl tento probl´em zm´ırnˇen, nikoliv vˇsak eradikov´an.

C´ıslo M , tedy hodnota urˇˇ cuj´ıc´ı kolikr´at mus´ı b´yt sk´ore nejlepˇs´ıho kandid´ata vyˇsˇs´ı neˇz sk´ore druh´eho nejlepˇs´ıho kandid´ata, ovlivˇnuje poˇcet a kvalitu oprav. Tong s Evansem volili k opravˇe vˇzdy kandid´ata s nejlepˇs´ım sk´ore. To si mohli dovolit, nebot’ jejich syst´em opravoval i slovn´e chyby a tedy kaˇzd´a chyba, kterou jejich syst´em do textu zanesl, mohla b´yt v n´asleduj´ıc´ı iteraci opravena. Takovou moˇznost m˚uj syst´em nenab´ız´ı, mus´ı b´yt tedy zvolena dostateˇcnˇe pˇr´ısn´a podm´ınka pro pˇrijet´ı ˇretˇezce k opravˇe. ˇC´ım vyˇsˇs´ı je hodnota M , t´ım jistˇejˇs´ı oprava mus´ı b´yt, aby mohla b´yt pˇrijata. Samozˇrejmˇe vyˇsˇs´ı hodnota M m´a negativn´ı vliv na poˇcet vytvoˇren´ych oprav. Pˇri testov´an´ı bylo zjiˇstˇeno, ˇze extr´emn´ı hodnoty jsou neoptim´aln´ı. Pˇri M = 1 bylo opraveno nejv´ıce chyb, ale s velmi n´ızkou kvalitou. Obdobnˇe u M = 1 x 1012 a v´ıce bylo opraveno velmi m´alo ˇretˇezc˚u, zat´ımco kvalita oprav se jiˇz pˇr´ıliˇs nezvyˇsovala, viz Tabulka 6.

Dalˇs´ı zvyˇsov´an´ı hodnoty M jiˇz nezvyˇsuje kvalitu oprav, coˇz poukazuje na fakt, ˇze k dalˇs´ımu zv´yˇsen´ı kvantity a kvality oprav by bylo potˇreba zvyˇsovat hodnotu N . Z´akladn´ı hodnota byla zvolena jako M = 1 x 109.

Tabulka 6: Kvantita a kvalita oprav pˇri r˚uzn´ych hodnot´ach M M Poˇcet oprav Redukce chyb Minim´aln´ı

spolehlivost

Maxim´aln´ı spolehlivost

1 57773 31,380 % 45,6 % 60,6 %

1000 32029 17,397 % 61,6 % 75,6 %

1 x 106 21186 11,507 % 72,0 % 83,0 %

1 x 109 14954 8,122 % 75,6 % 83,0 %

1 x 1012 10858 5,898 % 77,0 % 85,0 %

Zaj´ımavou promˇennou je α, tedy umˇel´a pravdˇepodobnost, ˇze OCR rozpoznalo dan´y znak spr´avnˇe. Zat´ımco syst´em Tonga a Evanse byl na tuto hodnotu vysoce citliv´y, obvzl´aˇstˇe pˇri opravov´an´ı slovn´ych chyb, zde implementovan´y syst´em pˇri zmˇenˇe z´akladn´ıho α reaguje mi- nim´alnˇe. D˚uvod je pravdˇepodobnˇe ten, ˇze od hodnoty α se odvozuje distribuce pravˇepodobnos- ti pro liˇs´ıc´ı se znaky podle rovnice (1 − α)/H, kde H je poˇcet tisknuteln´ych znak˚u. Vˇsechny

(30)

3 POSTUP PR ´ACE

textov´e dokumenty jsou k´odov´any pomoc´ı znakov´e sady Windows-1250, kter´a obsahuje 256 znak˚u vˇcetnˇe kontroln´ıch a nevyuˇzit´ych. Pˇri vysok´ych poˇctech ˇretˇezc˚u zahrnut´ych ve sta- tistice znakov´ych z´amˇen se vˇsak st´av´a, ˇze nezn´am´a z´amˇena, pro kterou je z´ısk´ana defaultn´ı pravdˇepodobnost pomoc´ı v´yˇse zm´ınˇen´e rovnice, m´a daleko vyˇsˇs´ı pravdˇepodobnost, neˇz z´amˇena zn´am´a. To je nutno kompenzovat pomoc´ı zmˇeny distribuce pravdˇepodobnosti u nezn´am´ych z´amˇen, podobnˇe jako u nezn´am´ych n-gram˚u v jazykov´em modelu. Syst´em tedy na zaˇc´atku hlavn´ıho bloku pˇrepoˇc´ıt´av´a tuto umˇelou pravdˇepodobnost na z´akladˇe zn´am´ych statistik zna- kov´ych z´amˇen. Z´akladn´ı nastaven´ı je α = 0, 99.

Promˇenn´a K urˇcuje poˇcet iterac´ı nad seznamem chyb. Poˇcet opraven´ych chyb a kvalita oprav na testovan´em korpusu v z´avislosti na iteraci je v tabulce 7:

Tabulka 7: Redukce chyb v z´avislosti na poˇctu iterac´ı Chyb

Iterace Opraveno Zb´yv´a Redukce chyb

1. 35288 250357 12,354 %

2. 39491 246154 13,825 %

3. 40556 245089 14,198 %

4. 40718 244927 14,255 %

5. 40773 244872 14,274 %

Tento v´ysledek reflektuje poznatky Tonga a Evanse, tedy pˇr´ınosn´e je vyuˇz´ıvat dohromady tˇr´ı iterac´ı. Dalˇs´ı iterace nepˇrin´aˇsej´ı dostateˇcnˇe pozitivn´ı efekt. Defaultn´ı nastaven´ı je K = 3.

Vˇsechny tyto parametry lze pˇri startu n´astroje libovolnˇe nastavit.

3.3.3 V´ysledky

Tato ˇc´ast se zab´yv´a kvantitou, kvalitou a rychlost´ı proveden´ı oprav na datab´azi den´ıku Rud´e Pr´avo. Vˇsechny opravy byly uskuteˇcnˇeny se z´akladn´ım nastaven´ım syst´emu.

Poˇcet opraven´ych ˇretˇezc˚u vzhledem k poˇctu statisticky v´yznamn´ych chyb a celkov´emu korpusu je vidˇet v tabulce 8.

(31)

Tabulka 8: V´ysledky prvn´ıho syst´emu: Kvantita Roky Chyb celkem Vybran´ych

chyb

Opraven´ych chyb

Redukce chyb

Redukce chyb celkem

45-49 988195 184109 12229 6,642 % 1,238 %

50-54 1028666 212698 18924 8,897 % 1,840 %

55-59 1325160 285645 21560 7,548 % 1,627 %

60-64 1839303 537888 39587 7,360 % 2,152 %

65-69 1835774 503080 29043 5,773 % 1,582 %

70-74 1505466 388744 24712 6,357 % 1,641 %

75-79 1724281 448978 34225 7,623 % 1,985 %

80-83 1283881 293653 18694 6,366 % 1,456 %

Celkem 11530726 2854795 198974 6,970 % 1,726 %

Syst´em dosahuje 6,97% redukce pˇredloˇzen´ych chyb a 1,73% redukce chyb celkov´ych.

Pro ´uˇcel posouzen´ı kvality byla ruˇcnˇe evaluov´ana ˇc´ast automaticky vytvoˇren´ych oprav pro kaˇzd´y pˇetilet´y blok. V´ysledky zhodnocen´ı jsou k vidˇen´ı v tabulce 9.

Tabulka 9: V´ysledky prvn´ıho syst´emu: Kvalita Roky Opraven´ych

chyb

Poˇcet ANO

Poˇcet NEV´IM

Poˇcet NE

Minim´aln´ı spolehlivost oprav

Maxim´aln´ı spolehlivost oprav

45-49 12229 370 32 98 74,0 % 80,4 %

50-54 18924 370 48 82 74,0 % 83,6 %

55-59 21560 375 42 83 75,0 % 83,4 %

60-64 39587 415 35 50 83,0 % 90,0 %

65-69 29043 405 27 68 81,0 % 86,4 %

70-74 24712 353 47 100 70,6 % 80,0 %

75-79 34225 363 55 82 72,6 % 83,6 %

80-83 18694 328 52 120 65,6 % 76,0 %

Celkem 198974 2979 338 683 74,475 % 82,925 %

Pˇri urˇcov´an´ı spolehlivosti syst´emu hraje velkou roli schopnost ˇclovˇeka rozeznat spr´avnˇe a ˇspatnˇe vytvoˇren´e opravy. Opravy byly rozdˇeleny do tˇr´ı kategori´ı – spr´avn´e, ˇspatn´e a

”nev´ım“.

Posuzuj´ıc´ı ˇclovˇek oznaˇcil za spr´avn´e nebo ˇspatn´e pouze ty opravy, kter´ymi si byl absolutnˇe jist. Opravy, u kter´ych si jist nebyl, napˇr. jm´ena nebo slovn´ı spojen´ı, k jejichˇz posouzen´ı je potˇreba v´ıce kontextu, byly oznaˇceny jako

”nev´ım“. Pro ´uˇcely v´ypoˇctu spolehlivosti syst´emu byl zvolen striktn´ı pˇr´ıstup – vˇsechny opravy oznaˇcen´e jako

”nev´ım“ jsou povaˇzov´any za ˇspatnˇe vytvoˇren´e. T´ım vznik´a don´ı hranice spolehlivosti syst´emu. Pro ´uplnost je uvedena i horn´ı hranice spolehlivosti syst´emu, pˇri kter´e jsou vˇsechna

”nev´ım“ br´ana jako spr´avnˇe vytvoˇren´e

(32)

3 POSTUP PR ´ACE

opravy. Re´aln´a spolehlivost syst´emu je patrnˇe nˇekde mezi minim´aln´ı a maxim´aln´ı spolehli- vost´ı, pro ´uˇcely posuzov´an´ı kvality je vˇzdy br´ana v potaz hodnota minim´aln´ı spolehlivosti syst´emu.

Jak je vidˇet, syst´em dosahuje pr˚umˇernˇe 74,475% spolehlivosti a maxim´alnˇe aˇz 83% spoleh- livosti pˇri vytv´aˇren´ı oprav.

Posledn´ım testovan´ym faktorem je rychlost prov´adˇen´ı automatick´ych oprav. Ta se pˇri ite- raci nad korpusem chyb mˇen´ı, nebot’ seznam chyb je seˇrazen sestupnˇe dle poˇctu v´yskyt˚u.

Chybnˇe rozpoznan´e ˇretˇezce na vrcholu seznamu maj´ı obvykle velk´e mnoˇzstv´ı r˚uzn´eho kon- textu a tedy velk´e mnoˇzstv´ı unik´atn´ıch n-gram˚u. U prvn´ıch ˇretˇezc˚u je ˇcastˇeji prov´adˇena ˇcasovˇe m´enˇe n´aroˇcn´a operace porovn´av´an´ı kontextu. Ke konci seznamu se vˇsak st´ale ˇcastˇeji prov´ad´ı ˇcasovˇe n´aroˇcn´a operace v´ypoˇctu z´akladn´ıho sk´ore a rychlost prov´adˇen´ı oprav tedy ke konci korpusu chyb kles´a. Pr˚umˇern´a doba bˇehu syst´emu a rychlost opravov´an´ı vzhledem k poˇctu chyb jednotliv´ych blok˚u je k vidˇen´ı v tabulce 10.

Tabulka 10: V´ysledky prvn´ıho syst´emu: Doba bˇehu (v minut´ach) Doba bˇehu

Roky Vybran´ych

chyb 1. iterace 2. iterace 3. iterace Celkem Chyb za sekundu 45-49 184109 15,5739 15,5943 17,0125 48,1807 63,68698116 50-54 212698 23,0564 24,4328 24,5708 72,0600 49,19465260 55-59 285645 24,4296 26,0351 26,2210 76,6857 62,08132677 60-64 537888 40,1162 42,6092 42,7283 125,4537 71,45903230 65-69 503080 36,7256 38,9659 39,0656 114,7571 73,06446979 70-74 388744 27,7924 29,5759 29,6542 87,0225 74,45277562 75-79 448978 36,6330 38,6613 38,2263 113,5206 65,91725790 80-83 293653 24,7218 26,3832 26,3640 77,4690 63,17645338 Celkem 2854795 229,0489 242,2577 243,8427 715,1493 66,53144549 Celkem

v ho-

din´ach

3,8175 4,0376 4,0640 11,9192

Syst´em dok´azal otestovat vˇsech 2 854 795 chybn´ych ˇretˇezc˚u za 11,92 hodin. Pr˚umˇern´a rychlost opravov´an´ı byla 66,53 chyb za sekundu.

(33)

3.4 V´yvoj n´astroj˚u pro automatick´e opravy – Druh´y syst´em

Ke zlepˇsen´ı kvality oprav prvn´ıho algoritmu by bylo zapotˇreb´ı porovn´avat v´ıce kandid´at˚u, coˇz by zp˚usobilo vysok´e ˇcasov´e n´aroky. K dosaˇzen´ı lepˇs´ıho pomˇeru kvantita:kvalita:rychlost byla navrˇzena a implementov´ana vlastn´ı varianta algoritmu pro automatick´e opravy.

3.4.1 Architektura

Syst´em je imlementov´an dle obr´azku 5:

Obr´azek 5: V´yvojov´y diagram: Druh´y algoritmus pro automatick´e opravy

Oproti prvn´ımu algoritmu jsou implementov´any tˇri hlavn´ı zmˇeny: jin´y syst´em sk´orov´an´ı, vynech´an´ı statistik znakov´ych z´amˇen a testov´an´ı vˇsech ˇretˇezc˚u z´ıskan´ych ze slovn´ıku.

(34)

3 POSTUP PR ´ACE

Prvn´ı algoritmus vyuˇz´ıv´a multiplikativn´ıho sk´orovac´ıho syst´emu pˇri v´ypoˇctu pravdˇepodob- nosti. V z´asadˇe tedy maj´ı na zaˇc´atku vˇsichni kandid´ati stejn´e sk´ore, kter´e je v kaˇzd´em kroku sniˇzov´ano. Kandid´at, kter´emu zbude nejvyˇsˇs´ı sk´ore, m´a nejvyˇsˇs´ı pravdˇepodobnost b´yt souˇc´ast´ı opravy. Tento algoritmus vyuˇz´ıv´a opaˇcn´eho, aditivn´ıho pˇr´ıstupu.

Pro kaˇzd´y unik´atn´ı chybnˇe rozpoznan´y ˇretˇezec je z´ısk´an seznam podobn´ych ˇretˇezc˚u ze slovn´ıku pomoc´ı vektorov´eho prostoru. Za kandid´aty k opravˇe jsou povaˇzov´any vˇsechny takto z´ıskan´e ˇretˇezce. Z´akladn´ı sk´ore je jim vypoˇc´ıt´ano jako souˇcet poˇctu spoleˇcn´ych znakov´ych n-gram˚u, upraven´y na z´akladˇe d´elkov´e podobnosti – ˇc´ım v´ıce jsou si ˇretˇezce d´elkovˇe podobn´e, t´ım vˇetˇs´ı sk´ore jim je pˇriˇrazeno. List kandid´at˚u je n´aslednˇe seˇrazen sestupnˇe dle sk´ore. Tento list je pro kaˇzd´y unik´atn´ı chybn´y ˇretˇezec vygenerov´an pouze jednou a vytvoˇren´a tabulka z´akladn´ıch ohodnocen´ı se jiˇz nemˇen´ı.

D´ale syst´em postupuje podobnˇe jako u prvn´ıho algoritmu pˇri porovn´av´an´ı kontextu s mal´y- mi zmˇenami ´upravy sk´ore, popsan´ymi v kapitole 2.3. Pro kaˇzd´y unik´atn´ı chybn´y n-gram (tj.

chybn´y ˇretˇezec a jeho bezprostˇredn´ı kontext) je vypoˇc´ıt´ano sk´ore vˇsech relevantn´ıch kan- did´at˚u. Sk´ore kandid´at˚u, jenˇz v tomto kontextu nebyli pozorov´ani, se nemˇen´ı.

V´ybˇer kandid´ata k opravˇe je vyˇreˇsen stejnˇe jako u prvn´ıho syst´emu, tedy list kandid´at˚u je seˇrazen sestupnˇe dle sk´ore a kandid´at s nejvyˇsˇs´ım sk´ore je porovn´an s druh´ym v ˇradˇe. Pokud je sk´ore prvn´ıho kandid´ata M -kr´at vyˇsˇs´ı neˇz sk´ore druh´eho kandid´ata, je zvolen za spr´avnou opravu a je pro nˇej vygenerov´an z´aznam do seznamu oprav.

3.4.2 Testov´an´ı

Pˇri testov´an´ı bylo zjiˇstˇeno, ˇze tento syst´em dok´aˇze spolehlivˇe opravovat chybnˇe rozpoznan´e ˇ

retˇezce jiˇz od d´elky dvou znak˚u. To syst´emu umoˇzˇnuje pokusit se opravit zpravidla dvˇe tˇretiny vˇsech chyb vyskytuj´ıc´ıch se v re´aln´em datov´em korpusu. Takt´eˇz je syst´em vˇetˇsinou schopen oprav vlastn´ıch jmen a nen´ı u nˇej tedy nutno takov´e opravy oddˇelovat.

Z d˚uvod˚u popsan´ych v kapitole 3.3.2 je i zde potlaˇcena informace o velikosti znak˚u. Stejn´ym pˇr´ıstupem je ˇreˇsen i probl´em interpunkce.

V´ypoˇctem z´akladn´ıho sk´ore pomoc´ı vektorov´eho prostoru z´ıskal syst´em moˇznost vypuˇstˇen´ı v´ypoˇcetnˇe n´aroˇcn´e operace porovn´av´an´ı ˇretˇezc˚u. T´ım tak´e syst´em z´ıskal moˇznost ohodnotit vˇsechny podobn´e ˇretˇezce z´ıskan´e ze slovn´ıku, coˇz maximalizuje pravdˇepodobnost nalezen´ı spr´avn´e opravy. Toto rozhodnut´ı m´a negativn´ı dopad na rychlost oprav, nebot’ pro kaˇzd´y unik´atn´ı ˇretˇezec je nutno vypoˇc´ıtat sk´ore ˇr´adovˇe des´ıtek tis´ıc z´aznam˚u. D´ıky architektuˇre syst´emu je vˇsak tento fakt kompenzov´an ˇradou efektivn´ıch zrychlen´ı. Syst´em se napˇr´ıklad nemus´ı uˇcit vlastnosti OCR prostˇred´ı kv˚uli statistice znakov´ych z´amˇen, nen´ı tedy ˇz´adn´y d˚uvod

(35)

iterovat nad korpusem chyb v´ıce neˇz jednou. Ke zv´yˇsen´ı rychlosti syst´emu tak´e pˇrisp´ıv´a zp˚usob ˇ

reˇsen´ı ´upravy sk´ore v z´avislosti na kontextu. Upravuje se pouze sk´ore tˇech kandid´at˚u, jenˇz byli v dan´em kontextu dˇr´ıve pozorov´ani. Tˇech jsou ˇr´adovˇe des´ıtky aˇz stovky, coˇz umoˇzˇnuje zapisovat upraven´e (zv´yˇsen´e) sk´ore do nez´avisl´e datov´e struktury. To je ve v´ysledku rychlejˇs´ı neˇz kop´ırov´an´ı cel´eho seznamu kandid´at˚u pro kaˇzd´y unik´atn´ı n-gram.

Hodnota M , tedy hodnota urˇcuj´ıc´ı kolikr´at mus´ı b´yt sk´ore nejlepˇs´ıho kandid´ata vyˇsˇs´ı neˇz sk´ore druh´eho nejlepˇs´ıho kandid´ata, je pro tento syst´em stejnˇe d˚uleˇzit´a jako pro syst´em prvn´ı.

Pˇr´ıliˇs n´ızk´e M (M = 1) zp˚usobuje, ˇze je opraveno v´ıce chyb s n´ızkou kvalitou. Pˇr´ıliˇs vysok´e M (M = 10 a v´ıce) zp˚usobuje opak, tedy mal´e mnoˇzstv´ı opraven´ych ˇretˇezc˚u pˇri minim´aln´ım zv´yˇsen´ı kvality. Kvalitativn´ı

”strop“ je vˇsak u tohoto syst´emu v´yˇse neˇz u syst´emu prvn´ıho, jak ukazuj´ı v´ysledky v kapitole 3.4.3. Defaultnˇe je hodnota M nastavena jako M = 2. Tuto hodnotu lze samozˇrejmˇe pˇri startu n´astroje libovolnˇe nastavit.

3.4.3 V´ysledky

Stejnˇe jako u prvn´ıho algoritmu se tato ˇc´ast zab´yv´a kvantitou, kvalitou a rychlost´ı proveden´ı oprav na datab´azi den´ıku Rud´e Pr´avo. Sestaven´ı v´ysledk˚u prob´ıhalo stejn´ym zp˚usobem jako u prvn´ıho syst´emu v kapitole 3.3.3.

Poˇcet opraven´ych ˇretˇezc˚u vzhledem k poˇctu statisticky v´yznamn´ych chyb a celkov´emu korpusu je vidˇet v tabulce 11.

Tabulka 11: V´ysledky druh´eho syst´emu: Kvantita Roky Chyb celkem Vybran´ych

chyb

Opraven´ych chyb

Redukce chyb

Redukce chyb celkem

45-49 988195 184109 11401 6,193 % 1,154 %

50-54 1028666 212698 12237 5,753 % 1,190 %

55-59 1325160 285645 16710 5,850 % 1,261 %

60-64 1839303 537888 34044 6,329 % 1,851 %

65-69 1835774 503080 25450 5,059 % 1,386 %

70-74 1505466 388744 21199 5,453 % 1,408 %

75-79 1724281 448978 26127 5,819 % 1,515 %

80-83 1283881 293653 15507 5,281 % 1,208 %

Celkem 11530726 2854795 162675 5,698 % 1,411 %

Syst´em dosahuje 5,7% redukce pˇredloˇzen´ych chyb a 1,4% redukce chyb celkov´ych.

V´ysledky zhodnocen´ı kvality jsou k vidˇen´ı v tabulce 12.

(36)

3 POSTUP PR ´ACE

Tabulka 12: V´ysledky druh´eho syst´emu: Kvalita Roky Opraven´ych

chyb

Poˇcet ANO

Poˇcet NEV´IM

Poˇcet NE

Minim´aln´ı spolehlivost oprav

Maxim´aln´ı spolehlivost oprav

45-49 11401 433 40 27 86,6 % 94,6 %

50-54 12237 426 42 32 85,2 % 93,6 %

55-59 16710 435 45 20 87,0 % 96,0 %

60-64 34044 460 25 15 92,0 % 97,0 %

65-69 25450 436 32 32 87,2 % 93,6 %

70-74 21199 435 25 40 87,0 % 92,0 %

75-79 26127 430 35 35 86,0 % 93,0 %

80-83 15507 441 37 22 88,2 % 95,6 %

Celkem 162675 3496 281 223 87,4 % 94,425 %

Jak je vidˇet, syst´em dosahuje pr˚umˇernˇe 87,4% spolehlivosti a maxim´alnˇe aˇz 92% spolehli- vosti pˇri vytv´aˇren´ı oprav.

Pr˚umˇern´a rychlost opravov´an´ı vzhledem k poˇctu chyb jednotliv´ych blok˚u je k vidˇen´ı v ta- bulce 13.

Tabulka 13: V´ysledky druh´eho syst´emu: Doba bˇehu (v hodin´ach) Roky Vybran´ych

chyb Doba bˇehu Chyb za sekundu

45-49 184109 2,3528 21,74

50-54 212698 3,2738 18,05

55-59 285645 3,8943 20,37

60-64 537888 7,0738 21,12

65-69 503080 7,0861 19,72

70-74 388744 5,1768 20,86

75-79 448978 6,6548 18,74

80-83 293653 3,7348 21,84

Celkem 2854795 39,2472 20,21

Syst´em dok´azal otestovat vˇsech 2 854 795 chybn´ych ˇretˇezc˚u za 39,25 hodin. Pr˚umˇern´a rychlost opravov´an´ı byla 20,2 chyb za sekundu.

Srovn´an´ım v´ysledk˚u obou syst´em˚u se zab´yv´a kapitola 4.

(37)

3.5 Distribuce oprav do textu

Posledn´ı zb´yvaj´ıc´ı ˇc´ast´ı je distribuce vytvoˇren´ych oprav zpˇet do textov´ych soubor˚u. K to- muto ´uˇcelu byl implementov´an algoritmus dle Obr´azek 6:

Obr´azek 6: V´yvojov´y diagram: Distribuce oprav do textu

Vnitˇrn´ı implementace je velice podobn´a n´astroji pro anal´yzu. Kaˇzd´y textov´y soubor ve zvolen´em ´useku datab´aze je pˇreˇcten a jeho obsah rozdˇelen na sekvenci ˇretˇezc˚u podle mezer.

Tato sekvence je nejprve zkop´ırov´ana do nov´e promˇenn´e. Algoritmus pak proch´az´ı p˚uvodn´ı sekvenci po n-gramech se zamˇeˇren´ım na prostˇredn´ı ˇretˇezec. Pokud se testovan´y n-gram vy- skytuje v datab´azi oprav, prostˇredn´ı ˇretˇezec na stejn´e pozici v nov´e sekvenci je nahrazen ˇ

retˇezcem urˇcen´ym danou konkr´etn´ı opravou.

Tato metoda pˇrepisov´an´ı textu zajiˇst’uje, ˇze jedna proveden´a oprava neznemoˇzn´ı jin´e opravˇe jej´ı vyuˇzit´ı kv˚uli pˇreps´an´ı kontextu.

References

Related documents

Bach - Jauchzet Gott in allen Landen non-commercial copying welcome. Johann Sebastian Bach: Jauchzet Gott

Po vytvoˇ ren´ı jednoduch´ eho regresn´ıho modelu metodou nejmenˇ s´ıch ˇ ctverc˚ u zaˇ c´ın´ a f´ aze statistick´ e verifikace a dalˇ s´ıho testov´ an´ı hypot´ ez

D´ ale pr´ ace zahrnuje moˇ znosti dekompo- zice a rekonstrukce pomoc´ı wavelet transformace s pouˇ zit´ım r˚ uzn´ ych wavelet funkc´ı, modifikace d´ılˇ c´ıch koeficient˚

Nev´ yhodou je ovˇsem to, ˇ ze jsme tak pˇriˇsli o krajn´ı hodnoty pole, kter´ e jsou pro vykon´ av´ an´ı algoritmu d˚ uleˇ zit´ e a umoˇ zˇ nuj´ı vˇ casnou reakci na n´

Pˇredloˇ zen´ a disertaˇ cn´ı pr´ ace se zab´ yv´ a adaptac´ı existuj´ıc´ıho syst´ emu automatick´ eho rozpozn´ av´ an´ı ˇreˇ ci (ASR) pro dalˇs´ı jazyky.. Zamˇ eˇruje

Otázky vedoucí práce: Výhody agilních přístupů a byly při návrhu práce nějaké zásadní problémy?.

Studentovi bylo doporučeno práci přepracovat, případně kompletně změnit téma.. Clenov´ ˇ e zkuˇ sebn´

Dokázal byste zhodnotit, které systémy na odhalování pojistných podvodů využívá TOP 5 pojišťoven (myšleno podle předepsaného hrubého pojistného) na Českém pojistném