• No results found

Technick´a univerzita v Liberci

N/A
N/A
Protected

Academic year: 2022

Share "Technick´a univerzita v Liberci"

Copied!
60
0
0

Loading.... (view fulltext now)

Full text

(1)

Fakulta mechatroniky a mezioborov´ ych inˇ zen´ yrsk´ ych studi´ı

Studijn´ı program:

Studijn´ı obor:

N 2612 – Elektrotechnika a informatika 1802T007 – Informaˇ cn´ı technologie

Oprava pˇ reklep˚ u dotaz˚ u zad´ avan´ ych do vyhled´ avaˇ ce

Spell correction of web search queries

Diplomov´ a pr´ ace

Autor: Bc. Stanislav Nowak

Vedouc´ı diplomov´ e pr´ ace: Mgr. Jiˇr´ı Vran´ y Konzultant: Ing. Radim ˇ Skrob

V Liberci dne 16. 5. 2008

(2)

2

(3)

Byl jsem sezn´amen(a) s t´ım, ˇze na mou diplomovou pr´aci se plnˇe vztahuje z´akon ˇ

c. 121/2000 o pr´avu autorsk´em, zejm´ena § 60 (ˇskoln´ı d´ılo).

Beru na vˇedom´ı, ˇze TUL m´a pr´avo na uzavˇren´ı licenˇcn´ı smlouvy o uˇzit´ı m´e di- plomov´e pr´ace a prohlaˇsuji, ˇze souhlas´ım s pˇr´ıpadn´ym uˇzit´ım m´e diplomov´e pr´ace (prodej, zap˚ujˇcen´ı apod.).

Jsem si vˇedom(a) toho, ˇze uˇz´ıt sv´e diplomov´e pr´ace ˇci poskytnout licenci k jej´ımu vyuˇzit´ı mohu jen se souhlasem TUL, kter´a m´a pr´avo ode mnˇe poˇzadovat pˇrimˇeˇren´y pˇr´ıspˇevek na ´uhradu n´aklad˚u, vynaloˇzen´ych univerzitou na vytvoˇren´ı d´ıla (aˇz do jej´ı skuteˇcn´e v´yˇse).

Diplomovou pr´aci jsem vypracoval(a) samostatnˇe s pouˇzit´ım uveden´e literatury a na z´aklade konzultac´ı s vedouc´ım bakal´aˇrsk´e pr´ace a konzultantem.

Datum

Podpis

3

(4)

Na tomto m´ıstˇe bych chtˇel podˇekovat zejm´ena vedouc´ımu sv´e pr´ace Mgr. Jiˇr´ımu Vran´emu.

Rovnˇeˇz bych r´ad podˇekoval i Ing. ˇStˇep´anu ˇSrobovi a Mgr. Radimu ˇReh˚urkovi ze spoleˇcnosti Seznam.cz za poskytnut´e podklady, bez kter´ych by diplomov´a pr´ace ne- mohla vzniknout.

4

(5)

C´ılem pr´ace bylo vytvoˇrit korektor pˇreklep˚u uˇzivatelsk´ych dotaz˚u zad´avan´ych do in- ternetov´eho vyhled´avaˇce. Korektory pˇreklep˚u v dotazech se vyuˇz´ıvaj´ı pˇredevˇs´ım pro zv´yˇsen´ı uˇzivatelsk´eho komfortu pˇri pouˇz´ıv´an´ı vyhled´avaˇce. Za svou souˇcasnou popu- laritu vdˇeˇc´ı pˇredevˇs´ım vyhled´avaˇci spoleˇcnosti Google. Dnes jiˇz patˇr´ı korektor dotaz˚u mezi standardn´ı funkce a setk´ame se s n´ım i na vˇetˇsinˇe ˇcesk´ych vyhled´avaˇc˚u.

Korektor pˇreklep˚u pro vyhled´avaˇc se od tˇech, kter´e zn´ame napˇr´ıklad z textov´ych procesor˚u, liˇs´ı v nˇekolika ohledech. Pˇredevˇs´ım jsou na nˇej kladeny podstatnˇe vyˇsˇs´ı v´ykonnostn´ı n´aroky a rovnˇeˇz se mus´ı umˇet vypoˇr´adat se specifick´ym druhem jazyka dotaz˚u zad´avan´ych do vyhled´avaˇce. Diplomov´a pr´ace stav´ı na poznatc´ıch statistick´e lingvistiky a byla ˇreˇsena na z´akladˇe bayesovsk´eho pˇr´ıstupu. Korektor se tak rozdˇelil na dvˇe samostatn´e ˇc´asti, a to jazykov´y a chybov´y model. Pro jazykov´e modelov´an´ı byl vyuˇzit stochastick´y n-gramov´y model. Chybov´y model je zaloˇzen na principu minim´aln´ı editaˇcn´ı vzd´alenosti a nejpravdˇepodobnˇejˇs´ıho zarovn´an´ı ˇretˇezc˚u.

K tr´enovan´ı obou model˚u byla pouˇzita data sestaven´a ze z´aznam˚u uˇzivatelsk´ych dotaz˚u zad´avan´ych do vyhled´avaˇce spoleˇcnosti Seznam.cz. Pˇri testov´an´ı dos´ahl imple- mentovan´y korektor uspokojiv´ych v´ysledk˚u, pˇresto vˇsak z˚ust´av´a prostor pro mnoh´a vylepˇsen´ı.

Kl´ıˇcov´a slova: oprava pˇreklep˚u, statistick´a lingvistika, zpracov´an´ı pˇrirozen´eho ja- zyka, vyhled´avaˇc

5

(6)

The goal of this diploma thesis was to develop a spelling correction program of web search queries. The spelling correction of search queries is used to provide a richer user experience. Its current popularity was gained thanks to Google search engine.

Nowadays the spelling correction became a standard feature of many search engines and we can see it at Czech search engines too.

Search query correction differs from ones that we use for example in text processor in several ways. It must be able to deal with high performance requirements and also with a specific type of language of web search queries.

The diploma thesis is based on computational linguistics and Bayesian approach. By using Bayesian method we get two separated components: language and error model.

For the language model we use stochastic n-gram based model. The error model is based on minimal string distance and maximum probability alignment.

For training of both models were used data build from search queries logs of Se- znam.cz search engine. Testing shows satisfactory results however there are still several improvements that can be made.

Keywords: spell correction, computational linguistics, NLP, search engine

6

(7)

2 Lingvistika

... 11

2.1 Matematick´a lingvistika ... 11

2.1.1 Kvantitativn´ı (statistick´a) lingvistika... 11

2.1.2 Algebraick´a lingvistika... 12

2.1.3 Poˇc´ıtaˇcov´a (strojov´a) lingvistika... 12

3 Teoretick´ y rozbor

... 13

3.1 Pˇrehled statistick´ych pojm˚u ... 13

3.2 Bayesovsk´y pˇr´ıstup k opravˇe pˇreklep˚u ... 14

3.3 Jazykov´y model ... 15

3.3.1 n-gramov´e modely ... 16

3.3.2 Unigramov´y model ... 17

3.3.3 Bigramov´y model... 17

3.3.4 Pˇr´ıprava, vlastnosti a vady jazykov´eho modelu... 18

3.3.5 Vyhlazov´an´ı ... 18

3.3.6 Kvalita jazykov´eho modelu... 21

3.3.7 Jazykov´e modelov´an´ı ˇceˇstiny... 22

3.3.8 Jazykov´e modelov´an´ı pro vyhled´avaˇc ... 23

3.4 Chybov´y model ... 24

3.4.1 Klasifikace chyb... 25

3.4.2 Pˇr´ıstup na z´akladˇe editaˇcn´ı vzd´alenosti... 25

3.4.3 Pˇr´ıstup na z´akladˇe fonetick´e podobnosti ... 31

3.4.4 Dalˇs´ı pˇr´ıstupy ... 32

3.5 Algoritmus korekce ... 33

3.5.1 Zpracov´an´ı dotazu... 33

3.5.2 Vytvoˇren´ı seznamu kandid´at˚u ... 34

3.5.3 Ohodnocen´ı kandid´at˚u dle chybov´eho modelu ... 34

3.5.4 Ohodnocen´ı kandid´at˚u dle jazykov´eho modelu ... 34

3.5.5 V´ybˇer nejvhodnˇejˇs´ıho kandid´ata... 35

3.5.6 Pˇr´ıklad ... 35

3.6 Dalˇs´ı algoritmy ... 36

3.6.1 Ispell... 36

3.6.2 GNU Aspell... 36

(8)

3.6.3 Myspell... 37

3.6.4 Hunspell... 37

4 Implementace

... 38

4.1 Python... 38

4.1.1 Z´akladn´ı rysy jazyka... 38

4.1.2 Technick´e rysy jazyka ... 40

4.2 Programov´e vybaven´ı... 42

4.3 Bal´ıˇcek spell-correction ... 42

4.3.1 language model... 42

4.3.2 error model... 45

4.3.3 error analysis... 46

4.3.4 edit distance... 48

4.3.5 utils... 48

4.3.6 corrector... 49

4.4 Skripty ... 50

4.5 Pˇr´ıprava jazykov´eho modelu ... 50

4.6 Pˇr´ıprava chybov´eho modelu ... 51

4.7 Pˇr´ıprava test˚u korekce ... 51

4.8 Demonstraˇcn´ı skript ... 51

5 Testov´ an´ı

... 52

5.1 Vstupn´ı data jazykov´eho modelu ... 52

5.2 Vstupn´ı data chybov´eho modelu ... 52

5.3 Testy ... 53

5.3.1 Test izolovan´ych slov ... 54

5.3.2 Test bˇeˇzn´ych dotaz˚u... 55

5.3.3 Test konzervativnosti... 55

6 Z´ avˇ er

... 57

SEZNAM POUˇ ZIT´ E LITERATURY

... 59

(9)

1 Uvod ´

Pˇrestoˇze v´yzkumn´e pr´ace v oblasti automatick´ych oprav textu zapoˇcaly jiˇz zaˇc´atkem 60. let dvac´at´eho stolet´ı, dodnes je toto t´ema ˇziv´e a vˇenuje se mu velk´e ´usil´ı a pozornost.

Bylo dosaˇzeno d´ılˇc´ıch ´uspˇech˚u a v souˇcasnosti m´ame k dispozici nˇekolik velmi kva- litn´ıch akademick´ych i komerˇcn´ıch korektor˚u. St´ale vˇsak z˚ust´av´a prostor pro zlepˇsen´ı, zejm´ena v oblasti ´uspˇeˇsnosti oprav a schopnosti vypoˇr´adat se s obecn´ym t´ematem.

D˚uleˇzitou hnac´ı silou pro dalˇs´ı v´yvoj je i zvyˇsov´an´ı v´ykonu v´ypoˇcetn´ıch prostˇredk˚u.

Uˇz v ˇsedes´at´ych letech byla zn´ama ˇrada algoritm˚u, kter´e nemohly b´yt implementov´any z d˚uvodu vysok´e v´ypoˇcetn´ı n´aroˇcnosti a dostalo se na nˇe aˇz relativnˇe ned´avno.

Kromˇe bˇeˇzn´ych text˚u se objevuj´ı nov´e v´yzvy vyˇzaduj´ıc´ı specifick´y pˇr´ıstup. Tako- vou ´ulohou je i oprava pˇreklep˚u uˇzivatelsk´ych dotaz˚u zad´avan´ych do internetov´eho vy- hled´avaˇce s vyuˇzit´ım kontextu. Na korektor dotaz˚u pro vyhled´avaˇc jsou kladeny velk´e v´ykonnost´ı n´aroky a mus´ı ´uˇcinnˇe pracovat pod velkou z´atˇeˇz´ı. S t´ımto poˇzadavkem se dnes dok´aˇzeme relativnˇe snadno vypoˇr´adat pouˇzit´ım optimalizovan´ych algoritm˚u, speci´aln´ıch datov´ych struktur nebo zv´yˇsen´ım v´ykonu v´ypoˇcetn´ıch prostˇredk˚u.

