VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
DIPLOMOVÁ PRÁCE MASTER'S THESIS
AUTOR PRÁCE AUTHOR
BRNO 2011
Bc. STANISLAV BUREŠ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací
Diplomová práce magisterský navazující studijní obor Telekomunikační a informační technika Student: Ročník:
Bc. Stanislav Bureš 2
ID: 83889 Akademický rok: 2010/2011
NÁZEV TÉMATU:
Kontrola pravopisu v českých textech POKYNY PRO VYPRACOVÁNÍ: Prostudujte a stručně popište problematiku kontroly pravopisu se zaměřením na česky psané texty. Na tomto základě navrhněte algoritmus, který umožní v psaných textech identifikovat a opravit pravopisné a jiné chyby (překlepy, chybějící diakritika atd.). Algoritmus implementujte v některém z programovacích jazyků (Java, C++) a ověřte jeho funkčnost na reálných datech. DOPORUČENÁ LITERATURA: [1] Mitton, R.: Ordering the suggestions of a spellchecker without using context. Natural Language Engineering, [online], Dostupné z www: https://eprints.bbk.ac.uk/782/1/mitton_pre-pub.pdf [2] FISCHER, H. Soundex: Algorithm for phonetic search, Alternative to Soundex. Sound-ex. [online]. Dostupné z www: http://www.sound-ex.com/alternative_zu_soundex.htm. Termín zadání:
7.2.2011
Vedoucí práce:
Ing. Lucie Fojtová
Termín odevzdání:
26.5.2011
prof. Ing. Kamil Vrba, CSc. Předseda oborové rady
UPOZORNĚNÍ: Autor diplomové práce nesmí při vytváření diplomové práce porušit autorská práva třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následků porušení ustanovení § 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č.40/2009 Sb.
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
ABSTRAKT D
D D P v
textech.
K Soundex, Metaphone, Daitch Mokotoff, Levenshtein, Jazzy, Aspell, trigram
ABSTRACT The M thesis deals with spell checking in the czech texts. It also contains an overview of the most used phonetic algorithms, including their properties and it deals with focus on metric methods, which are used to compare two words. The second part of this thesis deals with implementation of selected algorithms to the spell checker software and demonstration its spell - checking function in czech texts. The last part of this thesis deals about building context sensitive algorithm, which is performs text correction.
Keywords Soundex, Metaphone, Daitch Mokotoff, Levenshtein, Jazzy, Aspell, trigram
2
D
BU‘EŠ S K
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
B
V 46 V
F
3
B
F I
L
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
P‘OHLÁŠENÍ P
K
vypracoval v seznamu literatury na konci
J S 140/1961 Sb.
VB Bc. S
B
4
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
PODĚKOVÁNÍ D
L
F
5
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
Obsah Ú 1
2
........................................................................................................................................................ 8 P 1.1
Kl
................................................................................................. 9
1.2
N
.................................................................................................................. 10
Algoritmy ....................................................................................................................................... 12 2.1
F
Soundex algoritmus ....................................................................................................... 12
2.1.2
Daitch Mokotoff algoritmus ....................................................................................... 13
2.1.3
Metaphone a Double Metaphone ................................................................................. 15
2.1.4
D
A
............................................................................................... 17 D
............................................................................................. 17
2.2.2
L
........................................................................................... 18
2.2.3
Damerau L
2.2.4
Kontrola pravopisu ........................................................................................................ 20
P
.......................................................................... 20
.............................................................................................................. 20
API pro kontrolu pravopisu ........................................................................................................... 22 3.1
Aspell ..................................................................................................................................... 22
3.2
Jazzy ....................................................................................................................................... 22
3.2.1
5
............................................................................................... 17
2.2.1
2.3
4
............................................................................................................... 12
2.1.1
2.2
3
............................................................................................................................. 9
Funkce ........................................................................................................................... 22
T
....................................................................................................... 24
4.1
Popis ...................................................................................................................................... 24
4.2
Princip funkce ........................................................................................................................ 25
4.3
V
.................................................................................................................................. 26
4.4
F
.................................................................................................. 27
Aplikace pro opravu pravopisu ...................................................................................................... 28 5.1
Algoritmus ............................................................................................................................. 29
5.1.1
V
................................................ 32
5.1.2
O
.............................................................................................................. 33
5.2
P
..................................................................................................................... 34
5.2.1
Rozbor............................................................................................................................ 34
5.2.2
)
5.3
V
.............................................................................................................................. 35 ..................................................................................................................... 35 6
D
6
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH 5.3.1
T
................................................................................................... 35
5.3.2
O
.................................................................................................................. 37
5.3.3
S
............................................................................................................ 39
)
.............................................................................................................................................. 40
Literatura ............................................................................................................................................... 41 S
..................................................................................................................... 42
P
.................................................................................................................................................... 43
7
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
Úvod V
formou (e-
K k
P A y se T IM
Obsahem k
Jde o nezbyt
T jazyce JAVA. P
, jejich
D
algo .J T
u
J
8
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
1 Pravopisné chyby P korespondenci v E
se dnes
J
ve Internetu a dokonce i v Kapitola 1.1
. chyb. Kapitola 1.2
1.1 Klasifikace pravopisných chyb P
T
[6]:
1. p 2. 3. 4. 5. 6. ve slovosledu 7. v 8. 9.
ad 1) P
ad2) L
s
O
chybou v interpunkci
.
chyby
ad3) H
, vivinul i, i led/let p [,]
je to velmi hebce kritikovat.
M
chyby me ponm [j]
9
[n]
,
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
ad4) M
chyby S
ve flexi v
[m] drink.
-
ej
ad5) S
M To byl ale Jdu ven s
se (si)
[se]
.
. . M
[ ] je venku hezky. Jsem jdu se psem ven.
ad6) Ve slovosledu S
. S
N
taky sklenice.)
ad7) V z Rakouska. V Pracuji v . (Pracuji doma) . Na stole jsou propiska
Ad8) M
Check this
.
Ad9) ) D
.
1.2 Nejbě nější chyby C N ICQ S
F
J
T LOL, ROFL, OMG 10
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH V
chybami jako je
V D D ma
P i/y a s/z.
,
) J
slovosledu, v
d
11
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
2 Algoritmy 2.1 Fonetické algoritmy F
V jazyk, a proto
2.1.1
vykazovat
Soundex algoritmus J C
y homofony byly minim
y [5]. Sound
ouze
slova podle .Č lgoritmu je, aby y y navzdory S
2.1.1.1 Historie Soun
‘
C ‘ J
Machinery N
M
K O S
A
N
roce 1930 D S stal v 60. letech Journal of the Association for Computing publikaci The Art of Computer Programming [7] Donalda Knuthse.
NA‘A N
A
‘
A
S
2.1.1.2 Pravidla kódování Sound
P
z jednoho
K c 1. P 2. ) 3. S
. h a w. [10]:
Jako 1 pro b, f, p, v Jako 2 pro c, g, j, k, q, s, x, z Jako 3 pro d, t Jako 4 pro l Jako 5 pro m, n Jako 6 pro r
12
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH D
P
4. K
P
P
M
Mahagon
Postup: Mahagon Mhgn Mgn (M
g
n
2.1.1.3 Soundex a kontrola pravopisu P
S (viz kap. 2.1.1.4). T T Pro kontrolu pravopisu
pro opravu
Soundex S
ho slova T
2.1.1.4 Problém s homofony S P Thompson Thomson T (T512 pro Thompson a T525 pro slovo Thomson). J K
(K600) a Carr (C600). A
Sou pro tento ja T kapitole 2.3.
Metaphone
2.1.2
S
Daitch Mokotoff algoritmus A
J
S J
Jewish soundex
Eastern Europe Soundex
soundex) s
13
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
2.1.2.1 Historie Daitch M G
D M algoritmus, vznikl v roce 1985 [2]. Byl Randym Daitchem. A letech 1921 1948 v P M V seznamu se vyskytovaly i S k .
M
28, z A
S u N
vaw
P Avotaynu, T
A
Moskowitz a Moskovitz.
e Proposal for a Jewish Soundex Code. ‘ D S
Č
A v The Jewish Soundex: A Revised Format. T Mokotoff Soundex System
D D muzeu holocaustu ve
D M Soundex se stal standardem HIAS (Hebrew Immigrant Aid Society) Washingtonu, DC a Ellis Island
2.1.2.2 Pravidla kódování H
A
sebou D M Soundex Syste
S
I P D K
K
D MS 1. S 2. P
S
[4]: pravidel.
A E, I, O, U, Y a J se P
V
H V
3. P P Chernowi-tz (496740). 4. P eno. V
Chernowitz
ak, aby na nich Chernowi-t-z (496734
MN
NM Kleinman
586660 a nikoliv jako 586600.
14
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH 5. P N 6. P v
tak Nowytarg.
Nowy Targ
C J
a jako
CH CK ‘) A tak jim
7. Pok du. P D H Soundexem a jeho Soundexu je uveden v tabulce 2.1 [2]. A Soundex
P
A
k
D M Soundex
Peters
P362
739400, 734000
Peterson
P362
739460, 734600
Moskowitz
M232
645740
Moskovitz
M213
645740
Auerbach
A612
097500, 097400
Uhrbach
U612
097500, 097400
Jackson
J250
154600, 454600, 145460, 445460
JacksonJackson
J252
154664, 454664, 145466, 445466, 154646, 454646, 145464, 445464
Tab. 2.1: P
A
S
2.1.2.3 Kontrola pravopisu A
D MS
S S
v kombinaci s kontrolora
2.1.3
A
opravy k iz kap. 2.2) je l
je Soundex.
Metaphone a Double Metaphone J
O S
D
M
M
T
C S 15
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
2.1.3.1 Historie Metaphone algoritmus byl vyvinut Lawrencem P S D
roce 1990 [5] jako
M
M
Velkou
2.1.3.2 Vlastnosti S
Metaph
Metaphone k 'X' jazyce. K
v
D
M
0, B, F, H, J, K, L, M, N, P, R, S, T, W, X, Y, kde znak "sh" nebo "ch", [5]:
S P KN GN PN AE W‘ P MB B C - > X v CIA a CH; C - > S v CI, CE a CY; jinak C - > K. D - > J v DGE, DGY a DGI; jinak D - > T. S G GH E Y GG G - > K. S H S K po C. P - > F v PH. Q - > K. S - > X v SH, SIO a SIA. T - > X v TIA, TIO; T - > 0 v TH T TCH. V - > F. V WH H P X ak X - > S, jinak X - > KS. S Y Z - > S. S V
P MONICA - > MONIKA - > MNK MONIQUE - > MONIKUE - > MNK
16
C
GN, GND; G - J
W
I
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
2.1.3.3 Kontrola pravopisu A textech. B
Další fonetické algoritmy
2.1.4
NYSIIS New York State Identification and Intelligence System algoritmus S A J
jejich
Guth, ISG a Levenshtein. J P E
LIG algoritmus J
LIG
LIG2 a LIG3. ISG algoritmus Index of Similarity Group P
G
2.2 Algoritmy podobnosti řetězců Tyto algoritmy p
D M L
kombinaci s
Dynamické programování
2.2.1 D
[3] Ř
pod
Je
J
ma body v tabulce, nebo v Ú
kde k bod A Jeden z
B kapitole 2.2.2
17
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
2.2.2
Levenshteinova vzdálenost
J [7] J B P
aby se z vznikne slovo krysa V P
T
A, P
dy rovna 3.
- K sa -> Krysa
-> K
T >K V >S Á >Y
1. krok z 2. krok 3. krok
L
Substituce V S
K
C C
C .
N
L T
m+1xn+1
m a n jsou
N , resp. H
. ho prvku v H
Hodnota v X
Z V operace, tedy: min ( X + cena substituce; Y Z
H Y
Tab. 2.2 V
J
matici
substituce. U operace doprava. K
operace
K
J pohyb
tabulka 2.1, tak k
T
na PC
s
zn. vybrat
18
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
K
(viz
V
2.1: P
metody
2.1)
[8]
if s[i] = int LevenshteinDistance(char s[1..m], char t[1..n]) { // d je matice o m+1 ádcích a n+1 sloupcích declare int d[0..m, 0..n] for i from 0 d[i, 0] := for j from 0 d[0, j] :=
to m i // operace smazání to n j // operace vložení
for j from 1 to n { for i from 1 to m { t[j] then d[i, j] := d[i-1, j-1] else d[i, j] := minimum ( d[i-1, j] + 1, // smazání d[i, j-1] + 1, // vložení d[i-1, j-1] + 1 // substituce ) } } return d[m,n] }
V
s d[m + 1, n + 1] .T 2.1.
d, krysa
T R Á V A
0 1 2 3 4 5
K 1 1 2 3 4 5
R 2 2 1 2 3 4
ms
Y 3 3 2 2 3 4
n V s Levenshteinovou = ;a
t
S 4 4 3 3 3 4
A 5 5 4 4 4 3
Obr. 2.1 M
) Š
zde
d[m + 1, n + 1] hodnota 3. T V
19
s proto
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH Damerau Levenshteinova vzdálenost
2.2.3
L
Damerau- Levenshtein H
L
P L
T porovn
P
2.2.4
enosti
DNA
Kontrola pravopisu J
kontrole
P algoritmu.
2.3 Porovnání algoritmů N
pro detekci chyb v textech.
T
[9] C
S
[9].
Obr. 2.2: Po
20
.
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
Z a Phonex. Algoritmy NYIIS a Phonex jsou specializovan , vzhledem k U J (viz podkapitola 2.1.4)
21
jmen jsou NYIIS, LIG2 LIG
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
3 API pro kontrolu pravopisu API
V
) pro kontrolu
J G
Y
N API
N N je pro jazyk Java.
C,
z
API
A
J
API P
3.1 Aspell J
API (http://aspell.net/) pro kontrolu pravopisu s . Podporuje mnoho K C J Ispell, Damerau Levenshtein V (Metaphone) (Ispell) T kontrole pravopisu.
L
3.2 Jazzy API Jazzy (http://sourceforge.net/projects/jazzy/) je J S Aspell, J Levenshteinovy i. T slov a C D API J
3.2.1
API A
a je
M
je
Funkce A
J
na Aspell algoritmu. Pokud se
v
je jsou provedeny
k 1. N
H L
stanovenou hodnotu. 2. N oj
H .Z T
3. N 22
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH 4. S D
API J
v P se fonetick
23
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
4 Testovací u ivatelské rozhraní P
T
J
v
API
Java.
4.1 Popis P je zobrazeno na obr. 4.1.
Obr. 4
‘
U
O 1. P 2. Pole, kde 3. P 24
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
D 4. T
)
5. T 6. T
N K
T
4.2 Princip funkce F
4
N
Obr. 4.2: Funkce programu
1. T
)
2. S 3. P k
N
25
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
4.3 Výstupy Pro kontrolu pravopisu byl
t
[1]
M V
:
J N P S
T
N
C
T
4
N
Vsecko ney vdle siuetu
postavi
siluetu
postavil
Tab. 4.1 C
J
Tab. 4
chyby v
)
P J
je kapitola 3.2.1). S
se ne
T
U slov ney a vdle N
26
jako
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
O
[1]:
M V
J N P S
4.4 Funkce automatické opravy T
S API J
F pracovat
T Jednou z . Tento algoritmus
kapitole 5. V
API Jazzy.
27
algoritmus
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
5 Aplikace pro opravu pravopisu Java a do opravy T
Aplikace textu N J J platformami (Windows, Linux, Mac OS, Sola D
tomto jazyce mezi API J
tomto jazyce
V text, aby se tak usnadnila N
e
aplikace yjma
P T
kapitole 5.1. T
a alternativ
HW PC
Vzhledem k n P
o v kapitole 5.2. D
V kapitole 5
28
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
5.1 Algoritmus H
algoritmu bylo, aby byl schopen rozpoznat chybu v textu nejen na
J
P
D
gramy, kde n 3
N
T A
. Je
:
1. ) 2. Kontrola pravopisu 3. Oprava chyb T 5.1.
P íprava textu a vystup
Obr. 5
Kontrola pravopisu
Oprava chyb
Z
S
V tomto
K blokem.
T
Vstupni dokument
Rozdeleni textu na vety
Kompletace vystupu
Odebrani interpunkce
Veta ke kontrole
Opravena veta
Kontrola pravopisu
Vystup
Obr. 5
P
29
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
V
em V
tohoto bloku
text. Princip funkce je
5.2. Jak vzhledem k D
T
obr. 5
K
T
J P
V
O
.T
seznamu nalezeny, pova uje je ve P
5.3. Vstupni veta
Aktualizace vstupni vety ANO
Deleni na trigramy
Další trigram?
Je v seznamu?
ANO
Nacteni n-teho trigramu
NE
Oprava chyb
Porovnani se seznamem trigramu
N-ty trigam
NE Opravena veta
P
Obr. 5
D
je bl )
trigram. P
A
kontextu smyslu. C N N
kde p
n ,
,
n=p 2 ,
). Poku
P P
O
algoritmu v se
T vy
ho o trigram je x 10 alternativ. Č
10 J
T Pokud deset alternativ, tak se pou tak 3 seznamy po deseti slovech. P k se slov v V T 30
Vzniknou . Z takto a
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH Pokud ano, je , .K
v
z
, kter koresponduje s trigramu v
seznamu. P M
V
hodnotu NULL
Princip 5.4.
Nacteni trigramu
Trigram
Rozdeleni trigramu na slova
Slovo
Alternativy slov
Vytvoreni seznamu navrhovanych trigramu
Seznam alternativ
Seznam navrhovanych trigramu
Porovnani jednotlivych trigramu se seznanem
Vyber nejlepsi alternativy
Prdani do seznamu korektnich trigramu
Seznam korektnich trigramu
ANO
Je v seznamu?
NE Smazani trigramu Navrhovany trigram
Obr. 5
P
31
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH S
A J
itola 3
kapitole 5.3, tak K
A
API J
T
T
uv deseti alternativ
Č
T
M
z
.
5.1.1
Vytvoření hlavního seznamu trigramů a jeho struktura H T
z
ho
je aplikac
n J
P
soubor
P
kontrolovat text. Texty ICQ Z mal
D
.U
T
konec souboru. Struktura aplikace podle abecedy,
V
, kdy trigramy nej
V V . . .
P . . . ke
. . .
2
. . . 5 3
. . .
. . .
32
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH P
K po
V
V
aplikaci, je
Aplikac
pracuje se seznamem www.novinky.cz Č V tabulce 5
ze z
P
P
4600
1,657,876
lov celkem
P
1,179,790
Tab. 5.1
P P Soubor s trigramy se v jazyce Java A
V 5.2). 5.1.2
Opravný proces
J
n na mal .V P
o. P
n slovech na n 2
P
trigramu T
P konec. P
P
D ho byly zavedeny chyby, se
e a zpracuje ):
av 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
dnes je venku dnes je venku s dnes
e
dnes je
e
dnes je venku
e
d p
e
e
33
(v
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
d
sede
d
et et
; ミ[
d d sed t doma a d
sed t doma a
d d d Dnes je venku
.
V V
je
po
kroku
et V (zde krok
proces
je v textu. V
)
T
P
5.2 Provozní nároky 5.2.1
Rozbor
A T
Soub aplikace 21 sekund. Aplikace si v aplikace toho
, je MB
D MB P procesorem Intel Core2Duo 1,66 GHz, 2 GB RAM, OS Windows 7 64bit MB P MB sekund N T 1,179,790 U KB 14564 aplikace 5 sekund. Aplikace si s .
)
34
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH V
v D e. A
ho P
s
V ) SQL I
Závěr
5.2.2
A A
J ch
C GB I
SQL
5.3 Výstupy a výkon T
V 5.3.1 se 5.3.2 se testovalo na datech,
V
5.3.1
Texty ze vstupních dat T J
www.novinky.cz D V tabulce 5.2 je uveden . Z tabulky je V V
J T
D kapitole 3. J
V a
35
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH Č
P slov
P chyb
112 179 140 190 177 148 143 172 86 143 1490
10 7 10 8 10 8 8 9 10 10 90
1 2 3 4 5 6 7 8 9 10 CELKEM
P
Ú [%]
chyb 10 7 10 7 8 8 8 7 8 7 80
100,00 100,00 100,00 87,50 80,00 100,00 100,00 77,78 80,00 70,00 88,89
Tab. 5.2
V tohoto textu V tabulce 5.3.
J V
neupravenou bylo zavedeno
. Do
O E
Svet
Í
) H
E
M A E
E
prezident Barack Obama, pro S
I
N CNN
E
E
I
T A
N J
I B
R
G
chyba s
T A
W
Í
M
druh chyby
A
oprava
svet dlouha
aby
abi
pravop
aby
pravop pravop mirovou s
diakritiky
sve
Tab. 5.3 P
36
s
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
V
T S
E
Í
H
)
M E
zemi je E I CNN I
R
G
Í
A
B
T A
I
W M
T A
A
J
T A tabulce 5
B J
Ostatní texty
5.3.2 K
na
detekci chyb. V
Chyb
P
Oprava
vsecko
pr vsecko
ney vdle siuetu
vdle siuetu v textu je slovo trigram
postavi Tab. 5.
P
postavi podezr jejich oprav
37
E B
pr
v aplikaci. T
O S
N
E
N J
E
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH T
K opravu. V
P T Ú
) kter jsou trigramy z
ematicky n a tohoto seznamu, tak
P
do okruhu
ze . Pokud se
www.novinky.cz B T jejich opravou je zobrazen v tabulce 5.4. Ve
V P 28,5%. Tak
i bylo
o
J V
O N P Š
S
ODS
Ú
B V
P
S
M
KSČM Č
zaved chyba
druh chyby pravop pravop pravop pravop pravop
T
V
D V S ) pro opravu chyb. 38
oprava
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
V
T N P Š
ODS
S V
by mohl narazit Ú P
Boris
S M KSČM i pro to Č stoupnout ze 60 na 100 korun.
M
P .
5.3.3
Shrnutí výsledků
V I
V kapitole 5.3.1 byly k J A T T T pravy. V N ra na
r a t.
V kapitole 5.3.2 byly k P
V ost algoritmu V V
D
A ) Ř V
mohly vznikat
opravy
datech. T
) T 39
politice) a z
u
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
6 Závěr J
J J S u
M
D
M
T
P
nich
A
kontrole pravopisu
K metod. Jednou z metod je z
L
M
Z lgoritmu. P J
API J
T ko
J e
detekuje a oprav
textech.
P T D
v
metody
J P podle T B Aplikace je teprve v
SQL P
40
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
Literatura [1] ČECHOV A P S
Praha : Odeon, 1968.
[2] Daitch Mokotoff Soundex. Wikipedia, the free encyclopedia. [Online] http://en.wikipedia.org/wiki/Daitch%E2%80%93Mokotoff_Soundex. [3] Dynamic programming. Wikipedia, the free encyclopedia. [Online] http://en.wikipedia.org/wiki/Dynamic_programming. [4] EDMOND, J. Soundex coding. JewishGen. [Online] http://www.jewishgen.org/infofiles/soundex.html. [5] FISCHER, H. Soundex: Algorithm for phonetic search, Alternative to Soundex. Sound-ex. [Online] [Citace: 5. Listopad 2010.] http://www.sound-ex.com/alternative_zu_soundex.htm. [6] HNÁTKOVÁ M
; JELÍNEK T
04D WWW Petkevic_Chyby.pdf>
;. Klasifikace a typologie chyb ve vstup [online]. Liberec T L H -Jelinek-
[7] KNUTH, Donald E. The art of computer programming. Volume 3, Sorting and searching. Reading, Massachusetts : Addison - Wesley, 1998. [8] Levenshtein distance. Wikipedia, the free encyclopedia. [Online] http://en.wikipedia.org/wiki/Levenshtein_distance. [9] REANEY, P. H. a WILSON, R. M. A Dictionary of English Surnames. Oxford : Oxford University Press, 1997. [10] SNAE, Ch. A Comparison and Analysis of Name Matching Algorithms. [Online] http://www.waset.org/pwaset/v19/v19-47.pdf. [11] Soundex Indexing. National archives. O K . [Citace: 1. Listopad 2010.] http://www.archives.gov/publications/general-info-leaflets/55-census.html.
41
-
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
Seznam pou itých zkratek API ICQ IM PC
Aplication Programming Interface foneticky I seek you software pro instant messaging Instant messaging Personal komputer
42
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
Přílohy
43
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
Příloha
Výpis zdrojového kódu hlavního prvního stupně algoritmu
soubor: TextLoader.java package cz.stan.spellChecker; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; import javax.swing.JFileChooser; public class TextLoader { private String output = ""; private String PATH; private String corrSen; public static boolean fileFlag; final static JFileChooser fc = new JFileChooser(); public TextLoader() throws IOException { loadFile(); getSentences(); } public void getSentences() throws IOException { if (fileFlag == true) { BufferedReader in = new BufferedReader(new InputStreamReader( new FileInputStream(PATH))); String line; String text = ""; while ((line = in.readLine()) != null) { text += line; }
StringTokenizer st = new StringTokenizer(text, "."); while (st.hasMoreTokens()) { String sent = st.nextToken(); sent = sent.replace(".", ""); sent = sent.replace("-", ""); sent = sent.replace(",", ""); ) if(!sent.equals(" ")){ String sentence; if (sent.substring(0,1).equals(" ")) { sentence = sent.substring(1, 2).toLowerCase() + sent.substring(2); }else{ 44
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH sentence = sent.substring(0, 1).toLowerCase() +
sent.substring(1); } V TrigramLoader tl = new TrigramLoader(sentence); N corrSen = tl.getCorrectedSentence(); } // O String out; if (!corrSen.isEmpty()) { if(corrSen.substring(0,1).equals(" ")){ out = corrSen.substring(1,2).toUpperCase() + corrSen.substring(2); }else { out = corrSen.substring(0,1).toUpperCase() + corrSen.substring(1); } K output += out + ". "; }
} System.out.println(output); } else { System.out.println("No file was selected."); } } M private void loadFile() { fc.showOpenDialog(fc); if (fc.getSelectedFile() != null) { File file = fc.getSelectedFile(); PATH = file.getAbsolutePath(); fileFlag = true; } else { fileFlag = false; } } }
45
D
KONTROLA PRAVOPISU V ČESKÝCH TEXTECH
Příloha
Obsah CD
S
/root
Aplikace I I I I I I I - Elektronicky_text
I I I I I -
app
I I I -
ContextSensitiveSC
I -
aplikace testdata zdrojove_kody
SpellCheckDemo
-
aplikace zdrojove_kody
lib
1. Aplikace 1.1. App に s 1.1.1. ContextSensitiveSC s kapitole 5. 1.1.1.1. Aplikace obsahuje spustiteln aplikace. 1.1.1.2. Testdata . 1.1.1.3. Zdrojove_kody に . 1.1.2. SpellCheckDemo に Obsahuje aplikaci popsanou v kapitole 4. 1.1.2.1. Aplikace に obsahuje 1.1.2.2. Zdrojove_kody に . 1.2. Lib に 2. Elektronicky_text に
46