Z´avaˇznˇejˇs´ım probl´emem z˚ust´av´a jazyk dotaz˚u vkl´adan´ych do vyhled´avaˇce. Jazy- kov´a struktura dotazu se z´asadnˇe liˇs´ı od stavby bˇeˇzn´e ˇcesk´e vˇety. Dotaz se v pr˚umˇeru skl´ad´a ze tˇr´ı slov, a je tedy o pozn´an´ı kratˇs´ı neˇz pr˚umˇern´a ˇcesk´a vˇeta. Mezi slovn´ımi druhy pˇrevaˇzuj´ı podstatn´a jm´ena, pˇr´ıdavn´a jm´ena a pˇr´ıslovce, zat´ımco poˇcet sloves je v´yraznˇe niˇzˇs´ı. Charakteristick´y je i velk´y v´yskyt cizojazyˇcn´ych v´yraz˚u, pˇrev´aˇznˇe ang- lick´ych. V zad´avan´ych dotazech se ˇcasto objevuj´ı n´azvy obchodn´ıch znaˇcek a v´yrobk˚u, jejich modelov´ych a typov´ych ˇrad, nebo dokonce cel´e www adresy. Frekvence v´yskyt˚u pˇreklep˚u je rovnˇeˇz vyˇsˇs´ı neˇz v bˇeˇzn´em textu.

V historii automatick´ych oprav se objevilo nˇekolik cest k ˇreˇsen´ı zadan´e ´ulohy. Jako nej´uˇcinnˇejˇs´ı se uk´azal pˇr´ıstup postaven´y na statistick´ych metod´ach. V souˇcasnosti se s jin´ymi postupy setk´ame jen v´yjimeˇcnˇe. Pro tvorbu korektoru byl zvolen bayesovsk´y pˇr´ıstup. Ten n´am umoˇznil rozdˇelit ´ulohu na dvˇe samostatn´e ˇc´asti, kter´e mohou b´yt tr´enov´any a testov´any nez´avisle. Dvˇe zm´ınˇen´e ˇc´asti jsou: jazykov´y a chybov´y model.

Jedn´ım z poˇzadavk˚u na korektor bylo, aby umˇel vyˇz´ıt kontextu okoln´ıch slov dotazu.

Toho jsme dos´ahli pouˇzit´ım n−gramov´eho modelu jako jazykov´eho modelu.

Pro tvorbu chybov´eho modelu byl zvolen princip zaloˇzen´y na minim´aln´ı editaˇcn´ı vzd´alenosti a nejpravdˇepodobnˇejˇs´ıho zarovn´an´ı ˇretˇezc˚u. Pˇrednost´ı tohoto pˇr´ıstupu je, ˇ

ze pomoc´ı editaˇcn´ıch operac´ı pˇrirozen´ym zp˚usobem popisuje uˇzivatelsk´e pˇreklepy v do- tazech.

(10)

Pˇri pˇr´ıpravˇe podklad˚u se nepodaˇrilo zajistit ˇz´adn´y ˇcesk´y zdroj zamˇeˇren´y pˇr´ımo na opravu pˇreklep˚u. V ˇradˇe prac´ı byly pops´any jen ˇc´asteˇcn´e informace vyuˇziteln´e pro tvorbu korektoru, napˇr´ıklad jazykov´e modelovan´ı. V kontrastu jsou anglick´e zdroje, ze kter´ych se podaˇrilo z´ıskat velk´e mnoˇzstv´ı pouˇziteln´ych podklad˚u a informac´ı. Z toho d˚uvodu se diplomov´a pr´ace snaˇz´ı b´yt ucelen´ym ˇcesky psan´ym shrnut´ım v oblasti ko- rekce pˇreklep˚u. V pr´aci jsou proto nejdˇr´ıve podrobnˇe rozebr´any obecn´e principy opravy pˇreklep˚u a na nˇe navazuje popis specifick´ych ˇreˇsen´ı pro vyhled´avaˇc.

Uloha korekce pˇreklep˚´ u spad´a do oblasti statistick´e lingvistiky, proto je prvn´ı ka- pitola vˇenov´ana pr´avˇe lingvistice. Kr´atce si ji pop´ıˇseme, zamˇeˇr´ıme se pˇredevˇs´ım na matematickou lingvistiku a pˇredstav´ıme si jej´ı z´akladn´ı discipl´ıny.

V druh´e kapitole se sezn´am´ıme s teoretick´ym apar´atem, na kter´em je vybudov´an korektor pˇreklep˚u. Postupnˇe budeme proch´azet jednotliv´e ˇc´asti, podrobnˇe rozebereme jejich teoretick´e z´azem´ı a nakonec vˇse spoj´ıme dohromady a z´ısk´ame tak korekˇcn´ı algoritmus. V kapitole jsou zm´ınˇeny a kr´atce pops´any i dalˇs´ı moˇzn´e pˇr´ıstupy k opravˇe pˇreklep˚u.

Souˇc´ast´ı zad´an´ı pr´ace bylo vytvoˇren´ı funkˇcn´ıho prototypu korektoru. Jeho imple- mentace je pops´ana v praktick´e ˇc´asti, kter´a slouˇz´ı z´aroveˇn jako dokumentace k pro- gramu. D´ale se zm´ın´ıme o pˇr´ıpravˇe a tvorbˇe jazykov´eho a chybov´eho modelu.

V pˇredposledn´ı kapitole ovˇeˇr´ıme kvalitu n´avrhu a implementace korektoru na roz- manit´ych ´uloh´ach. Zamˇeˇr´ıme se hlavnˇe na ´uspˇeˇsnost za pouˇzit´ı r˚uznˇe velk´ych jazy- kov´ych model˚u a nastaven´ı ´urovn´ı pˇresnosti chybov´eho modelu.

Na z´avˇer shrneme a okomentujeme v´ysledky testov´an´ı. Rovnˇeˇz se zm´ın´ıme o moˇzn´ych zlepˇsen´ıch a doporuˇc´ıme smˇer dalˇs´ıho v´yvoje.

(11)

2 Lingvistika

D˚uleˇzit´ym zdrojem poznatk˚u pouˇzit´ych v diplomov´e pr´aci se stala pr´avˇe lingvistika, proto se o n´ı kr´atce rozep´ıˇseme a zamˇeˇr´ıme se na matematickou lingvistiku. Informace pro tuto kapitolu byly ˇcerp´any pˇredevˇs´ım z [1].

Lingvistika neboli jazykovˇeda (lingua je latinsky jazyk) je vˇeda o jazyc´ıch, jejich tˇr´ıdˇen´ı, stavbˇe a zvukov´e i psan´e podobˇe. Jako samostatn´a vˇeda vznikla zaˇc´atkem 19. stolet´ı. Jej´ı z´asadn´ı pr˚ulom nastal aˇz ve druh´e polovinˇe 20. stolet´ı, kdy doˇslo ve vˇedˇe k v´yrazn´e zmˇenˇe a zaˇcal se kl´ast velk´y d˚uraz na pomezn´ı discipl´ıny.

Jestliˇze se v dˇr´ıvˇejˇs´ıch obdob´ıch lingvist´e zab´yvali bud’ syst´emem jazyka (struktu- ralismus), nebo nˇekterou z jeho ˇc´ast´ı (srovn´avac´ı a historick´a gramatika), pak v druh´e polovinˇe 20. stolet´ı pˇrev´aˇzil z´ajem o takov´e discipl´ıny, v nichˇz se s ´uspˇechem kombi- nuj´ı ot´azky lingvistiky s t´ematy a metodami, jako je matematika, logika, psychologie, neurologie, sociologie atd.

Vznikla tak ˇrada pomezn´ıch discipl´ın, kter´e v souˇcasn´e lingvistice z´ıskaly domi- nantn´ı postaven´ı a dnes stoj´ı v sam´em centru jej´ıho z´ajmu. ˇRad´ıme do nich zejm´ena matematickou lingvistiku, psycholingvistiku, sociolingvistiku a mnoh´e dalˇs´ı.

2.1 Matematick´ a lingvistika

Term´ınem matematick´a lingvistika se dnes oznaˇcuj´ı takov´e discipl´ıny, v nichˇz se pˇri v´yzkumu jazyka pouˇz´ıvaj´ı matematick´e metody. Protoˇze je aplikace matematick´ych metod mnohostrann´a, rozliˇsuj´ı se v r´amci matematick´e lingvistiky tˇri d´ılˇc´ı discipl´ıny – lingvistika kvantitativn´ı, algebraick´a a poˇc´ıtaˇcov´a. Prvn´ı dvˇe jsou pˇrev´aˇznˇe teoretick´e, tˇret´ı aplikuje jejich poznatky v praxi, zejm´ena pˇri poˇc´ıtaˇcov´em pˇrekladu.

2.1.1 Kvantitativn´ı (statistick´a) lingvistika

Kvantitativn´ı lingvistika popisuje jazyk pomoc´ı statistick´ych metod. Tato discipl´ına m´a delˇs´ı tradici neˇz algebraick´a a poˇc´ıtaˇcov´a, protoˇze statistick´e metody se v lingvis- tice objevovaly uˇz od konce 19. stolet´ı. ˇRada lingvist˚u si vˇsimla, ˇze jednotliv´e jazykov´e jevy (hl´asky, p´ısmena, slabiky, gramatick´e kategorie, slovn´ı spojen´ı atd.) se vysky- tuj´ı s r˚uznou nerovnomˇernou frekvenc´ı. Znalosti frekvenc´ı jednotliv´ych jev˚u umoˇznily pouˇzit´ı teorie pravdˇepodobnosti k popisu jazyka.

Statistick´e metody dostaly v pades´at´ych letech 20. stolet´ı nov´y impuls v podobˇe te- orie komunikace a informace, kter´e do lingvistiky zavedly takov´e pojmy, jako napˇr´ıklad

(12)

entropie, perplexita, redundance, bit a ˇsum.

Vˇetˇsina poznatk˚u a metod pouˇzit´ych v diplomov´e pr´aci poch´az´ı pr´avˇe z t´eto dis- cipl´ıny.

2.1.2 Algebraick´a lingvistika

Algebraick´a lingvistika je n´azev pro jazykov´e teorie op´ıraj´ıc´ı se o jin´e matematick´e metody, neˇz jsou kvantitativn´ı. Pˇrev´aˇznˇe se jedn´a o metody algebraick´e a logick´e, kter´e pˇristupuj´ı k jazyku jako k form´aln´ımu modelu.

Reprezentativn´ım pˇr´ıkladem je transformaˇcn´ı a generativn´ı gramatika Noama Chomsk´eho, kter´a pˇredstavuje jeden z nejpropracovanˇejˇs´ıch model˚u jazyka. S ´uspˇechem se aplikuje obzvl´aˇstˇe na jazyky s pevn´ym slovosledem a chudou morfologi´ı, jako je an- gliˇctina.

2.1.3 Poˇc´ıtaˇcov´a (strojov´a) lingvistika

Neobyˇcejn´y rozvoj poˇc´ıtaˇc˚u v druh´e polovinˇe 20. stolet´ı zp˚usobil znaˇcn´e zmˇeny v me- tod´ach vˇedeck´eho v´yzkumu v nejr˚uznˇejˇs´ıch discipl´ın´ach, mezi jin´ymi tak´e v lingvistice.

Pro celou ˇradu operac´ı lingvistick´eho charakteru, kter´e se prov´adˇej´ı na poˇc´ıtaˇc´ıch, se pouˇz´ıv´a souhrnn´y n´azev – poˇc´ıtaˇcov´a lingvistika. Ta v praxi vyuˇz´ıv´a poznatky kvanti- tativn´ı a algebraick´e lingvistiky a zpˇetnˇe ovlivˇnuje rozvoj obou discipl´ın.

Nejzn´amˇejˇs´ı ˇcinnost´ı strojov´e lingvistiky je strojov´y pˇreklad – jeho c´ılem je pˇrev´est text v´ychoz´ıho jazyka na jazyk c´ılov´y. Kromˇe strojov´eho pˇrekladu se poˇc´ıtaˇce v lin- gvistice s ´uspˇechem uplatˇnuj´ı i pˇri jin´ych ˇcinnostech, jako je napˇr. spektr´aln´ı anal´yza mluven´e ˇreˇci, zpracov´an´ı frekvenˇcn´ıch seznam˚u, rozpozn´an´ı psan´eho slova nebo oprava pˇreklep˚u.

Korpusov´a lingvistika

Jedn´a se o mlad´e odvˇetv´ı, v souˇcasnosti spadaj´ıc´ı do oboru poˇc´ıtaˇcov´e lingvistiky, jehoˇz rozvoj je spjat s pˇr´ıchodem poˇc´ıtaˇc˚u a informaˇcn´ıch technologi´ı. Tato discipl´ına zkoum´a jazyk pomoc´ı elektronick´ych jazykov´ych korpus˚u a zab´yv´a se i v´ystavbou tˇechto kor- pus˚u, jejich zpracov´an´ım a pˇr´ısluˇsnou metodologi´ı. V souˇcasnosti se korpusem rozum´ı rozs´ahl´y vnitˇrnˇe strukturovan´y a ucelen´y soubor text˚u dan´eho jazyka, elektronicky uloˇzen´y a zpracov´avan´y.

(13)

3 Teoretick´ y rozbor

V t´eto kapitole se zamˇeˇr´ıme na teoretick´y apar´at, kter´y stoj´ı za opravou pˇreklep˚u.

Budeme se op´ırat pˇredevˇs´ım o statistick´e metody a hned v ´uvodu sjednot´ıme termino- logii. Uˇzit´ım bayesovsk´eho pˇr´ıstupu rozdˇel´ıme ´ulohu na dvˇe samostatn´e ˇc´asti. Jazykov´y i chybov´y model d˚ukladnˇe pop´ıˇseme a uvedeme probl´emy spojen´e s jejich tvorbou. Na z´avˇer obˇe ˇc´asti opˇet spoj´ıme a z´ısk´ame korekˇcn´ı algoritmus. V kr´atkosti se budeme vˇenovat i dalˇs´ım rozˇs´ıˇren´ym korekˇcn´ım algoritm˚um a metod´am.

3.1 Pˇ rehled statistick´ ych pojm˚ u

Kr´atk´y exkurs do statistiky slouˇz´ı pˇredevˇs´ım k sjednocen´ı terminologie a notace.

Deterministick´y dˇej pozorov´an´ı nebo pokus, kter´y m´a v dan´ych podm´ınk´ach jed- noznaˇcn´y v´ysledek

Stochastick´y (n´ahodn´y) dˇej pozorov´an´ı nebo pokus, kter´y m˚uˇze v dan´ych podm´ın- k´ach v´est k r˚uzn´ym v´ysledk˚um

N´ahodn´y pokus stochastick´y dˇej, kter´y je za t´ychˇz podm´ınek nekoneˇcnˇe opakova- teln´y

N´ahodn´y jev A v´ysledek n´ahodn´eho pokusu, o nˇemˇz lze jednoznaˇcnˇe ˇr´ıci, ˇze nastal, nebo nenastal

Statistick´a definice pravdˇepodobnosti Opakujme n´ahodn´y pokus N −kr´at, pˇriˇcemˇz pˇredpokl´adejme, ˇze v´yskyt n´ahodn´eho jevu A pozorujeme v K pˇr´ıpadech. ˇC´ıslo K se naz´yv´a ˇcetnost´ı jevu A. Pomˇer se pak oznaˇcuje jako pomˇern´a ˇci relativn´ı ˇ

cetnost jevu A. Jestliˇze se s rostouc´ım N , tedy se zvyˇsov´an´ım poˇctu opakov´an´ı pokusu, relativn´ı ˇcetnost bl´ıˇz´ı nˇejak´emu ˇc´ıslu, pak toto ˇc´ıslo m˚uˇzeme povaˇzovat za pravdˇepodobnost dan´eho jevu.

P (A) = lim

N →∞

K

N (1)

Sdruˇzen´a pravdˇepodobnost oznaˇcuje pravdˇepodobnost, ˇze n´ahodn´e jevy A a B nastanou souˇcasnˇe

P (A|B) = P (A, B) = P (AB) (2)

(14)

Podm´ınˇen´a pravdˇepodobnost oznaˇcuje pravdˇepodobnost, zda se jev A m˚uˇze vy- skytnout pouze tehdy, vyskytl-li se jev B, jehoˇz pravdˇepodobnost je P (B) > 0

P (A|B) = P (A ∩ B)

P (B) (3)

Bayes˚uv vzorec ud´av´a, jak´ym zp˚usobem vypoˇc´ıt´ame pravdˇepodobnosti P (A|B) jevu A za podm´ınky, ˇze nastal jev B, jestliˇze zn´ame apriorn´ı pravdˇepodobnosti P (A) a podm´ınˇenou pravdˇepodobnost P (B|A). Bayes˚uv vzorec m´a tvar:

P (A|B) = P (B|A) P (A)

P (B) . (4)

3.2 Bayesovsk´ y pˇ r´ıstup k opravˇ e pˇ reklep˚ u

Pˇri ˇreˇsen´ı ´ulohy opravy pˇreklep˚u vyuˇz´ıv´ame statistick´e metody. Pˇredpokl´adejme, ˇze W = {w1, w2, w3, . . . , wN} je posloupnost N slov pˇredstavuj´ıc´ı dotaz zadan´y do vy- hled´avaˇce. D´ale necht’ je C = {c1, c2, c3, . . . , cN} opraven´a posloupnost slov.

C´ılem je nal´ezt nejpravdˇepodobnˇejˇs´ı opravenou posloupnost slov C pro dotaz W :

C = argmaxˆ CP (C|W ), (5)

kde P (C|W ) je podm´ınˇen´a pravdˇepodobnost, ˇze C je oprava dotazu W a funkce argmaxC v tomto vztahu znamen´a nalezen´ı posloupnosti C takov´e, pro kterou je P (C|W ) maxim´aln´ı. Uveden´y vztah vˇsak nedok´aˇzeme nikterak ohodnotit. Napˇr´ıklad pokud m´ame chybn´e slovo porledn´ı, z uveden´eho vztahu nedovedeme urˇcit, zda je spr´avnˇejˇs´ı oprava posledn´ı nebo poledn´ı.

V pˇr´ıpadˇe, ˇze pouˇzijeme Bayesovo pravidlo, plat´ı:

C = argmaxˆ CP (C)P (W |C)

P (W ) , (6)

kde P (C) je apriorn´ı pravdˇepodobnost posloupnosti slov C, tedy pravdˇepodobnost, s jakou uˇzivatel zad´a do vyhled´avaˇce pravdˇepodobnost slov C. P (W |C) vyjadˇruje pravdˇepodobnost, ˇze byla zad´ana chybn´a posloupnost W , pokud mˇela b´yt spr´avnˇe zad´ana posloupnost C. P (W ) je apriorn´ı pravdˇepodobnost chyby a vzhledem k tomu, ˇ

ze je konstantn´ı, m˚uˇzeme ji pˇri hled´an´ı maxima ignorovat. V´ysledn´a rovnice m´a tedy tvar:

(15)

C = argmaxˆ CP (C)P (W |C). (7) Z tohoto vztahu vypl´yv´a, ˇze probl´em nalezen´ı nejlepˇs´ı opravy C k zadan´e posloup- nosti W lze ˇreˇsit pomoc´ı dvou oddˇelen´ych pravdˇepodobnost´ı P (C) a P (W |C), kter´e mohou b´yt modelov´any a tr´enov´any nez´avisle na sobˇe. Apriorn´ı pravdˇepodobnost P (C) nese informaci o jazykov´em modelu a podm´ınˇen´a pravdˇepodobnost P (W |C) o chy- bov´em modelu.

Z uveden´eho v´ykladu vypl´yv´a, ˇze ´uloha opravy pˇreklepu m˚uˇze b´yt tedy rozdˇelena do tˇr´ı d´ılˇc´ıch ´uloh:

1. vytvoˇren´ı jazykov´eho modelu P (C) 2. vytvoˇren´ı chybov´eho modelu P (W |C)

3. nalezen´ı nejpravdˇepodobnˇejˇs´ı posloupnosti slov

3.3 Jazykov´ y model

Uˇ´celem jazykov´eho modelu je nal´ezt urˇcit´a pravidla a stanovit takov´a omezen´ı, po- moc´ı nichˇz m˚uˇzeme v modelovan´em jazyce ze slov sestavit vˇetu. K modelov´an´ı jazyka m˚uˇzeme pˇristupovat dvˇema zp˚usoby a to deterministick´ym a stochastick´ym. V ˇreˇsen´e

´

uloze se budeme drˇzet v´yhradnˇe stochastick´eho tedy pravdˇepodobnostn´ıho pˇr´ıstupu.

Pomoc´ı stochastick´eho jazykov´eho modelu stanov´ıme pro kaˇzdou posloupnost slov W = {w1, w2, w3, . . . , wk} apriorn´ı pravdˇepodobnost P (W ), kterou zjist´ıme ze vztahu pomoc´ı ˇretˇezov´eho pravidla:

P (W ) = P (w1k) = P (w1, w2, w3, . . . , wk)

= P (w1)P (w2|w1)P (w3|w1, w2) . . . P (wn|w1, w2, . . . , wk−1)

=

k

Y

i=1

P (wi|w1, w2, . . . , wi−1). (8)

V uveden´em rozkladu pravdˇepodobnosti P (W ) jsou podm´ınˇen´e pravdˇepodobnosti v´yskytu slova wi podm´ınˇeny pouze svou histori´ı, tj. posloupnost´ı slov w1. . . wi−2wi−1.

(16)

3.3.1 n-gramov´e modely

Aby bylo moˇzn´e vytvoˇrit jazykov´y model podle vztahu 8, museli bychom urˇcit apri- orn´ı pravdˇepodobnost P (wk1) vˇsech moˇzn´ych posloupnost´ı slov do d´elky k. Tyto po- sloupnosti je vˇsak velmi obt´ıˇzn´e urˇcit a t´emˇeˇr nemoˇzn´e ohodnotit. Podle Markovova pˇredpokladu, kter´y ˇr´ık´a, ˇze bl´ızkou budoucnost lze odhadnou z kr´atkodob´e historie, budeme jazykov´y model aproximovat Markovov´ym modelem (n − 1)−v´eho ˇr´adu. Tyto modely se naz´yvaj´ı n−gramov´e. Term´ınem n−gram se rozum´ı posloupnost n za sebou jdouc´ıch slov z´ıskan´ych napˇr´ıklad z tr´enovac´ıho korpusu. n−gramy s n = 0 naz´yv´ame zerogramy a n−gramy s n = 1 unigramy. Mezi pouˇz´ıvanˇejˇs´ı n−gramy patˇr´ı bigramy (kde n = 2) a trigramy (n = 3). Intuice n´am ˇr´ık´a, ˇze ˇc´ım bude n vˇetˇs´ı, t´ım l´epe bude aproximov´an dan´y jazykov´y model. Z praktick´ych d˚uvod˚u se za n nejˇcastˇeji vol´ı 2 (bigramov´y model) nebo 3 (trigramov´y model).

V n−gramov´em modelu je podm´ınˇen´a pravdˇepodobnost P (wk|w1, w2, . . . , wk−1) slova wk z´avisl´a pouze na n − 1 pˇredchoz´ıch slovech a aproximuje se vztahem:

P (wk|w1, w2, . . . , wk−1) ≈ P (wk|wk−n+1, w2, . . . , wk−1). (9) Pro P (w1k) tady plat´ı:

P (w1k) ≈

k

Y

i=1

P (wi|wi−n+1, w2, . . . , wi−1). (10)

Jazykov´e n−gramov´e modely jsou vhodn´e pˇredevˇs´ım pro jazyky s relativnˇe pevn´ym poˇrad´ım slov ve vˇetˇe, nebot’ zde existuj´ı siln´e statistick´e z´avislosti mezi v´yskyty za sebou n´asleduj´ıc´ıch slov.

Mezi dalˇs´ı pˇrednosti patˇr´ı, ˇze algoritmus v´ypoˇctu n−gramov´e statistiky je nez´avisl´y na jazyku.

Jeˇstˇe poznamen´ame, ˇze tvorba jazykov´eho modelu pro ˇceˇstinu je v´yraznˇe n´aroˇcnˇejˇs´ı

´

uloha neˇz napˇr´ıklad pro angliˇctinu. Na vinˇe je pˇredevˇs´ım velk´a morfologick´a bohatost ˇ

ceˇstiny a voln´y poˇr´adek slov ve vˇetˇe. T´eto problematice je vˇenov´ana samostatn´a ˇc´ast.

V ˇreˇsen´e ´uloze budeme pouˇz´ıvat unigramov´y a bigramov´y model.

(17)

3.3.2 Unigramov´y model

Unigramov´y model lze ch´apat jako frekvenˇcn´ı slovn´ık jednotliv´ych slov v tr´enovac´ıch datech. Z unigramov´eho modelu se urˇcuje apriorn´ı pravdˇepodobnost jednotliv´ych slov.

Pravdˇepodobnosti unigram˚u z´ısk´ame ze vztahu:

P (w) = C(w)

N . (11)

C(w) je ˇcetnost slova w a N je celkov´y poˇcet unigram˚u.

3.3.3 Bigramov´y model

Z´akladn´ı nevyhlazen´y bigramov´y jazykov´y model m´a podobu matice, kde ˇr´adky a sloupce jsou oznaˇceny slovy z unigramov´eho modelu. Jej´ı prvky jsou podm´ınˇen´e pravdˇepo- dobnost´ı urˇcen´e pro vˇsechny moˇzn´e dvojice sousedn´ıch slov, kter´e se objev´ı v tr´enovac´ıch datech. Posloupnosti slov, kter´e se v tr´enovac´ıch datech neobjev´ı, maj´ı hodnotu pravdˇepo- dobnosti rovnu nule. Takto vytvoˇren´y jazykov´y model je v´ychoz´ı pro vˇsechny vyhlazo- vac´ı metody. Bigramov´y model pouˇz´ıv´ame k uloˇzen´ı kontextu mezi slovy.

Podm´ınˇen´e pravdˇepodobnos-ti prvk˚u matice vyj´adˇr´ıme z ˇcetnost´ı z´ıskan´ych z tr´enova- c´ıch dat podle vztahu:

P (wn−1wn) = C(wn−1wn)

C(wn−1) , (12)

nebo tak´e jinak zaps´ano:

P (wn|wn−1) = C(wn|wn−1)

C(wn−1) , (13)

kde C(wn − 1) je poˇcet v´yskyt˚u slova wn−1 a C(wn−1, wn) je poˇcet v´yskyt˚u dvojic slov wn−1, wn.

P (wn|wn−1) hodnota vyjadˇruje pravdˇepodobnost, ˇze slovo wn bude n´asledovat po slovˇe wn−1. V naˇs´ı ´uloze budeme potˇrebovat zn´at i pravdˇepodobnost, ˇze slovo wn−1 pˇredch´az´ı wn. Vyuˇzijeme vztahu:

P (wn−1|wn) = C(wn|wn−1)

C(wn) . (14)

(18)

Prvky bigramov´e matice se naz´yvaj´ı parametry a jejich poˇcet a struktura patˇr´ı mez´ı d˚uleˇzit´e charakteristiky jazykov´eho modelu.

M´ıru zastoupen´ı nulov´ych prvk˚u matice budeme oznaˇcovat jako ˇr´ıdkost.

3.3.4 Pˇr´ıprava, vlastnosti a vady jazykov´eho modelu

Data, ze kter´ych se buduje jazykov´y model, se naz´yvaj´ı tr´enovac´ı data nebo tak´e tr´enovac´ı korpus. Parametry jazykov´eho modelu se lad´ı uˇzit´ım heldout dat a ´uˇcinnost modelu se ovˇeˇruje pomoc´ı testovac´ıch dat.

Tr´enovac´ı korpus nebo data jsou v podstatˇe velmi rozs´ahl´y soubor textu. Z tr´enovac´ı- ho korpusu z´ısk´ame informace o frekvenc´ıch jednotliv´ych slov a jejich ˇretˇezc˚u. Ze se- znamu nejfrekventovanˇejˇs´ıch slov se sestavuje slovn´ık a unigramov´y model. Z frekvenc´ı dvojic slov se poˇc´ıt´a bigramov´y jazykov´y model.

Pˇr´ıprava a v´ybˇer tr´enovac´ıch dat m´a z´asadn´ı pod´ıl na kvalitˇe jazykov´eho modelu, a tedy i ´uspˇeˇsnosti opravy pˇreklep˚u. Tr´enovac´ı korpus se ˇcasto sestavuje tematicky uˇsit´y na m´ıru dan´e ´uloze. Pokud se napˇr´ıklad ˇreˇsen´a ´uloha zab´yv´a medic´ınou, budeme korpus sestavovat z l´ekaˇrsk´ych ˇcl´ank˚u a skript a slovn´ık bude obsahovat pˇredevˇs´ım l´ekaˇrsk´e term´ıny. Pˇr´ıliˇs ´uzce specializovan´a tr´enovac´ı data a omezen´y slovn´ık zp˚usob´ı, ˇ

ze jazykov´y model bude muset ˇcasto ˇreˇsit probl´em s nezn´am´ymi slovy. O t´eto vadˇe mluv´ıme jako o sn´ıˇzen´e citlivosti modelu.

V pˇr´ıpadˇe, ˇze bude jazykov´y model obsahovat pˇr´ıliˇs rozs´ahl´y slovn´ık, zv´yˇs´ı se poˇcet jeho parametr˚u, ˇr´ıdkost a v´ypoˇcetn´ı n´aroˇcnost ˇreˇsen´e ´ulohy. Pokud nebudeme m´ıt dostateˇcn´y objem dat pro tr´enov´an´ı modelu s vysok´ym poˇctem parametr˚u, budou jejich hodnoty statisticky nevˇerohodn´e. A naopak, nadmˇernˇe objemn´y korpus zp˚usob´ı neˇz´adouc´ı zv´yˇsen´ı v´ypoˇcetn´ı n´aroˇcnosti ´ulohy.

Jak je vidˇet, pˇri tvorbˇe jazykov´eho modelu je nezbytn´e zvaˇzovat mnoho navz´ajem se ovliˇnuj´ıc´ıch hledisek. Nastaven´ı jazykov´eho modelu m´a velk´y pod´ıl na ´uspˇeˇsnosti ˇreˇsen´e ´ulohy.

Jeˇstˇe poznamen´ame, ˇze oprava pˇreklep˚u nen´ı na ˇr´ıdkost tr´enovac´ıch dat a nastaven´ı parametr˚u tolik citliv´a, jako napˇr´ıklad rozpozn´av´an´ı mluven´eho nebo psan´eho slova [2].

3.3.5 Vyhlazov´an´ı

Pˇri tvorbˇe jazykov´eho modelu vych´az´ıme pouze z omezen´eho mnoˇzstv´ı tr´enovac´ıch dat a nedok´aˇzeme pokr´yt vˇsechna moˇzn´a slova a jejich posloupnosti, kter´e se mo- hou v modelovan´em jazyce vyskytnout. V pˇr´ıpadˇe, ˇze se dan´a posloupnost slov nebo

(19)

slovo v tr´enovac´ım korpusu neobjevily, uloˇz´ıme na pˇr´ısluˇsnou pozici v n−gramov´e ma- tice nulovou hodnotu. n−gramov´e matice jsou pak ˇcasto ˇr´ıdk´e a obsahuj´ı velk´y poˇcet nulov´ych hodnot. Pokud by se v testovac´ım korpusu objevila posloupnost slov, pro kte- rou je v jazykov´em modelu uvedena nulov´a hodnota, doˇslo by ke znaˇcn´emu zkreslen´ı v´ysledk˚u. Proto se vyuˇz´ıvaj´ı vyhlazovac´ı algoritmy, jeˇz nulov´ym hodnot´am v matici pˇriˇrad´ı nenulov´e pravdˇepodobnosti. Vyhlazov´an´ı se rovnˇeˇz pouˇz´ıv´a pro ladˇen´ı para- metr˚u jazykov´eho modelu.

Je nutn´e zm´ınit, ˇze vyhlazov´an´ı zp˚usobuje opaˇcn´y probl´em a pˇriˇrad´ı nenulovou hodnotu i velk´emu mnoˇzstv´ı n−gram˚u, kter´e v modelovan´em jazyce neexistuj´ı. I pˇres tento fakt bylo experiment´alnˇe ovˇeˇreno, ˇze pˇresnost oprav se vyhlazen´ım jazykov´eho modelu v´yraznˇe zv´yˇs´ı [2].

Add-One

Add-One je nejjednoduˇsˇs´ı, ale ne pˇr´ıliˇs ´uˇcinn´a metoda vyhlazov´an´ı. Jej´ı princip spoˇc´ıv´a v tom, ˇze ˇcetnost vˇsech n−gram˚u zv´yˇs´ıme o jedna a n´aslednˇe spoˇc´ıt´ame jejich pravdˇepo- dobnost.

Nejdˇr´ıve si princip algoritmu pˇredvedeme na vyhlazov´an´ı unigram˚u. V je velikost slovn´ıku, kter´a odpov´ıd´a poˇctu r˚uzn´ych unigram˚u. Pravdˇepodobnost pro vyhlazen´y unigram se vypoˇc´ıt´a dle vztahu:

P+1(w) = C(w) + 1

N + V . (15)

Pro vyhlazen´y bigram plat´ı:

P+1(wn−1wn) = C(wn−1wn) + 1

C(wn−1) + V . (16)

Tento algoritmus neposkytuje pˇr´ıliˇs dobr´e v´ysledky vyhlazov´an´ı a pouˇz´ıv´a se jen v´yjimeˇcnˇe. Rozdˇeluje pˇr´ıliˇs velk´e mnoˇzstv´ı pravdˇepodobnostn´ı masy. Pravdˇepodobnost pro nevidˇen´e n−gramy je nadhodnocen´a, zat´ımco pro vidˇen´e je podhodnocen´a. Vˇsechny nevidˇen´e n−gramy maj´ı stejnou pravdˇepodobnost.

Add lambda

Tato metoda vych´az´ı pˇr´ımo z Add-One a ˇc´asteˇcnˇe ˇreˇs´ı jej´ı probl´em s rozdˇelen´ım pˇr´ıliˇs velk´eho mnoˇzstv´ı pravdˇepodobnosti. M´ısto jedna se k ˇcetnostem n−gram˚u pˇriˇcte kon- stanta λ v rozsahu od nuly do jedn´e. Nedojde tak k ne´umˇern´emu zv´yhodnˇen´ı ne-

(20)

vidˇen´ych n−gram˚u pˇred vidˇen´ymi. Konstanta se vˇetˇsinou z´ısk´av´a z hold-out dat.

Vztah pro vyhlazen´ı unigramu m´a podobu:

P(w) = C(w) + λ

N + λV . (17)

a obdobnˇe pro bigram:

P(wn−1wn) = C(wn−1wn) + λ

C(wn−1) + λV . (18)

Aˇc tato metoda odstraˇnuje nejpalˇcivˇejˇs´ı probl´emy sv´eho pˇredch˚udce, st´ale mezi nevidˇen´e n−gramy rozdˇeluje stejn´e mnoˇzstv´ı pravdˇepodobnosti. Pod´avan´ymi v´ysledky se nem˚uˇze vyrovnat sofistikovanˇejˇs´ım metod´am.

Witten-Bell

Mezi pokroˇcilejˇs´ı metody vyhlazov´an´ı patˇr´ı Witten-Bell. Metoda je zaloˇzena na myˇslence, ˇ

ze pravdˇepodobnost dosud nevidˇen´ych n−gram˚u m˚uˇze b´yt modelov´ana pomoc´ı pravdˇe- podobnosti, ˇze uvid´ıme n−gram poprv´e. D´ıky tomuto pˇredpokladu mohou b´yt pravdˇepo- dobnosti n−gram˚u s nulov´ym v´yskytem odvozeny od pravdˇepodobnost´ı n−gram˚u s jedn´ım v´yskytem, nebot’ oba jevy jsou si velmi bl´ızk´e.

Celkovou pravdˇepodobnost unigram˚u s nulov´ym v´yskytem z´ısk´ame ze vztahu:

X

i:c=0

pi = T

(N + T ). (19)

N je celkov´y poˇcet unigram˚u a T je poˇcet nenulov´ych r˚uzn´ych unigram˚u.

Tuto pravdˇepodobnost rovnomˇernˇe rozdˇel´ıme mezi nulov´e unigramy, kde Z pˇredstavuje poˇcet r˚uzn´ych nulov´ych unigram˚u:

Z = X

i:c=0

1 (20)

pi = T

Z(N + T )if (ci = 0). (21)

Masu pravdˇepodobnosti, kterou jsme rozdˇelili, mus´ıme ubrat z nenulov´ych uni- gram˚u, a proto pˇrepoˇc´ıt´ame pravdˇepodobnost nenulov´ych unigram˚u pomoc´ı n´asleduj´ıc´ıho vztahu:

(21)

pi = ci

Z(N + T )if (ci > 0). (22)

Pro bigramy plat´ı podobn´e vztahy, ale zmˇen´ı se v´yznam symbol˚u. Z(wx) je poˇcet r˚uzn´ych nulov´ych bigram˚u zaˇc´ınaj´ıc´ıch slovem wx, T (wx) pˇredstavuje poˇcet r˚uzn´ych ne- nulov´ych bigram˚u zaˇc´ınaj´ıc´ıch slovem wxa N (wx) urˇcuje poˇcet bigram˚u, kter´e zaˇc´ınaj´ı slovem wx. Celkovou pravdˇepodobnost, kterou budeme rozdˇelovat, uˇc´ıme za vztahu:

X

i:c(wxwi)=0

p(wi|wx) = T (wx)

N (wx) + T (wx). (23) Tuto pravdˇepodobnost rozdˇel´ıme mezi nulov´e bigramy:

Z(wx) = X

i:c(wxwi)=0

1, (24)

p(wi|wi−1) = T (wi−1)

Z(wi−1)(N + T (wi−1))if (ci > 0). (25) A kv˚uli pˇrerozdˇelen´ı pravdˇepodobnosti pˇrepoˇc´ıt´ame a sn´ıˇz´ıme hodnoty nenulov´ych bigram˚u:

X

i:c(wxwi)>0

p(wi|wx) = c(wxwi)

c(wx) + T (wx). (26) Pravdˇepodobnosti jsou rozdˇelov´any na z´akladˇe kontextu jednotliv´ych slov a nebu- dou pro vˇsechny n−gramy stejn´e, jak tomu bylo u pˇredchoz´ıch metod.

3.3.6 Kvalita jazykov´eho modelu

Existuje velk´e mnoˇzstv´ı postup˚u, jak vytvoˇrit jazykov´y model, a podobn´a situace plat´ı i pro metody vyhlazov´an´ı. Abychom mohli porovnat r˚uzn´e jazykov´e modely, je potˇreba m´ıt k dispozici metodu pro mˇeˇren´ı kvalitu jazykov´eho modelu.

Asi nejlepˇs´ım zp˚usobem by bylo r˚uzn´e modely zapojit do korektoru pˇreklep˚u, prov´est sadu test˚u a porovnat v´ysledky ´uspˇeˇsnosti oprav. Takov´y pˇr´ıstup je vˇsak velmi zdlouhav´y a ˇcasto je v´yhodn´e mˇeˇrit kvalitu jazykov´eho modelu oddˇelenˇe od ostatn´ıch ˇ

c´ast´ı korektoru.

Nejpouˇz´ıvanˇejˇs´ı m´ırou pro ohodnocen´ı kvality jazykov´eho modelu je veliˇcina zvan´a perplexita. Tu m˚uˇzeme pˇreloˇzit do ˇceˇstiny jako sloˇzitost a je definov´ana:

(22)

P P = 1

KpP (w1w2. . . wK). (27) Perplexitu si m˚uˇzeme pˇredstavit jako pr˚umˇern´y poˇcet slov, mezi kter´ymi se korek- tor rozhoduje v procesu opravy, pouˇz´ıv´a-li dan´y jazykov´y model. Rovnˇeˇz m˚uˇzeme ˇr´ıci, ˇ

ze perplexita dan´eho jazykov´eho modelu odpov´ıd´a velkosti slovn´ıku ekvivalentn´ıho ja- zykov´eho uniformn´ıho modelu. Uniformn´ı model je sloˇzen´y ze stejnˇe pravdˇepodobn´ych slov n´asleduj´ıc´ıch za sebou v libovoln´em, ale stejnˇe pravdˇepodobn´em poˇrad´ı.

Perplexita se ˇcasto poˇc´ıt´a pro tr´enovac´ı i pro testovac´ı korpus.

Mezi hlavn´ı pˇrednosti perplexity patˇr´ı nez´avislost na velikosti korpusu. M˚uˇzeme tak porovn´avat modely s rozd´ılnou velikost´ı.

Pokud zlogaritmujeme perplexitu logaritmem se z´akladem 2, z´ısk´ame dalˇs´ı d˚uleˇzitou veliˇcinu – entropii, kter´a vyjadˇruje m´ıru neuspoˇr´adanosti:

LP = log2P P = −1 K

K

X

i=1

log2P (wi|w1w2. . . wi−1). (28)

Velk´a hodnota perplexity m˚uˇze poukazovat na nekvalitn´ı model, ale tak´e m˚uˇze spoˇc´ıvat ve velk´e neuspoˇr´adanosti (entropii) modelovan´eho jazyka. Jazyk s volnˇejˇs´ımi pravidly bude m´ıt obecnˇe vˇetˇs´ı m´ıru neuspoˇr´adanosti neˇz jazyk s pevn´ymi vazbami[3].

3.3.7 Jazykov´e modelov´an´ı ˇceˇstiny

Popsan´e metody tvorby jazykov´eho modelu a vyhlazov´an´ı jsou urˇceny pˇredevˇs´ım s ohle- dem na angliˇctinu. Probl´em ˇr´ıdkosti tr´enovac´ıch dat je podstatnˇe z´avaˇznˇejˇs´ı pro mo- delov´an´ı ˇcesk´eho jazyka.

Ohebnost

Ceˇstina, podobnˇˇ e jako ostatn´ı slovansk´e jazyky, patˇr´ı mezi vysoce ohebn´e jazyky. To znamen´a, ˇze pro kaˇzd´y z´akladn´ı tvar (lemma) existuje velk´e mnoˇzstv´ı morfologick´ych tvar˚u. Vlivem tˇechto zmˇen m˚uˇze teoreticky vzniknout aˇz 300 morfologick´ych vari- ant pro sloveso, 20 variant pro podstatn´e jm´eno a 200 variant pro pˇr´ıdavn´e jm´eno.

Ve skuteˇcnosti jsou tato ˇc´ısla podstatnˇe niˇzˇs´ı. Pˇresto pˇredstavuje ohebnost z´avaˇzn´y probl´em, nebot’ kaˇzd´y tvar je v modelu uloˇzen jako samostatn´e slovo. Velikost slovn´ıku proto s nar˚ustaj´ıc´ım objemem tr´enovac´ıho korpusu roste a zp˚usob´ı v´yznamn´e zv´yˇsen´ı poˇctu parametr˚u n−gramov´eho modelu, kter´y pak trp´ı nedostatkem dat pro natr´enov´an´ı.

(23)

Pokusy o vytvoˇren´ı modelu zaloˇzen´eho na morfologick´ych principech se uk´azaly b´yt jako neefektivn´ı. Za cenu znaˇcn´eho zv´yˇsen´ı sloˇzitosti implementace nedoˇslo k v´yrazn´emu zlepˇsen´ı ´uˇcinnosti na testovac´ıch ´uloh´ach[2].

Voln´y poˇr´adek slov ve vˇetˇe

Dalˇs´ı nepˇr´ıjemnou vlastnost´ı pro jazykov´e modelov´an´ı ˇceˇstiny je voln´y poˇr´adek slov ve vˇetˇe. Po bliˇzˇs´ım prozkoum´an´ı se ukazuje, ˇze jde sp´ıˇse o slovosled variabiln´ı, kter´y se ˇr´ıd´ı sadou ust´alen´ych pravidel. Aby tato variabilita nemˇela negativn´ı vliv na srozumitelnost sdˇelen´ı, vyuˇz´ıv´a ˇceˇstina v hojn´e m´ıˇre shodu mezi morfologick´ymi kategoriemi jednot- liv´ych vˇetn´ych ˇclen˚u. Napˇr´ıklad podmˇet se mus´ı shodovat s pˇr´ısudkem v osobˇe (muˇz psal), ˇc´ısle a rodu, podstatn´e jm´eno a jeho pˇr´ıvlastek mus´ı m´ıt stejn´y p´ad, ˇc´ıslo a rod (mlad´e d´ıvce). Nab´ız´ı se tedy vyuˇzit´ı morfologick´e shody pˇri jazykov´em modelov´an´ı.

Ke kaˇzd´emu slovu m˚uˇzeme pˇripojit znaˇcku s popisem jednotliv´ych morfologick´ych ka- tegori´ı. Na z´akladˇe tˇechto znaˇcek m˚uˇzeme shlukovat slova do tˇr´ıd a jazyk modelovat pomoc´ı z´avislost´ı mezi tˇr´ıdami m´ısto mezi slovy. Takto vytvoˇren´y model vykazuje vlast- nosti typick´e pro modely zaloˇzen´e na tˇr´ıd´ach – m´a menˇs´ı poˇcet parametr˚u a m˚uˇze b´yt robustnˇe natr´enov´an, ovˇsem za cenu ztr´aty rozliˇsovac´ı schopnosti. Pˇri testov´an´ı tohoto modelu na spisovn´e ˇceˇstinˇe bylo dosaˇzeno slibn´ych v´ysledk˚u [2].

Nespisovn´y jazyk

V´aˇzn´ym probl´emem specifick´ym pro jazykov´e modelov´an´ı ˇceˇstiny je znaˇcn´y rozd´ıl mezi spisovnou a nespisovnou ˇceˇstinou. Vzhledem k tomu, ˇze v ˇceˇstinˇe dominuje fonetick´y princip, nejsou nespisovn´a slova pouh´ymi v´yslovnostn´ımi variantami slov spisovn´ych, ale tvoˇr´ı samostatn´e morfologick´e tvary (aut’´ak, starej ), coˇz nad´ale zvˇetˇsuje rozsah slovn´ıku.

3.3.8 Jazykov´e modelov´an´ı pro vyhled´avaˇc

Jazykov´y model pouˇzit´y v ´uloze opravy dotaz˚u zad´avan´ych do vyhled´avaˇce se buduje z korpusu sestaven´eho z dotaz˚u zad´avan´ych do vyhled´avaˇce. S pouˇzit´ım takov´eho typu dat se zajist´ı, ˇze jazykov´y model bude vˇernˇeji odpov´ıdat povaze ˇreˇsen´e ´ulohy. Data z´ıskan´a z dotaz˚u jsou vˇsak velmi specifick´a a zp˚usobuj´ı ˇradu probl´em˚u, kter´e zapˇr´ıˇcin´ı dalˇs´ı zv´yˇsen´ı ˇr´ıdkosti tr´enovac´ıch dat.

V mnoha ´uloh´ach se pro tvorbu jazykov´ych model˚u vyuˇz´ıvaj´ı tematicky zamˇeˇren´e korpusy s omezen´ym slovn´ıkem. Takov´y pˇr´ıstup nen´ı v ˇreˇsen´e ´uloze moˇzn´y, nebot’

(24)

zad´avan´e dotazy pokr´yvaj´ı ˇsirok´y z´abˇer obor˚u a model mus´ı b´yt vybaven obs´ahl´ym slovn´ıkem.

Pro tr´enovac´ı data je charakteristick´y i velk´y v´yskyt cizojazyˇcn´ych v´yraz˚u, pˇrev´aˇznˇe anglick´ych. V zad´avan´ych dotazech se ˇcasto objevuj´ı n´azvy obchodn´ıch znaˇcek a v´yrobk˚u, jejich modelov´ych a typov´ych ˇrad. ˇRada uˇzivatel˚u vkl´ad´a do vyhled´avaˇce i www adresy.

Ve vˇetˇsinˇe pˇr´ıpadech neproˇsla tr´enovac´ı data ˇz´adnou jazykovou kontrolou a obsahuj´ı mnoˇzstv´ı pˇreklep˚u a chyb. Tyto chyby nen´ı moˇzn´e technicky opravit nebo odstranit kv˚uli ˇcast´emu v´yskytu ciz´ıch slov. Kaˇzd´a chyba pak tvoˇr´ı samostatn´y slovn´ı tvar.

Problematick´ym a ˇcast´ym jevem je vynech´av´an´ı diakritiky. Pokud v d˚usledku t´eto chyby z´ısk´ame nov´y slovn´ı tvar (ˇreˇricha na rericha), dojde k neˇz´adouc´ımu zv´yˇsen´ı parametr˚u jazykov´eho modelu. Vynech´an´ı diakritiky, jej´ımˇz zavinˇen´ım vznikne korektn´ı zn´am´e slovo (bˇeˇz na bez ), zp˚usob´ı zkreslen´ı parametr˚u.

V ˇradˇe dotaz˚u se setk´ame i ˇceskou fonetickou transkripc´ı anglick´ych slov, napˇr´ıklad:

google na gugl, notebook na noutbuk nebo cool na kul. Tyto tvary opˇet zvyˇsuj´ı poˇcet parametr˚u modelu.

Specifick´ym rysem dat z´ıskan´ych z dotaz˚u je kr´atk´a historie slov, zastoupen´ı slovn´ıch druh˚u a skladba. Uˇzivatelsk´y dotaz se v pr˚umˇeru skl´ad´a ze tˇr´ı slov, coˇz je m´enˇe neˇz pr˚umˇern´a d´elka ˇcesk´e vˇety. Mezi slovn´ımi druhy pˇrevaˇzuj´ı podstatn´a jm´ena, pˇr´ıdavn´a jm´ena a pˇr´ıslovce. V´yskyt sloves je v´yraznˇe niˇzˇs´ı neˇz v bˇeˇzn´em jazyce. Mezi vˇetn´ym vztahy pˇrevaˇzuje pˇr´ıvlastkov´a a pˇr´ısloveˇcn´a vazba. Jak se uveden´e skuteˇcnosti projev´ı na kvalitˇe jazykov´eho modelu, nebylo zjiˇstˇeno.

Pouˇzit´y tr´enovac´ı korpus je synchronn´ı a jeho sloˇzen´ı odpov´ıd´a aktu´aln´ımu spoleˇcen- sk´emu, kulturn´ımu, sportovn´ımu, politick´emu a technick´emu dˇen´ı. Pro zachov´an´ı ´uˇci- nnosti je vhodn´e korpus pravidelnˇe aktualizovat.

3.4 Chybov´ y model

Chybov´y model se skl´ad´a z pravidel a vztah˚u popisuj´ıc´ıch, jak se ze spr´avn´eho slova stane chyba.

Pomoc´ı chybov´eho modelu se pokus´ıme z chybnˇe napsan´eho tvaru odvodit seznam kandid´at˚u slova, kter´e chtˇel uˇzivatel p˚uvodnˇe napsat. Seznam moˇzn´ych kandid´at˚u m˚uˇze b´yt velmi rozs´ahl´y, a proto je mus´ıme umˇet ohodnotit. Protoˇze se v ˇreˇsen´e ´uloze drˇz´ıme pˇredevˇs´ım stochastick´ych princip˚u, budeme kandid´aty ohodnocovat pˇredevˇs´ım pravdˇepodobnost´ı.

(25)

3.4.1 Klasifikace chyb

Chyby m˚uˇzeme rozdˇelit pomoc´ı r˚uzn´ych hledisek do nˇekolika kategori´ı. R˚uzn´e typy chyb vyˇzaduj´ı specifick´e metody k jejich detekci a korekci.

Literatura zab´yvaj´ıc´ı se opravou pˇreklep˚u nejˇcastˇeji rozdˇeluje chyby podle pisate- lova zavinˇen´ı na kognitivn´ı chyby a pˇreklepy. U pˇreklep˚u uˇzivatel zn´a spr´avn´y tvar slova, ale napˇr´ıklad pˇrehmatem na kl´avesnici jej napsal chybnˇe (p5eklep). Kognitivn´ı chyby jsou zp˚usobeny neznalost´ı spr´avn´eho tvaru slova (bilina) a jedn´a se pˇredevˇs´ım o gramatick´e chyby.

Speci´aln´ım druhem kognitivn´ıch chyb jsou chyby homofonn´ı, kdy pisatel zamˇeˇnuje znaky, nebo dokonce cel´a slova za stejnˇe znˇej´ıc´ı. Tento druh chyb je charakteris- tick´y zejm´ena pro angliˇctinu a francouzˇstinu[4]. Pˇr´ıklady nˇekter´ych anglick´ych z´amˇen jsou: base a bass, two a too, break a brake, piece a peace. Existuje nˇekolik algoritm˚u (Soundex, Metaphone), kter´e se speci´alnˇe zamˇeˇruj´ı na fonetick´e chyby a dosahuj´ı vysok´e ´uspˇeˇsnosti. Rozˇs´ıˇren´y n´astroj Aspell s ´uspˇechem vyuˇz´ıv´a algoritmu Metaphone pro korekci anglick´ych text˚u. V ˇcesk´em jazyce je frekvence v´yskytu tohoto druhu chyb zanedbateln´a a pˇrev´aˇznˇe se jedn´a o z´amˇenu s a z.

Znalost, zda je chyba kognitivn´ı nebo pˇreklep, by n´am usnadnila korekci. U kogni- tivn´ıch chyb bychom se zamˇeˇrili na gramatick´e vztahy a u pˇreklep˚u m˚uˇzeme vych´azet z rozloˇzen´ı kl´avesnice. Bohuˇzel ve vˇetˇsinˇe pˇr´ıpadech nejsme schopni urˇcit, o jak´y druh chyby se jedn´a, proto v r´amci diplomov´e pr´ace provedeme zjednoduˇsen´ı a oba typy chyb budeme povaˇzovat za pˇreklepy.

Velmi problematick´a je kategorie chyb zp˚usobuj´ıc´ı rozdˇelen´ı (roz vod ) nebo spo- jen´ı slov (vpˇr´ırodˇe). K jejich korekci je potˇreba pouˇz´ıt sofistikovan´e metody. Statistiky ukazuj´ı, ˇze tento druh chyb nen´ı pˇr´ıliˇs ˇcast´y, a proto je ˇrada korektor˚u ignoruje[5].

Mezi nejz´aludnˇejˇs´ı patˇr´ı chyby, jejichˇz v´ysledkem je opˇet spr´avn´e slovo. V angliˇctinˇe se tento druh oznaˇcuje term´ınem real-word errors. Takovou chybu z´ısk´ame napˇr´ıklad, pokud ve slovˇe p´ıseˇn zamˇen´ıme ˇn za k, a z´ısk´ame tak p´ısek. S t´ımto druhem chyb se um´ı korektor ´uˇcinnˇe vypoˇr´adat pouze v pˇr´ıpadˇe, ˇze vyuˇzije kontext okoln´ıch slov. Pak je zˇrejm´e, ˇze hudebn´ık sloˇzil p´ıseˇn.

3.4.2 Pˇr´ıstup na z´akladˇe editaˇcn´ı vzd´alenosti

Abychom umˇeli popsat vz´ajemnou odliˇsnost dvou r˚uzn´ych ˇretˇezc˚u, mus´ıme zav´est vhodnou metriku. Metriky pouˇz´ıvan´e v korektorech pˇreklep˚u b´yvaj´ı ˇcasto zaloˇzen´e na minim´aln´ı editaˇcn´ı vzd´alenosti. Editaˇcn´ı vzd´alenost se definuje pomoc´ı sady ope-

(26)

rac´ı, kter´e umoˇzˇnuj´ı pˇreveden´ı jednoho ˇretˇezce na druh´y. Takto definovan´a metrika je vhodn´a pro popis pˇreklep˚u, nebot’ jednotliv´e operace ˇcasto koresponduj´ı s r˚uzn´ymi druhy pˇreklep˚u. Nejpouˇz´ıvanˇejˇs´ı metrikou je Damerau-levenshteinova vzd´alenost.

Damerau-levenshteinova vzd´alenost. Jedn´a se o minim´aln´ı poˇcet editaˇcn´ıch ope- rac´ı, kter´e mus´ıme vykonat, abychom pˇrevedli ˇretˇezec w na c, kde editaˇcn´ı operace jsou z´amˇena (pˇreps´an´ı) znak˚u, smaz´an´ı znaku, vloˇzen´ı znaku a transpozice dvou sousedn´ıch znak˚u.

Tabulka 1. Pˇr´ıklady editaˇcn´ıch operac´ı Editaˇcn´ı operace chyba

z´amˇena chiba

smaz´an´ı ch ba

vloˇzen´ı chyrba transpozice chbya

V literatuˇre se ˇcasto setk´ame i s pojmem Levenshteinova vzd´alenost. Ta se od Damerau-levenshteinovy vzd´alenosti liˇs´ı t´ım, ˇze mezi editaˇcn´ı operace nezaˇrazuje trans- pozici znak˚u.

Algorimus pro v´ypoˇcet minim´aln´ı editaˇcn´ı vzd´alenosti si pop´ıˇseme a pˇredvedeme pro Levenshteinovu vzd´alenost, nebot’ je n´azornˇejˇs´ı a jednoduˇsˇs´ı. S drobnou ´upravou lze algoritmus vyuˇz´ıt i pro v´ypoˇcet Damerau-levenshteinovy vzd´alenosti.

Algoritmus pro v´ypoˇcet Levenshteinovy vzd´alenosti

Pro v´ypoˇcet Levenshteinovy vzd´alenosti se pouˇz´ıv´a algoritmus zaloˇzen´y na principu dynamick´eho programov´an´ı. Dynamick´e programov´an´ı je oznaˇcen´ı pro tˇr´ıdu tabul- kovˇe ˇr´ızen´ych algoritm˚u, kter´e ˇreˇs´ı rozs´ahl´e probl´emy vhodnou kombinac´ı ˇreˇsen´ı pod- probl´em˚u, jejichˇz v´ysledky jsou uloˇzeny v tabulce.

Algoritmus pro v´ypoˇcet Levenshteinovy vzd´alenosti nejdˇr´ıve vytvoˇr´ı matici, ve kter´e poˇcet ˇr´adk˚u odpov´ıd´a d´elce zdrojov´eho ˇretˇezce a poˇcet sloupc˚u d´elce c´ılov´eho ˇretˇezce.

Kaˇzd´y prvek matice na pozici i a j bude obsahovat vzd´alenost mezi prvn´ımi i znaky zdrojov´eho a prvn´ımi j znaky c´ılov´eho ˇretˇezce. V´ypoˇcet prvk˚u matice zaˇc´ın´a v levn´em horn´ım rohu a konˇc´ı v prav´em doln´ım rohu, ve kter´em je uloˇzena v´ysledn´a minim´aln´ı vzd´alenost. Hodnota jednotliv´ych prvk˚u se vˇzdy urˇc´ı ze tˇr´ı okoln´ıch jednoduchou funkc´ı, kdy vyb´ır´ame nejmenˇs´ı ze tˇr´ı moˇzn´ych cest pˇri pr˚uchodu matic´ı:

(27)

matice[i, j] = min









matice[i − 1, j] + cena mazani matice[i − 1, j − 1] + cena zameny matice[i, j − 1] + cena vlozeni

(29)

Algoritmus zapsan´y v pseudok´odu vypad´a n´asledovnˇe:

function levenshtein_distance(target, source) returns min_distance n= length(target)

m = length(source)

create a distance matrix distance[n+1, m+1]

distance[0,0] = 0

for each column i from 0 to n do for each column j from 0 to m do

distance[i, j] = min(distance[i-1,j] + DEL_COST, //deletion distance[i-1,j-1] + SUB_COST, //subtition distance[i,j-1] + INS_COST)) //insertion Na obr´azku 1. je uveden pˇr´ıklad v´ypoˇctu vzd´alenosti slov hyab a chyba. V´yznam ˇsipek bude osvˇetlen z´ahy.

Casto potˇrebujeme nejen vˇˇ edˇet jak´a je mezi ˇretˇezci vzd´alenost, ale i jak se vz´ajemnˇe liˇs´ı. K popisu rozd´ıl˚u mezi ˇretˇezci se pouˇz´ıvaj´ı nejˇcastˇeji dva zp˚usoby: zarovn´an´ı a se- znam operac´ı.

Zarovn´an´ı – Pˇri zarovn´an´ı uprav´ıme ˇretˇezce tak, aby mˇely stejnou d´elku. Pˇri operaci smaz´an´ı vloˇz´ıme pr´azdn´y znak do c´ılov´eho slova (tunel a t nel ), pˇri vkl´ad´an´ı do slova zdrojov´eho (tu nel tuunel ).

Seznam operac´ı – Posloupnost editaˇcn´ıch operac´ı potˇrebn´ych k tomu, abychom pˇre- vedli zdrojov´e slovo na c´ılov´e.

Oba popisy rozd´ıl˚u mezi ˇretˇezci snadno z´ısk´ame z matice pro v´ypoˇcet minim´aln´ı editaˇcn´ı vzd´alenosti. Zaˇcneme v prav´em doln´ım rohu a vˇzdy budeme vyb´ırat nejmenˇs´ı ze tˇr´ı moˇzn´ych cest, dokud se nedostaneme do lev´eho horn´ıho rohu. Krok vlevo znamen´a pˇrid´an´ı znaku, pˇri kroku vpravo znak maˇzeme a cestou po diagon´ale znak mˇen´ıme.

Mus´ıme d´at pozor na to, ˇze zarovn´an´ı a seznam operac´ı z´ısk´ame v opaˇcn´em poˇrad´ı a mus´ıme je otoˇcit.

(28)

Obr´azek 1. Pˇr´ıklad v´ypoˇctu levenstainovy vzd´alenosti

V p˚uvodn´ım pˇr´ıkladu jsou nakresleny ˇsipky, kter´e zobrazuj´ı moˇzn´e cesty. Jak je vidˇet, cesta nemus´ı b´yt vˇzdy jednoznaˇcn´a, a m˚uˇzeme tak z´ıskat nˇekolik r˚uzn´ych za- rovn´an´ı a seznam˚u operac´ı.

Jestliˇze se v uveden´em pˇr´ıkladu vyd´ame po nevyplnˇen´e ˇsipce, z´ısk´ame n´asleduj´ıc´ı zarovn´an´ı:

hyab a chyba a seznam operac´ı:

• vloˇzen´ı c

• z´amˇena a za b

• z´amˇena b za a.

Nyn´ı se vr´at´ıme k Damerau-levenshteinovy vzd´alenosti. Jak uˇz bylo naps´ano v´yˇse, liˇs´ı se od Levenshteinovy vzd´alenosti t´ım, ˇze nav´ıc obsahuje operaci transpozice, kterou jednoduˇse dopln´ıme.

(29)

function damerau_levenshtein_dist(target, source) returns min_dist n = length(target)

m = length(source)

create a distance matrix distance[n+1, m+1]

distance[0,0] = 0

for each column i from 0 to n do for each column j from 0 to m do

distance[i, j] = min(distance[i-1,j] + DEL_COST, //deletion distance[i-1,j-1] + SUB_COST, //subtition distance[i,j-1] + INS_COST)) //insertion if(i > 1 and j > 1 and source[i] = targer[j-1]

and source[i-1] = target[j]) then distance[i,j] = min(distance[i, j],

distance[i-2,j-2]+TRN_COST)//transposition V´yˇse uveden´y pˇr´ıklad by mˇel Damerau-levenshteinovu vzd´alenost 2 a seznam ope- rac´ı by byl:

• vloˇzen´ı c

• transpozice b za a.

Cena operac´ı

Vˇetˇsinou pˇredpokl´ad´ame, ˇze cena vˇsech operac´ı je stejn´a, tedy 1. V nˇekter´e literatuˇre se doporuˇcuje zv´yˇsit cenu z´amˇeny znak˚u na 2, nebot’ jedna z´amˇena nahrad´ı dvojici operac´ı pˇrid´an´ı a smaz´an´ı[4]. ˇCasto se vyuˇz´ıv´a i komplexnˇejˇs´ıho ohodnocen´ı operac´ı, napˇr´ıklad pomoc´ı pravdˇepodobnost´ı. Pˇri ohodnocen´ı pravdˇepodobnost´ı uˇz nebudeme o mluvit o minim´aln´ı editaˇcn´ı vzd´alenosti, ale o nejpravdˇepodobnˇejˇs´ım zarovn´an´ı ˇretˇezc˚u. Nej- pravdˇepodobnˇejˇs´ıho zarovn´an´ı vyuˇz´ıv´ame i v naˇsem korektoru.

Z´ısk´an´ı kandid´at˚u

Jedn´ım z ´ukolu chybov´eho modelu je odvozen´ı seznamu moˇzn´ych kandid´at˚u na opravu z chybn´eho slova. Pˇri metodˇe zaloˇzen´e na minim´aln´ı editaˇcn´ı vzd´alenosti samozˇrejmˇe vyuˇzijeme editaˇcn´ı operace.

Seznam kandid´at˚u z´ısk´ame k-n´asobnou aplikac´ı vˇsech moˇzn´ych variant editaˇcn´ıch operac´ı na opravovan´e slovo, kde k je zvolen´a editaˇcn´ı vzd´alenost. Takto vygenerovan´y

(30)

seznam obsahuje vˇsechny moˇzn´e slovn´ı tvary do editaˇcn´ı vzd´alenosti k, ze kter´ych mohlo opravovan´e slovo vzniknout. To znamen´a, ˇze napˇr´ıklad pro k = 1 pˇri ope- raci vkl´ad´an´ı vloˇz´ıme postupnˇe na vˇsechny pozice opravovan´eho slova vˇsechny znaky pouˇzit´e abecedy. Pˇri maz´an´ı odebereme z kaˇzd´e pozice jeden znak slova.

V´ysledn´y seznam je velmi rozs´ahl´y a jen pro vzd´alenost 1 existuje (2r + 2)n + r moˇzn´ych tvar˚u, kde n je d´elka slova a r poˇcet znak˚u pouˇzit´e abecedy. Pokud bychom uvaˇzovali pouze anglickou abecedu, bude se jednat o 54n + 26 slovn´ıch tvar˚u. V pˇr´ıpadˇe ˇ

cesk´e abecedy poˇcet stoupne dokonce na 88n + 43.

Ohodnocen´ı kandid´at˚u

Ohodnocov´an´ı kandid´at˚u pomoc´ı chybov´eho modelu nen´ı nic jin´eho neˇz v´ypoˇcet nej- pravdˇepodobnˇejˇs´ıho zarovn´an´ı kandid´ata a p˚uvodn´ıho slova. Pˇri ohodnocov´an´ı kan- did´at˚u budeme vych´azet z parametr˚u, podle kter´ych byl kandid´at vygenerov´an. Kan- did´ata lze ohodnotit r˚uznou ´urovn´ı pˇresnosti. Pˇri nejjednoduˇsˇs´ım ohodnocen´ı vezmeme v potaz pouze editaˇcn´ı vzd´alenost.

Pro zv´yˇsen´ı pˇresnosti m˚uˇzeme uvaˇzovat i typy editaˇcn´ıch operac´ı pouˇzit´ych pˇri generov´an´ı kandid´ata, napˇr´ıklad jestli byl kandid´at z´ısk´an smaz´an´ım, nebo vloˇzen´ım znaku.

Pokud bychom chtˇeli dos´ahnout dalˇs´ıho zv´yˇsen´ı pˇresnosti, zahrneme do ohodnocen´ı i znaky, na kter´e byly editaˇcn´ı operace aplikov´any, pˇr´ıpadnˇe i jejich pozici ve slovˇe.

V tomto pˇr´ıpadˇe vyuˇzijeme znalosti, kdy v´ıme, ˇze z´amˇena znak˚u i a y je mnohem ˇ

castˇejˇs´ı neˇz napˇr´ıklad z´amˇena r za t nebo r za y.

Vzorec pro v´ypoˇcet ohodnocen´ı kandid´ata dle chybov´eho modelu vypad´a n´asledovnˇe:

P (w|c) =

l

Y

i=1 k

Y

j=1

P (eij), (30)

kde k je editaˇcn´ı vzd´alenost a l ´uroveˇn pˇresnosti.

Nˇekter´e pokroˇcilejˇs´ı metody s ´uspˇechem vyuˇz´ıvaj´ı k ohodnocen´ı i kontext okoln´ıch znak˚u a mohou vyuˇz´ıt znalosti, kdy napˇr´ıklad vˇed´ı, ˇze y je ˇcastˇeji smazan´e po b neˇz po a.

(31)

Tr´enovan´ı chybov´eho modelu

Pˇri tr´enovan´ı chybov´eho modelu nejˇcastˇeji vyuˇz´ıv´ame seznam dvojic, kter´e se skl´adaj´ı vˇzdy ze spr´avn´eho tvaru a pˇreklepu. Na z´akladˇe tohoto seznamu pak udˇel´ame statis- tickou anal´yzu chyb, kterou pouˇzijeme na tvorbu chybov´eho modelu.

3.4.3 Pˇr´ıstup na z´akladˇe fonetick´e podobnosti

Pˇrestoˇze metody zaloˇzen´e na fonetick´e podobnosti nejsou pˇr´ıliˇs ´uˇcinn´e pro ˇcesk´y ja- zyk, s ´uspˇechem se pouˇz´ıvaj´ı pro opravy anglick´ych text˚u. Tyto metody jsou ˇcasto zmiˇnov´any v literatuˇre vˇenuj´ıc´ı se opravˇe pˇreklep˚u a setk´ame se s nimi i v ˇrade do- stupn´ych korektor˚u, napˇr´ıklad v Aspellu. Proto si o dvou z nich ˇrekneme nˇekolik slov a kr´atce si je pop´ıˇseme.

Soundex

Tento algoritmus vznikl jiˇz v roce 1922 a slouˇzil pro indexaci jmen v kartot´ek´ach pro telefonn´ı oper´atory. Jm´ena se indexovala podle v´yslovnosti, a oper´ator tak mohl vyhledat z´aznam volaj´ıc´ıho rychleji, neˇz kdyby se jm´eno hl´askovalo.

Algoritmus pˇrevede kaˇzd´e slovo na ˇctyˇrznakov´y k´od, kter´y zaˇc´ın´a p´ısmenem n´asledo- van´ym tˇremi ˇc´ıslicemi. K´od se z´ısk´a tak, ˇze se prvn´ı p´ısmeno znaku ponech´a a ostatn´ı se pˇrevedenou podle tabulky 2 na ˇc´ısla. Znaky, kter´e nejsou v tabulce, se vynechaj´ı, stejnˇe jako po sobˇe se opakuj´ıc´ı ˇc´ıslice, vyjma prvn´ı. Z takto z´ıskan´eho tvaru se ponechaj´ı pouze prvn´ı ˇctyˇri znaky. V pˇr´ıpadˇe, ˇze je k´od pˇr´ıliˇs kr´atk´y, dopln´ı se nulami. Napˇr´ıklad pro jm´eno Robert bude k´od R163.

Tabulka 2. Pravidla pˇrevodu Soundex

Znak K´od

A, E, I, O, U, H, W, Y -

B, F, P, V 1

C, G, J, K, Q, S, X, Z 2

D,T 3

L 4

M, N 5

R 6

V pˇr´ıpadˇe, ˇze bychom chtˇeli vyuˇz´ıt Soundex pro modelov´an´ı chyb, pak se- znam kandid´at˚u na opravu sestav´ıme ze slov se stejn´ym k´odem. Soundex neumoˇzˇnuje

(32)

kandid´aty ohodnotit.

Pˇrestoˇze je Soundex zastaral´y a pro opravu chyb t´emˇeˇr nepouˇziteln´y, byl prvn´ı a stal se vzorem pro modern´ı algoritmy zaloˇzen´ymi na fonetick´e podobnosti.

Metaphone

Metaphone vych´az´ı z algoritmu Soundex a opravuje ˇradu jeho nedostatk˚u. Posky- tuje pˇresnˇejˇs´ı fonetick´e k´odovan´ı slov, nebot’ vyuˇz´ıv´a propracovanˇejˇs´ı a rozs´ahlejˇs´ı sadu pravidel pro pˇrepis v´yslovnosti. Z´akladem algoritmu je ˇsestn´actiznakov´a abeceda: B X S K J T F H L M N P R 0 W Y. Pravidla nebudeme kv˚uli jejich rozsahu uv´adˇet, ale daj´ı se naj´ıt napˇr´ıklad na [6]. V´ysledn´y k´od slova nem´a na rozd´ıl od Soundex pevnˇe stanovenou d´elku.

V chybov´em modelu bychom vyuˇzili Metaphone podobnˇe jako Soundex, kde kandid´aty z´ısk´ame jako slova se stejn´ym k´odem. Metaphone je velmi v´ykonn´y algo- ritmus a s ´uspˇechem je vyuˇz´ıv´an v programu Aspell.

3.4.4 Dalˇs´ı pˇr´ıstupy

V literatuˇre vˇenuj´ıc´ı se korektuˇre pˇreklep˚u ˇcasto naraz´ıme na ˇradu dalˇs´ıch metod.

Vˇetˇsinou se vˇsak jedn´a o obmˇenu nebo kombinaci dvou v´yˇse uveden´ych princip˚u. Na- jdou se vˇsak i metody v´yraznˇe odliˇsn´e od tˇech, se kter´ymi jsme se doposud sezn´amili.

n-gramov´y pˇr´ıstup

V chybov´em modelov´an´ı budeme pod term´ınem n−gram rozumˇet posloupnost znak˚u.

Napˇr´ıklad slovo fakta bude rozdˇeleno na n´asleduj´ıc´ı bigramy: -f fa ak kt ta a- a tri- gramy: -fa fak akt kta ta-. n−gramov´y pˇr´ıstup zahrnuje celou ˇsk´alu r˚uzn´ych metod jak deterministick´ych, tak stochastick´ych.

Pokud bychom chtˇeli pouˇz´ıt n−gramov´y pˇr´ıstup ke z´ısk´an´ı kandid´at˚u, museli bychom napˇr´ıklad z chybov´e anal´yzy zjistit jak´e n−gramy se ˇcasto zamˇeˇnuj´ı, nebo bychom mohli vyuˇz´ıt editaˇcn´ı vzd´alenosti, na opravovan´e slovo aplikovat editaˇcn´ı operace a n´as- lednˇe jej rozloˇzit na n−gramy.

Ohodnocen´ı je moˇzn´e udˇelat podle znakov´eho n−gramov´eho modelu nebo urˇcit podobnost kandid´ata s p˚uvodn´ım slovem. Podle nejjednoduˇsˇs´ıho vztahu se podob- nost dvou n−gram˚u spoˇc´ıt´a jako poˇcet shodn´ych n−gram˚u dˇelen´ych celkov´ym poˇctem n−gram˚u.

(33)

n−gramov´e metody nejsou pˇr´ıliˇs ´uˇcinn´e na kr´atk´a slova a nefunguj´ı na asijsk´e jazyky.

Umˇel´a inteligence

Vˇetˇsina ´uvah, ohlednˇe vyuˇzit´ı umˇel´e inteligence pro opravu pˇreklep˚u, st´ale z˚ust´av´a v teoretick´ych rovin´ach. Funkˇcn´ı prototypy, pˇrestoˇze dosahuj´ı dobr´ych v´ysledk˚u, jsou kv˚uli probl´em˚um s tr´enov´an´ım omezen´e na specifick´a t´emata a obecnˇe nepouˇziteln´e[4].

D´ılˇc´ıch ´uspˇech˚u se povedlo dos´ahnout v oblasti strojov´eho uˇcen´ı pouˇzit´ım algoritmu Winnow. ´Uspˇeˇsnost tohoto korektoru pˇrekon´av´a algoritmy zaloˇzen´e na statistick´ych metod´ach i pro obecn´e texty. Bliˇzˇs´ı popis algoritmu je mimo rozsah pr´ace. Podrobnosti lze nal´ezt v [7].

3.5 Algoritmus korekce

Nyn´ı uˇz jsme se sezn´amili se vˇsemi pil´ıˇri korektoru a m˚uˇzeme pˇrej´ıt k vlastn´ımu algo- ritmu.

Zadan´y uˇzivatelsk´y dotaz se nejdˇr´ıve vyˇcist´ı a rozdˇel´ı na slova. N´aslednˇe se jednot- liv´a slova postupnˇe proch´azej´ı a pomoc´ı korekˇcn´ıho algoritmu se snaˇz´ıme naj´ıt jejich spr´avn´y tvar. Jakmile oprav´ıme vˇsechna slova, sloˇz´ıme z nich zpˇet opraven´y dotaz.

Algoritmus korekce slova prob´ıh´a ve ˇctyˇrech f´az´ıch:

1. vytvoˇren´ı seznamu kandid´at˚u

2. ohodnocen´ı kandid´at˚u dle chybov´eho modelu 3. ohodnocen´ı kandid´at˚u dle jazykov´eho modelu 4. v´ybˇer nejvhodnˇejˇs´ıho kandid´ata

3.5.1 Zpracov´an´ı dotazu

Dotaz se rozdˇel´ı podle b´ıl´ych znak˚u, ˇc´arek, teˇcek a podtrˇz´ıtek na jednotliv´a slova, kter´a se n´aslednˇe pˇrevedou na mal´a p´ısmena. Slova obsahuj´ıc´ı v´ıce neˇz 50% ˇc´ıslovek se stejnˇe jako jednop´ısmenn´e tvary pˇreskakuj´ı.

(34)

3.5.2 Vytvoˇren´ı seznamu kandid´at˚u

Pouˇzit´y chybov´y model je zaloˇzen na editaˇcn´ı vzd´alenosti a kandid´aty tedy z´ısk´ame pomoc´ı editaˇcn´ıch operac´ı. Z v´ykonnostn´ıch d˚uvod˚u budeme generovat kandid´aty pouze do vzd´alenosti 2 a ponech´ame si jen ty, kter´e zn´ame z unigramov´eho modelu.

3.5.3 Ohodnocen´ı kandid´at˚u dle chybov´eho modelu

Kandid´aty budeme ohodnocovat na ˇctyˇrech ´urovn´ıch pˇresnosti. Vyˇsˇs´ı ´uroveˇn by mˇela zajistit pˇresnˇejˇs´ı ohodnocen´ı, ale je n´aroˇcnˇejˇs´ı na v´ypoˇcetn´ı v´ykon.

Nult´a ´uroveˇn pˇredstavuje naivn´ı pˇr´ıstup. Pokud se opravovan´e slovo nach´az´ı v uni- gramov´em modelu, je povaˇzov´ano za jedin´eho kandid´ata. Jestliˇze je opravovan´e slovo nezn´am´e, algoritmus se pod´ıv´a, zda existuj´ı kandid´ati do vzd´alenosti 1. V kladn´em pˇr´ıpadˇe postoup´ı tyto kandid´aty do dalˇs´ı f´aze algoritmu a st´avaj´ıc´ı f´aze je ukonˇcena.

V opaˇcn´em pˇr´ıpadˇe se pod´ıv´a po kandid´atech do vzd´alenosti 2. Pokud je i tento se- znam pr´azdn´y, je oprava ukonˇcena. Pˇrednost´ı t´eto ´urovnˇe je rychlost a jednoduchost, ale je zˇrejm´e, ˇze nebere v potaz z´ıskan´e chybov´e statistiky. Jak uvid´ıme pozdˇeji, jej´ı

´

uspˇeˇsnost nen´ı pˇr´ıliˇs vysok´a.

Na prvn´ı ´urovni pˇresnosti se pˇri ohodnocov´an´ı kandid´at˚u bere v potaz pouze jejich editaˇcn´ı vzd´alenost.

Druh´a ´uroveˇn uˇz do ohodnocov´an´ı kandid´at˚u zapoˇc´ıt´av´a i pouˇzitou editaˇcn´ı ope- raci. Pokud je vzd´alenost kandid´ata vˇetˇs´ı neˇz 1, je tato hodnota z d˚uvodu v´ypoˇcetn´ı n´aroˇcnosti aproximov´ana pr˚umˇernou cenou operac´ı.

Tˇret´ı ´uroveˇn bere v ´uvahu i parametr editaˇcn´ı operace, tedy konkr´etn´ı znak. Stejnˇe jako u pˇredchoz´ı ´urovnˇe je tato hodnota u kandid´at˚u se vzd´alenost´ı 2 a v´ıce aproxi- mov´ana.

3.5.4 Ohodnocen´ı kandid´at˚u dle jazykov´eho modelu

Z jazykov´eho modelu urˇc´ıme apriorn´ı pravdˇepodobnost kandid´ata. Budeme rozliˇsovat, zda je opravovan´e slovo izolovan´e, nebo se nach´az´ı v kontextu dalˇs´ıch slov. Pokud je slovo izolovan´e, pˇriˇrad´ıme kandid´atovi pravdˇepodobnost z unigramov´eho modelu.

V pˇr´ıpadˇe, ˇze se opravovan´e slovo nach´az´ı v kontextu dalˇs´ıho slova, urˇc´ıme podm´ınˇe- nou pravdˇepodobnost dvojice z bigramov´eho modelu. V tomto v´ypoˇctu na n´as ˇcek´a drobn´a z´aludnost. Vˇetˇsinou pˇredpokl´ad´ame, ˇze opravovan´e slovo n´asleduje po kon- textov´em slovˇe. Prvn´ı slovo dotazu vˇsak nem´a ˇz´adn´y pˇredch´azej´ıc´ı kontext, ale m´a

(35)

n´asleduj´ıc´ı. Pro prvn´ı slovo dotazu budeme tedy poˇc´ıtat podm´ınˇenou pravdˇepodobnost, ˇ

ze opravovan´e slovo bude n´asledov´ano kontextov´ym.

3.5.5 V´ybˇer nejvhodnˇejˇs´ıho kandid´ata

V posledn´ım kroku jednoduˇse vybereme kandid´ata, jehoˇz souˇcin ohodnocen´ı je dle jazykov´eho a chybov´eho modelu nejvˇetˇs´ı.

3.5.6 Pˇr´ıklad

Abychom z´ıskali lepˇs´ı pˇredstavu o principu, na jak´em algoritmus funguje, pˇredvedeme si jednoduch´y pˇr´ıklad.

Uˇzivatel do vyhled´avaˇce vloˇzil dotaz Kertl Gott. Je zˇrejm´e, ˇze uˇzivatel chtˇel p˚uvodnˇe napsat Karel Gott, ale omylem se dopustil dvou pˇreklep˚u.

Nejprve dotaz rozdˇel´ıme na slova, kter´a n´aslednˇe pˇrevedeme na mal´a p´ısmena, a z´ısk´ame: kertl a gott.

Nyn´ı uˇz m˚uˇzeme pouˇz´ıt opravn´y algoritmus na slovo kertl.

1. Nejdˇr´ıve vygenerujeme seznam moˇzn´ych kandid´at˚u na opravu.

Pro editaˇcn´ı vzd´alenost 1 jsme z´ıskali n´asleduj´ıc´ı kandid´aty (slova jsou ze skuteˇcn´e- ho jazykov´eho modelu):

kert (smaz´an´ı l), kartl (z´amˇena e za a), mertl (zamˇena k za m) ...

Poˇcet kandid´at˚u pro editaˇcn´ı vzd´alenost bude podstatnˇe vyˇsˇs´ı, ale vybereme jen prvn´ıch p´ar:

kuril (z´amˇena e za u; z´amˇena t za i), certe (z´amˇena k za c; z´amˇena t za i), karel (z´amˇena e za a; z´amˇena t za e) ...

2. Kandid´aty ohodnot´ıme dle chybov´eho modelu.

Ze statistiky v´ıme, ˇze kandid´ati do vzd´alenosti 1 jsou pravdˇepodobnˇejˇs´ı neˇz do 2, ˇze nahrazen´ı znak˚u je pravdˇepodobnˇejˇs´ı neˇz transpozice atd.

kert (0, 0096), kartl (0, 0224), mertl (0, 00167)

kuril (0, 0000256), certe (0, 0000743), karel (0, 000315)

3. Kandid´aty ohodnot´ıme dle jazykov´eho modelu s vyuˇzit´ım kontextu slova gott kert (1, 84.10−6), kartl (5, 78.10−5), mertl (1, 84.10−6)

kuril (3, 98.10−4), certe (2, 8.10−4), karel (3, 57.10−3)

References

Related documents

[r]

[r]

JnéÍo: R,adek xULŤ osobni čislo: P0a000a?r!. Hodnocení navrhované v€doucím ba]<aláÍské

RoHS - Directive 2002/95/EC compliant as per product date code 0426 Flammability class according to UL94 V-0. Ambient temperature range

Diplomová práce je studií proveditelnosti zavedení turistické čipové karty v Libereckém regionu, která obsahuje možnosti a způsoby využití čipových karet,

FUA TUL LUCIE ZOUHAROVÁ ING.ARCH.JIŘÍ BUČEK, ING.ARCH.FILIP HORATSCHKE MUZEUM UMĚNÍ, TAIPEI, TAIWAN.. L O K A L

Hlavním cílem bakalářské práce bylo analyzovat problematiku zájmu mládeže ve městě Česká Lípa a jeho okolí o futsal a na základě tohoto výzkumu posoudit, zdaje

L˚ at Ω vara komplexa planet C med positiva