Ústav formální a aplikované lingvistiky Vedoucí diplomové práce: Doc. RNDr. Jan Hajič, Dr. Studijní program: Informatika

Podobné dokumenty
Popis morfologických značek poziční systém

Jak lze v korpusech hledat doklady pro výzkum morfologie?

Funkce. Definiční obor a obor hodnot

Naproti tomu gramatika je vlastně soupis pravidel, jak

1 Linearní prostory nad komplexními čísly

5. Náhodná veličina. 2. Házíme hrací kostkou dokud nepadne šestka. Náhodná veličina nabývá hodnot z posloupnosti {1, 2, 3,...}.

Uvod Modely n-tic Vyhodnocov an ı Vyhlazov an ı a stahov an ı Rozˇ s ıˇ ren ı model u n-tic Jazykov e modelov an ı Pavel Smrˇ z 27.

1 Substantiva. 2 Adjektiva. Obsah. Lekce Obsah Cvičení

Statistická teorie učení

Dataprojektor, kodifikační příručky

Náhodné chyby přímých měření

Inženýrská statistika pak představuje soubor postupů a aplikací teoretických principů v oblasti inženýrské činnosti.

ANOTACE K VÝUKOVÉ SADĚ č. VY_32_INOVACE_02_05_NEJ_Ps

Dataprojektor, jazykové příručky, pracovní listy

VY_12_INOVACE_26_MLUVNICKE_KATEGORIE_PODSTATNYCH_ JMEN. Předmět: Český jazyk Ročník: 4. Časová dotace: 45 min Datum ověření:

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Pravděpodobnost a statistika

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

7. Rozdělení pravděpodobnosti ve statistice

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

NP-úplnost problému SAT

Úvod do gramatiky. Galénos a Hippokratés na fresce v kryptě katedrály v Anagni, vybudované v roce 1255

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

4.2 Syntaxe predikátové logiky

Odhad parametrů N(µ, σ 2 )

0. ÚVOD - matematické symboly, značení,

řešeny numericky 6 Obyčejné diferenciální rovnice řešeny numericky

Úvod do řešení lineárních rovnic a jejich soustav

SADA VY_32_INOVACE_CJ1

5. Lokální, vázané a globální extrémy

STATISTICKÝ SOUBOR. je množina sledovaných objektů - statistických jednotek, které mají z hlediska statistického zkoumání společné vlastnosti

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

VÝBĚR A JEHO REPREZENTATIVNOST

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

SSOS_CJL_5.13. III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT. Číslo a název projektu Číslo a název šablony

Základy latiny II

VY_32_INOVACE_ / IQ cesta

Numerické metody 6. května FJFI ČVUT v Praze

Náhodné (statistické) chyby přímých měření

Automatická post-editace výstupů frázového strojového překladu (Depfix)

Parametrické programování

6 Ordinální informace o kritériích

10. Soustava lineárních rovnic - substituční metoda

Odhady - Sdružené rozdělení pravděpodobnosti

12 DYNAMIKA SOUSTAVY HMOTNÝCH BODŮ

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

M - Kvadratické rovnice a kvadratické nerovnice

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

8 Střední hodnota a rozptyl

a způsoby jejího popisu Ing. Michael Rost, Ph.D.

Matematika I 2a Konečná pravděpodobnost

1 Mnohočleny a algebraické rovnice

FREDHOLMOVA ALTERNATIVA

2 Zpracování naměřených dat. 2.1 Gaussův zákon chyb. 2.2 Náhodná veličina a její rozdělení

Modely Herbrandovské interpretace

Základy popisné statistiky

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Lékařská biofyzika, výpočetní technika I. Biostatistika Josef Tvrdík (doc. Ing. CSc.)

1. Matematická logika

NÁHODNÁ ČÍSLA. F(x) = 1 pro x 1. Náhodná čísla lze generovat některým z následujících generátorů náhodných čísel:

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Autor: Jan Hošek

Cvičení ze statistiky - 5. Filip Děchtěrenko

NÁZEV TŘÍDA ANOTACE PLNĚNÉ VÝSTUPY KLÍČOVÁ SLOVA

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Dijkstrův algoritmus

Množiny, relace, zobrazení

Chyby měření 210DPSM

7. Funkce jedné reálné proměnné, základní pojmy

1 Řešení soustav lineárních rovnic

PRIMITIVNÍ FUNKCE. Primitivní funkce primitivní funkce. geometrický popis integrály 1 integrály 2 spojité funkce konstrukce prim.

Náhodný pokus Náhodným pokusem (stručněji pokusem) rozumíme každé uskutečnění určitého systému podmínek resp. pravidel.

Automatická post-editace výstupů frázového strojového překladu (Depfix)

12. Lineární programování

South Bohemia Mathematical Letters Volume 23, (2015), No. 1, DĚLENÍ KRUHU NA OBLASTI ÚVOD

Tabulka 1. Výběr z datové tabulky

13. cvičení z PSI ledna 2017

1. Přednáška. Ing. Miroslav Šulai, MBA

1.5.2 Číselné soustavy II

IB112 Základy matematiky

Tabulkový procesor. Základní rysy

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

9. T r a n s f o r m a c e n á h o d n é v e l i č i n y

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

Matematická logika. Miroslav Kolařík

2. Určete jádro KerL zobrazení L, tj. nalezněte alespoň jednu jeho bázi a určete jeho dimenzi.

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

9. T r a n s f o r m a c e n á h o d n é v e l i č i n y

PRIMITIVNÍ FUNKCE DEFINICE A MOTIVACE

1 Mnohočleny a algebraické rovnice

Formální jazyky a gramatiky Teorie programovacích jazyků

STATISTICKÉ ODHADY Odhady populačních charakteristik

Vztah jazyků Chomskeho hierarchie a jazyků TS

Normální (Gaussovo) rozdělení

5 Orientované grafy, Toky v sítích

Příruční mluvnice češtiny. 2. vyd., Praha: Lidové noviny, s. ISBN

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA.

Pravděpodobnost a její vlastnosti

Transkript:

Univerzita Karlova v Praze Matematicko fyzikální fakulta Diplomová práce Miroslav Spousta Automatické přiřazení tvaroslovných vzorů v češtině Ústav formální a aplikované lingvistiky Vedoucí diplomové práce: Doc. RNDr. Jan Hajič, Dr. Studijní program: Informatika

Děkuji vedoucímu diplomové práce doc. Janu Hajičovi za trpělivé vedení práce, motivaci a velmi podnětné připomínky, jakož i za to, že mi byl vzorem, nikoli však morfologickým. Také děkuji RNDr. Jarce Hlaváčové za poskytnutí cenných rad a materiálů týkajících se formátu slovníku a dalších souborů, Mgr. Johance za morální podporu a teplé večeře a Mgr. PerMovi za připomínky nejen k obsahu práce. Prohlašuji, že jsem svou diplomovou práci napsal samostatně a výhradně s použitím citovaných pramenů. Souhlasím se zapůjčováním práce. V Praze dne 11. 8. 2005 Miroslav Spousta

Obsah Obsah 1 Abstrakt 3 Úvod 4 1 Motivace 5 1.1 Morfologie češtiny......................... 6 1.1.1 Poziční systém tagů.................... 7 1.1.2 Kompaktní systém tagů................. 7 1.1.3 Morfologický slovník................... 8 1.1.4 Derivační vzory...................... 10 1.1.5 Seznam koncovek..................... 12 1.1.6 Morfologické vzory.................... 12 1.1.7 Algoritmus morfologické analýzy............ 13 1.2 Automatické doplňování slovníku................ 13 2 Automatické určování vzorů 15 2.1 Označení a definice........................ 15 2.2 Určování vzorů.......................... 16 2.2.1 Nepravidelná slova.................... 17 2.2.2 Více vzorů pro jedno lemma ve slovníku........ 17 2.2.3 Hierarchie vzorů..................... 18 2.2.4 Kombinované vzory.................... 19 2.2.5 Předpony......................... 20 2.3 Algoritmy............................. 20 2.3.1 Generování možných vzorů................ 21 2.3.2 Přiřazení nejpravděpodobnějších vzorů......... 23 2.4 Pravděpodobnostní model.................... 24 2.4.1 Odhad pravděpodobností................. 24 2.4.2 Vyhlazování........................ 25 1

2.4.3 Nekontextové metody................... 28 2.4.4 Metody využívající kontext............... 31 2.4.5 Kombinace metod..................... 36 2.4.6 Přiřazení slov do skupin................. 36 2.4.7 Předpony nej- a ne-.................... 41 2.4.8 Přiřazení lemmat..................... 42 2.4.9 Algoritmus pro určení vzorů............... 43 3 Experimenty a výsledky 45 3.1 Trénovací a testovací data.................... 45 3.2 Fáze trénování.......................... 46 3.2.1 Nekontextové metody................... 46 3.2.2 n-gramy.......................... 47 3.3 Evaluace.............................. 48 3.4 Evaluace přiřazení do skupin................... 49 3.4.1 Přesnost a úplnost.................... 49 3.5 Experimenty............................ 50 3.5.1 Úspěšnost jednotlivých metod.............. 52 3.5.2 n-gramy.......................... 53 3.5.3 Četnost slov........................ 54 3.5.4 Pravidelná slova...................... 57 3.6 Výsledky.............................. 57 4 Implementace 59 4.1 Použité programovací prostředky................ 59 4.1.1 Zvolený jazyk....................... 59 4.1.2 Porovnání rychlosti programů v Perlu a C++..... 60 4.1.3 Uživatelské prostředí................... 60 4.2 Knihovna Morph......................... 61 4.3 Fáze přípravy dat......................... 62 4.4 Trénování............................. 63 4.5 Vyhlazování............................ 63 4.6 Přiřazení vzorů.......................... 64 4.7 Evaluace.............................. 64 4.8 Pomocné programy........................ 65 Závěr 68 Literatura 70 Rejstřík 71 2

Název práce: Automatické přiřazení tvaroslovných vzorů v češtině Autor: Miroslav Spousta Katedra (ústav): Ústav formální a aplikované lingvistiky Vedoucí diplomové práce: Doc. RNDr. Jan Hajič, Dr. e mail vedoucího: hajic@ufal.mff.cuni.cz Abstrakt: Cílem předložené práce je vytvořit metody pro automatické přiřazování morfologických vzorů českým slovům. Nejprve je provedena analýza problému, ve které jsou zdůrazněny některé podproblémy, se kterými se musíme vypořádat. Poté jsou navrženy čtyři různé algoritmy pro výběr z možných vzorů, pracující na základě analýzy slova a jeho kontextu. Dále jsme navrhli algoritmus pro rozdělení množiny slov na třídy ekvivalence podle společného lemmatu. Pro odhad optimálních parametrů jednotlivých metod jsme použili různé zdroje dat, na kterých jsme provedli přes 250 testů s různými hodnotami parametrů. Součástí práce je popis použitých algoritmů a jejich implementace v programovacích jazycích Perl a C++. Klíčová slova: morfologická analýza, vzor, kořen, lemma Title: Automatic paradigm assignment for czech words Author: Miroslav Spousta Department: Institute of Formal and Applied Linguistics Supervisor: Doc. RNDr. Jan Hajič, Dr. Supervisor s e mail address: hajic@ufal.mff.cuni.cz Abstract: Aim of the presented work is to explore possibility of automatic morphological paradigms assignment for the Czech words. Theoretical part of our work consists of the problem analysis with emphasized issues we have to deal with. We present four different algorithms for morphological paradigm assignment, using both word form analysis and contextual information processing. Word forms are partitioned into equivalence classes according to their lemma, using another algorithm. We performed more than 250 tests on the various corpus data with the purpose of estimating best method parameters. Presented algorithms are thoroughly described and implemented. Keywords: morphological analysis, paradigm, root, lemma 3

Úvod Tématem této práce je automatické přiřazování morfologických vzorů českým slovům. Naším cílem bude vyvinout metody, které se na základě zadaného slova a jeho kontextu pokusí najít správný vzor, podle něhož se slovo ohýbá, a najít k němu základní tvar (lemma). Práce je rozčleněna do čtyř kapitol. První kapitola je motivační, zabývá se českou morfologií a zavádí pojmy a označení, které budeme dále používat. Je zde popsáno, jak funguje morfologický analyzátor, co jsou derivace slov a jakým způsobem je uložen slovník a další soubory. Závěrem kapitoly shrneme dosavadní přístupy k podobným problémům. Druhá kapitola se zabývá řešením problému automatického přiřazení vzoru ke slovům, vysvětluje použité metody a algoritmy včetně jednoduché analýzy jejich složitosti. Najdeme zde také rozbor několika problémů, na které jsme narazili během naší práce a se kterými se musíme vypořádat. Ve třetí kapitole vysvětlíme, jak dané metody v praxi použít, popíšeme procesy trénování, vyhlazování a testování. Dále ukážeme výsledky, kterých jsme dosáhli na testovacích datech, a pokusíme se najít optimální nastavení parametrů. Závěrečná čtvrtá kapitola popisuje implementaci popsaných algoritmů. Zdůvodníme volbu programovacích prostředků a popíšeme ovládání jednotlivých programů a skriptů. Na závěr naší práce zhodnotíme dosažené výsledky a ukážeme možnosti dalšího zlepšení. 4

Kapitola 1 Motivace Už na základní škole jsme se naučili, že slovo kozel se skloňuje stejně jako slovo pán, ozdoba jako žena a slovo mečí se časuje podle prosí. Bylo nám vysvětleno, že slova českého jazyka tvoří skupiny, které se stejně ohýbají, a z každé skupiny jsme dostali vzor, podle něhož bylo snadné podobná slova skloňovat nebo časovat. V oblasti zpracování přirozeného jazyka, počítačové lingvistice, před námi stojí problém podobný tomu ze základní školy: ke každému slovu jednoznačně určit jeho vzor. Chtěli bychom, aby počítač přiřazoval vzory pokud možno automaticky nebo jen s minimální pomocí uživatele. Můžeme si položit otázku, proč je pro nás tento problém důležitý? Jedná se o úkol zajímavý teoreticky (jak moc dobře umíme automaticky přiřadit vzor), ale i prakticky. Na vzorech slov je založena automatická morfologická analýza českého jazyka a k jejímu rozšiřování a zdokonalování je potřeba doplňovat slovník o nová slova. K nim musí být přiřazen správný vzor, abychom věděli, které tvary daného slova jsou přípustné. Morfologická analýza konkrétního jazyka tvoří úplný základ jeho lingvistického zpracování. Jejím úkolem je pro každé slovo určit morfologické kategorie (slovní druh, pád, číslo, čas, způsob...). Pro češtinu existuje několik implementací morfologické analýzy lišících se přístupem k zachycení slov, počtem vzorů a možnostmi, které použití vzorů nabízí. Kromě,,pražské morfologie [1], kterou budeme při naší práci používat, se zde alespoň zmíníme o brněnské morfologii ajka [2]. V současné době na ní probíhají úpravy a není veřejně dostupná. 5

KAPITOLA 1. MOTIVACE 6 1.1 Morfologie češtiny V této kapitole ve stručnosti popíšeme hlavní rysy české morfologie [1], soustředíme se především na ty, které v ostatních materiálech nenajdeme (popis interního formátu slovníku a derivační vzory). Pro češtinu rozlišujeme tyto morfologické kategorie: Slovní druh určuje základní rozdělení slov: podstatná jména (substantiva), přídavná jména (adjektiva), zájmena (pronomina), číslovky (numeralia), slovesa (verba), příslovce (adverbia), předložky (prepozice), spojky (konjunkce), částice (interjekce), citoslovce (partikule). Rozšířený slovní druh jemněji člení některé slovní druhy do podkategorií (například předložky je možné dělit na obyčejné a vokalizované, zájmena na vztažná, neurčitá, osobní atd.). Rod může ženský, mužský (životný a neživotný), střední. Číslo singulár, plurál, duál. Pád nominativ, genitiv, dativ, akuzativ, vokativ, lokál, instrumentál. Přivlastňovací rod se určuje hlavně u přivlastňovacích zájmen a příslovcí. Přivlastňovací číslo singulár nebo plurál. Osoba může být první, druhá, nebo třetí. Čas pro slovesa upřesňuje, kdy se děj odehrává (minulý, přítomný, budoucí) Stupeň může být být první až třetí (např. úzký, užší, nejužší) Negace říká, zda je slovo v negativní formě (s předponou ne-), nebo v afirmativu. Slovesný rod určuje, zda je sloveso v aktivu, nebo v pasivu. Varianta, styl slouží k rozlišení hovorových, knižních, archaických tvarů slov. Pro různé slovní druhy se určují podmnožiny z těchto kategorií, např. pro podstatná jména určujeme slovní druh, rozšířený slovní druh, rod, číslo, pád a negaci (případně ještě variantu/styl). Hodnoty morfologických kategorií se zapisují pomocí speciálních značek, tagů. Tag je skupina písmen a symbolů, které pro dané slovo jednoznačně určují hodnoty všech relevantních kategorií. V současnosti se používají dva systémy tagů: poziční a kompaktní.

KAPITOLA 1. MOTIVACE 7 1.1.1 Poziční systém tagů Poziční tag se skládá z patnácti znaků, každá kategorie má určeno pevné číslo pozice, na kterém se vyskytují znaky reprezentující hodnoty dané kategorie. Přiřazení je následující: 1 slovní druh (POS) 2 detailní slovní druh (SUBPOS) 3 rod (GENDER) 4 číslo (NUMBER) 5 pád (CASE) 6 rod vlastníka (POSSGENDER) 7 číslo vlastníka (POSSNUMBER) 8 osoba (PERSON) 9 čas (TENSE) 10 stupeň (GRADE) 11 negace (NEGATION) 12 slovesný rod (VOICE) 13 rezervováno (RESERVE1) 14 rezervováno (RESERVE2) 15 varianta, styl (VAR) V závorce jsou uvedeny zkratky používané pro dané kategorie. Poziční tag pro slovo možnost může vypadat takto: NNFS4-----A---- nebo také: NNFS1-----A---- V prvním případě je dané slovo substantivum (N) obyčejné (druhé N), ženského rodu (F), v singuláru (S), v akuzativu (4), afirmativní (A). Ve druhém je to stejné slovo, ale v nominativu. Kategorie, které pro daný slovní druh nemají smysl (např. osoba u substantiv), jsou ohodnoceny znakem -, neznámé hodnoty mají hodnotu X. Kompletní popis možných hodnot pro jednotlivé kategorie je možné nalézt v popisu morfologie [3]. 1.1.2 Kompaktní systém tagů Kompaktní systém zápisu tagů nemá pevně danou velikost (co do počtu znaků), je starší a v současné době se používá především v morfologickém slovníku. Jeho výhodou je menší velikost oproti pozičnímu systému. Kompaktní tag se skládá ze tří částí:

KAPITOLA 1. MOTIVACE 8 Prefix určuje slovní druh a rozšířený slovní druh (např. VF pro slovesný infinitiv, DB pro příslovce bez možnosti negace a stupňování). Morfologické kategorie obsahují hodnoty (pole 3 12 pozičního systému), které jsou pro daný prefix relevantní. Například pro substantiva je to rod+číslo+pád+negace, tedy kompaktní tag pro slovo akuzativ slova možnost bude NFS4A. Pole varianta, styl je od předcházející části tagu odděleno pomlčkou. Oba systémy jsou ekvivalentně silné a existuje mezi nimi vzájemně jednoznačné přiřazení. Pro převod z pozičního do kompaktního systému tagů a obráceně slouží jednoduchý skript, který je součástí PDT 1.0 [9]. Základ tvoří dva soubory b2800a.f2o a b2800a.o2f, které jsou v podstatě překladovými slovníky pro každý tag z jednoho systému je uveden odpovídající tag druhého. 1.1.3 Morfologický slovník Morfologická analýza ke své práci používá speciální slovník, který slouží k získání základních informací o daném slovu. Pro každé slovo je ve slovníku uložen kořen slova, vzor a lemma. Jednotlivé položky jsou odděleny mezerou, lemma je uvozeno znakem,,=. Například v záznamu pro sloveso pohnout je uvedena trojice pohnou, t a pohnout: pohnou t =pohnout Na tomto místě je nutné zdůraznit, že některé běžné termíny jsou používány nikoli v lingvistickém, ale v technickém smyslu, proto si uvedeme jejich definici (v některých ohledech poněkud vágní). Předpona (prefix) slova je volitelná část předcházející kořen slova. Pro potřebu morfologické analýzy se rozlišují pouze tři předpony: nej, ne a nejne. Ostatní jsou uvedeny přímo jako součást kořene u příslušných hesel ve slovníku. Tedy například slova hrát a dohrát jsou dvě různá slova: hrá t =hrát dohrá t =dohrát Kořen (root) je část slova, která se při ohýbání nemění. Případné změny v kořeni se řeší dalším záznamem ve slovníku nebo pomocí derivačních vzorů.

KAPITOLA 1. MOTIVACE 9 Vzor (paradigm) určuje možné koncovky, které mohou být připojeny za kořen. Nepravidelná slova mají ve slovníku přiřazen vzor 0. Lemma určuje základní tvar slova (nominativ singuláru pro substantiva, infinitiv pro slovesa atd.). Zároveň slouží k rozlišení záznamů ve slovníku záznamy se stejným lemmatem patří k jednomu slovu. Speciálně nepravidelné tvary slov jsou tedy sloučeny právě pomocí lemmatu: kozel 0 =kozel+nms1@ N kozla 0 =kozel+nms2@/nms4@ N kozlu 0 =kozel+nms3@/nms6@ N kozl uv =kozel Některé vzory nepopisují chování celého slova, ale jen část jeho tvarů (jedná se o částečné vzory). Například u slovesa nést vzor t popisuje infinitiv, i1 imperativ a t1n tvary přechodníku. nés t =nést nes i1 =nést nes p1 =nést nes t1n =nést nesl r =nést nesen s2 =nést pones 0 =nést+vms2@-1/vms3@-9 ponesme 0 =nést+vmp1@-1 poneste 0 =nést+vmp2@-1/vmp3@-9 ponesmež 0 =nést+vmp1@-3 ponestež 0 =nést+vmp2@-3/vmp3@-3 pones p1f =nést Součástí lemmatu může být také: kompaktní tag (oddělený znakem +) zejména pro nepravidelná slova je to jediná možnost, jak uvést tag. určení domény slova umožňuje rozlišit zeměpisná jména od jmen osob, rozlišuje termíny ekonomické, technické, chemické, lékařské. záznam o odvození slova (v závorkách, na začátku se znakem *) slova se odvozují derivací, viz kapitolu 1.1.4. komentář (v závorkách) může upřesňovat význam nebo původ slova.

KAPITOLA 1. MOTIVACE 10 1.1.4 Derivační vzory Každý přirozený jazyk vystihuje sada víceméně pravidelných postupů pro odvozování nových slov. Zatím jsme měli jedinou možnost, jak zachytit slovo: uvést ho ve slovníku. Pokud bychom to takto udělali, byl by slovník obrovský a bylo by v něm mnoho slov odvozených stejným způsobem. Dalším problémem uvedeného postupu je malá systematičnost slovníku neměli bychom zachyceny některé souvislosti mezi slovy (např. že důchodce a důchodcův jsou odvozeny od stejného slova). Z těchto důvodů se používají další speciální pravidla pro odvozování slov derivační vzory. Derivační vzory se skládají z osmi položek a jsou uloženy v textovém souboru, na každém řádku jeden vzor: vzor r1,r2,r3,r4,r5,r6,r7 Jednotlivé položky popisuje následující tabulka: vzor r1 r2 r3 r4 vzor ze slovníku řetězec, který se přidá ke kořeni ze slovníku, aby tím vznikl nový kořen vzor, podle kterého se nové slovo ohýbá způsob odvození nového lemmatu (viz dále) řetězec, který je potřeba přidat k novému základu (ten se vytvoří podle r3), aby vzniklo nové lemma r5, r6 týkají se zpětného (derivačního) odkazu na lemma, ze kterého bylo nové lemma utvořeno. Jejich významy jsou stejné jako významy položek r3 a r4, pouze se vytváří lemma, ze kterého bylo nové lemma odvozeno. Výsledné lemma se nezapisuje do slovníkového záznamu celé, ale jako pravidlo, které vypadá takto: xa, kde x je počet písmen, která se mají odtrhnout od nově vytvořeného lemmatu, a je řetězec, kterým se odtržená písmena nahradí, aby vznikl derivační odkaz. r7 je-li r7 rovno *, znamená to, ze se derivační odkaz nevytváří. To platí především u identických derivací, kde r1=r3=r4=r5=r6=0 a r2=vzor. Možné hodnoty r3: 0 lemma se nemění, tj. zůstává to, které je ve slovníku. x nové lemma se odvozuje od původního lemmatu, a to tak, že se od něj odtrhne x písmen a nahradí se řetězcem r4 rx r znamená, že se nové lemma odvozuje od kořene, ne od lemmatu. Číslice x má stejný význam jako v předchozím případě, jen se neodtrhává od lemmatu, ale od kořene.

KAPITOLA 1. MOTIVACE 11 Odvozování nových slov pomocí derivačních vzorů (derivací) probíhá tak, že na slovníkové heslo se aplikují přípustné derivační vzory. Záznamy, které takto vzniknou, jsou naprosto rovnocenné s těmi, které jsou uvedeny jako hesla ve slovníku. Ve skutečnosti se popsaný postup využívá vždy, pro slovníková hesla i slova odvozená. Na každé slovníkové heslo se aplikuje jedna nebo více derivací a teprve výsledné záznamy jsou používány v morfologické analýze. Poslední aplikovaný derivační vzor je vždy identická derivace 1, která má shodný původní a nový vzor a nemění kořen slova. Postup derivování záznamů si ukážeme na příkladu slova zájemce. Ve slovníku je uvedeno heslo: zájem sc1 =zájemce tedy vzor je sc1 (jedna z variant vzoru soudce). V seznamu derivací jsou pro vzor sc1 uvedeny čtyři řádky: první derivace je identická, pro ostatní vzory v seznamu najdeme: sc1 0,sc1,0,0,0,0,* sc1 c,uv,r0,cův,0,0,- sc1 ky,ns3n,r0,kyně,0,0,- sc1 kynin,in,r0,kynin,r0,kyně,- uv 0,uv,r0,ův,0,0,- ns3n 0,ns3n,0,0,0,0,* ns3n nin,in,r0,nin,0,0,- in 0,in,r0,0,0,0,- Uvedeme nová hesla, která vznikla podle těchto derivačních pravidel: První pravidlo pro vzor sc1 vyrobí stejné slovníkové heslo, jako bylo původní (derivační odkaz se nevytváří, protože r7 je *). zájem sc1 =zájemce Druhé pravidlo vede přes vzor uv k heslu: zájemc uv =zájemcův (*2e) Derivační odkaz je zájemc-e (odtrhnout dvě písmena a přidat,,e ). Třetí pravidlo vede přes ns3n a identickou derivaci: zájemky ns3n =zájemkyně (*4ce) 1 Identická derivace nám vlastně říká, kdy máme během derivací generovat odvozený záznam.

KAPITOLA 1. MOTIVACE 12 Derivační odkaz je zájem-ce. Vzor ns3n má však ještě další derivaci se vzorem in: zájemkynin in =zájemkynin (*2e) Podle posledního pravidla dostaneme: zájemkynin in =zájemkynin (*2ě) Derivační odkaz je zájemkyn-ě. Dospěli jsme ke stejné derivaci jako v předchozím případě, tyto duplicitní řádky je třeba z výsledku vypustit. 1.1.5 Seznam koncovek Pro vzory je definována množina koncovek, které se připojují ke kmeni. U koncovky je uveden tag (v kompaktní podobě), který určuje morfologické kategorie slova vzniklého spojením kmene a dané koncovky. Zatím jsme se nezmínili o předponách. Slova, která mohou obsahovat předponu (nej-, ne-, nejne-), mají v tagu na místě určeném pro stupeň (negaci) uveden speciální symbol # (@). Tyto symboly se při analýze slova nahradí podle toho, zda slovo obsahuje danou předponu, či nikoliv. Například slova skloňovaná podle vzoru sc1 mohou být použita i v negativním tvaru (tag má na místě pro negaci znak @): sc1 ce[nms1@,nms2@,nms4@,nms5@,nmp4@], ci[nms3@,nms6@,nmp1@,nmp5@,nmp7@], covi[nms3@-1,nms6@-1],cem[nms7@], ců[nmp2@],cům[nmp3@],cích[nmp6@], cum[nmp3@-6],cema[nmp7@-6],cové[nmp1@-6,nmp5@-6] 1.1.6 Morfologické vzory Morfologické vzory se používají ke dvěma účelům: jednak pro generování jednotlivých tvarů, jednak v derivacích pro generování nových záznamů. Vzory přibližně odpovídají obecně známým vzorům pro češtinu, například pro substantiva to jsou vzory: pán, hrad, muž, stroj, žena, nůše, píseň, kost, město, moře, kuře, stavení, předseda, soudce. Většina těchto vzorů se dále dělí podle různých výjimek ve skloňování na několik kategorií 2, naopak některá slova tvoří vzory pomocí několika částečných vzorů 3. Podrobnější údaje o vzorech je možné najít v [1]. 2 Viz např. tabulku 2.4, kde jsou uvedeny různé varianty vzoru nůše. 3 Celkem je v morfologii [1] vzorů 236.

KAPITOLA 1. MOTIVACE 13 1.1.7 Algoritmus morfologické analýzy Zde uvedeme jen základní princip fungování algoritmu, který provádí morfologickou analýzu slova bez řešení velikosti písmen, případných předpon atd. Kompletní verzi společně s algoritmem pro generování všech slov z lemmatu a tagu čtenář nalezne v [1]. Úkolem algoritmu je analyzovat slovo a určit jeho lemma a tag. Algoritmus používá dvě asociativní pole: Ending2Paradigm, které mapuje koncovku na všechny vzory+tagy, a pole RootParadigm2Lemma, které mapuje kořen a vzor na lemma+tag. Obě pole získáme předzpracováním slovníku, seznamu koncovek a seznamu derivací. Postup je formálně popsán jako algoritmus 1. Algoritmus 1 Morfologická analýza Vstup: slovo Výstup: všechny dvojice lemma+tag for all rozdělení slova na kořen root a koncovku ending do for all paradigm z pole Ending2Paradigm{ending} do for all lemma+tag z pole RootP aradigm2lemma{root}{paradigm} do result lemma + tag end for end for end for print(result) 1.2 Automatické doplňování slovníku Z předchozích odstavců je zřejmé, že slovník tvoří jádro celé morfologické analýzy a jeho rozsah a úroveň velmi výrazně ovlivňuje její kvalitu. V současnosti má slovník přes 350 tisíc unikátních položek (v nerozvinuté podobě), přesto se však vyskytuje řada slov, která v něm chybí. Část tvoří slova vznikající neomezeným odvozováním z jiných (například skládáním číslovek: třimiliónyosmsetpadesátisedm), kterých je nekonečně mnoho, takže je není možné dosavadním způsobem zachytit. Ale existují i slova, která by ve slovníku být mohla (například antiautomobilový, předbalíčkový, některá vlastní jména). V této práci bychom se chtěli zaměřit právě na automatické určování vzorů neznámých slov, tedy těch, která nejsou uvedena ve slovníku. V posledních letech se výzkum v oblasti zpracování přirozeného jazyka zaměřuje také na postupy, jak z rozsáhlých dat automaticky získat informace

KAPITOLA 1. MOTIVACE 14 o morfologické stavbě daného jazyka. Cílem těchto metod je s minimálním přispěním lidského faktoru najít rozdělení slov na kořen a koncovku, jak odpovídá gramatice daného jazyka. Jedná se především o metodu minimálního popisu 4 (Goldsmith [4], [5]) a kombinace různých jednoduchých přístupů (relativní četnost výskytu jednotlivých tvarů v korpusu, podobnost kontextu atd. (Yarowsky and Wincentowski [6])). Nabízí se samozřejmě otázka, zda bychom podobný přístup nemohli použít i pro automatické zpracování těch českých slov, která zatím morfologická analýza nerozpozná, a tedy pro ně nezná vzor. Použité metody jsou výborné pro nalezení zákonitostí morfologické struktury jazyka, ale tu máme pro češtinu již velmi dobře zpracovanou. Těžiště významu těchto metod je tedy především ve využití pro jazyky, které nemají k dispozici dostatečně rozvinuté nástroje pro automatickou morfologickou analýzu. Jak již bylo řečeno, úkolem morfologické analýzy je přiřadit slovům správná lemmata a tagy. Pro neznámé tvary slov existují postupy, jak přiřadit tag a lemma, aniž bychom znali vzor daného slova (Hlaváčová [7]). Ačkoli se jedná o problém podobný našemu, není úplně stejný pro morfologickou analýzu slova nepotřebujeme znát přesný vzor. Pro demonstraci uvedeme dvě věty: Na povrchu vyrostla jabloň. Na povrchu vyrostla plíseň. Slova jabloň a plíseň dostanou obě přiřazený tag NNFS1-----A----, ale mají rozdílné vzory (ps1 a ps1e). Existují i věty, kde některá slova mohou mít více různých vzorů a bez znalosti širšího kontextu nemůže čtenář rozhodnout, která varianta je správná. Příkladem může být slovo Rozehnal v následujících větách. Rozehnal jí dobytek. Rozehnal je dobytek. Z uvedených příkladů je zřejmé, že přiřazení vzorů je úkol poměrně obtížný, protože i pro člověka někdy není snadné stanovit vzor pro daná slova, zejména pokud nám chybí kontext nebo pokud se jedná o slova neznámá. Našeho cíle automaticky přiřadit každému slovu jeho správný vzor tedy téměř jistě nedosáhneme, budeme se mu ale snažit maximálně přiblížit. 4 Minimum Description Length (MDL).

Kapitola 2 Automatické určování vzorů V této kapitole nejprve zavedeme dále používaná označení a upřesníme zadání našeho problému. Poté provedeme rozbor jednotlivých problémů a navrhneme jejich řešení. Následuje popis použitých algoritmů a metod pro přiřazení vzorů neznámým slovům. V poslední části kapitoly se zaměříme na přiřazení neznámých slov do skupin a určování vzorů pro skupiny slov. 2.1 Označení a definice Zavedeme označení: 1 A je abeceda daného jazyka (češtiny), P je množina všech vzorů, F = {f; f A } je množina všech řetězců abecedy tvořících slova, L = {l; l A } je množina všech řetězců abecedy tvořících lemma, R = {l; l A } je množina všech řetězců abecedy tvořících kořen slova, p 1 p 2 je derivace vzoru p 1 na vzor p 2 (viz oddíl 1.1.4), P id je množina vzorů s identickou derivací, které dále budeme nazývat vzory základními. 1 Připomeňme, že následující text je úzce spjatý s morfologickou analýzou [1], která byla představena v kapitole 1. Termíny jako vzor, lemma, kořen, koncovka, derivace nebo morfologický slovník tedy budeme chápat v jejím kontextu. Dále budeme používat základní pojmy z oblasti pravděpodobnosti, jako jsou náhodná veličina, její rozdělení atd. 15

KAPITOLA 2. AUTOMATICKÉ URČOVÁNÍ VZORŮ 16 Dále definujme relaci a funkci 2 Cl: p 1 p n p2,...,p n ( pi p i 1 p i ) Cl : P id 2 P : Cl(p i ) = {p j : p j p i } Přiřazení přípustných vzorů je taková funkce Pa: Pa : F 2 R P L : Pa(w) = { r, p, l ; r R&p P&l L}, která každému slovu přiřazuje množinu trojic kořen, vzor, lemma, jež jsou pro dané slovo přípustné. To znamená, že slovo w je tvar slova lemma s kořenem kořen 3 a má jednu z koncovek vzoru. Zobecníme-li tuto funkci na více slov, dostaneme: Pa : 2 F 2 R P L : Pa(w 1,...,w n ) = Pa(w i ) Dalším pojmem, který zde zavedeme, je derivační strom. Jedná se o množinu vzorů, které vzniknou derivací z jednoho vzoru: 2.2 Určování vzorů Tr(p) : P 2 P : Tr(p) = {q : p q} Naším úkolem je ke každému slovu najít vzor, podle kterého se dané slovo ohýbá. Například pro slovo pejsek je to vzor pn17 4, pro slovo ženou je to vzor zn1 5...nebo se jedná o tvar slovesa hnát? Je zřejmé, že z pouhé znalosti slova vzor jednoznačně neurčíme. Dokonce i pro jeden vzor nemusí být vždy jasné, o který tvar daného slova se jedná. Představme si, že známe vzor zn1 pro slovo sambou, ale nevíme, která část slova je kořen. Podíváme-li se na tabulku 2.1, kde jsou uvedeny tvary vzoru žena, vidíme, že kromě instrumentálu singuláru (kořen samb, zakončení -ou) by se mohlo jednat o akuzativ (kořen sambo, koncovka -u) nebo dokonce o genitiv plurálu (kořen sambou, koncovka prázdná). Proto budeme vždy uvažovat o dvojici kořen, vzor, nikoli o vzoru samotném. Naším cílem je vytvořit algoritmus, který na vstupu dostane text obsahující neznámá slova a pro každé z nich se pokusí určit kořen a vzor. K vytvoření úplného slovníkového záznamu nám zbývá najít lemma. Chceme tedy najít trojici kořen, vzor, lemma, která tvoří nové heslo v morfologickém slovníku. Náš úkol zformulujeme v následujícím popisu. 2 Označení 2 S reprezentuje množinu všech podmnožin S. 3 Kořen zde, ani dále v textu není pasivum. 4 Jedna z variant mužského životného vzoru pán. 5 Vzor žena.

KAPITOLA 2. AUTOMATICKÉ URČOVÁNÍ VZORŮ 17 1 2 3 4 5 6 7 sg. žen-a žen-y žen-ě žen-u žen-o žen-ě žen-ou pl. žen-y žen žen-ám žen-y žen-y žen-ách žen-ami Tabulka 2.1: Zakončení slov vzoru zn1 žena Vstup: text ve formátu CSTS 6 zpracovaný morfologickou analýzou. Tagem X@------------- jsou označena slova, která morfologická analýza nerozpoznala, a nejsou tedy obsažena v jejím slovníku. Výstup: seznam trojic kořen, vzor, lemma pro každé neznámé slovo ze vstupu. Trojice budou seřazeny podle pravděpodobnosti, s jakou příslušejí k danému slovu. Následuje rozbor některých problémů a otázek, které vyplývají z podrobnější analýzy problému přiřazení vzorů ke slovům. 2.2.1 Nepravidelná slova Morfologie, se kterou pracujeme, obsahuje 236 různých vzorů. Přestože je to podstatně více, než na kolik jsme zvyklí ze školy, nepopisují tyto vzory ani zdaleka každé české slovo. Slova, případně jen některé tvary slov, které nemají přiřazen vzor, jsou považována v tomto smyslu za nepravidelná. Jedná se především o slova nesklonná (předložky, spojky), cizí nebo přejatá slova a některé často používané tvary (především substantiv a sloves). Z celkového počtu 260 069 lemmat 7 v morfologickém slovníku má alespoň jeden nepravidelný tvar 25 069 lemmat (9,6 %). Nepravidelná slova nám budou určování vzorů velmi znepříjemňovat. Snadno se nám například stane, že neznámé slovo má stejné zakončení jako některý z častých vzorů, a přesto se jedná o nepravidelný tvar. 2.2.2 Více vzorů pro jedno lemma ve slovníku Navíc neplatí, že co lemma, to jeden vzor. Především častější slovesa, ale i jiná slova mají několik částečných vzorů, ze kterých se skládají všechny jejich možné tvary. Například lemma slaboproudý má ve slovníku záznamy: slaboproud yxx =slaboproudý slaboproudý, slaboproudost slaboproud yxi =slaboproudý slaboproudí 6,,Czech Sentence Tree Structures, primární formát dat uložených v PDT 1.0 [9] 7 Počet unikátních záznamů ve slovníku, nepočítáme zde záznamy, které vzniknou derivacemi.

KAPITOLA 2. AUTOMATICKÉ URČOVÁNÍ VZORŮ 18 Jinou kategorií slov, která má také přiřazeno více vzorů, jsou obouvidá slovesa (mající dokonavý i nedokonavý vid). Například sloveso absolvovat má ve slovníku dva záznamy, pro každý z vidů jeden: absolv ovatd =absolvovat dokonavé (absolvovavší) absolv ovatn =absolvovat nedokonavé (absolvující) Musíme se tedy zamyslet nad otázkou, zda se budeme snažit najít všechny vzory k danému lemmatu, nebo se spokojíme s nalezením alespoň jednoho z nich. Najít jeden ze vzorů je určitě snazší než najít všechny vzory. Pokud ovšem naším cílem bude najít jen některé vzory, je otázka, nakolik je vhodné přidat takový neúplný záznam do slovníku. Budeme tedy chtít najít pokud možno co nejúplnější množinu vzorů, která přísluší k danému slovu. 2.2.3 Hierarchie vzorů Zaměřme se nyní na vzory, které můžeme daným slovům přiřadit. Jak bylo popsáno v kapitole 1, ve slovníku nejsou uvedeny ty záznamy, které lze pravidelně odvodit z jiných pomocí derivačních vzorů (derivací). Je otázka, zda budeme pro neznámé slovo chtít určit spíše záznam derivovaný 8 (základní), nebo se budeme snažit najít záznam, který by byl ve slovníku (tedy ten, ze kterého je odvozen záznam pro naše neznámé slovo). Například u slova zájemkynino z oddílu 1.1.4 se jedná o vzory sc1 (záznam ve slovníku), nebo in (základní vzor pro morfologickou analýzu), viz obrázek 2.1. Jelikož naším cílem je rozšíření morfologického slovníku, zajímá nás především první možnost záznam (vzor), který tvoří kořen derivačního stromu 9. Jedná se o vzor, který je kořenem ve stromě derivací vedoucím od slovníkového záznamu k danému vzoru. Neboli formálně zapsáno R(p) : P id 2 P : R(p) = {q : q Cl(p) & pi Cl(p) q p i } Jelikož záznam může vzniknout derivováním několika různých vzorů, může být (a většinou také je) takových kořenů více. Naší snahou bude hledat vzory, které jsou kořenem derivačního stromu. 8 Tedy ten, který by se přímo použil v morfologické analýze pro dané slovo a vznikl nějakou derivací záznamu slovníkového. 9 Dopouštíme se zde určité nepřesnosti: některé uzly derivačního grafu mohou být spojené, pokud více různých derivací vede ke stejnému vzoru (viz obr. 2.1). Jedná se pak o orientovaný acyklický graf, DAG. Nicméně můžeme si představit tyto uzly odděleně a zůstane nám strom i v matematickém smyslu. Dovolíme si tedy používat pojem strom i pro tento acyklický graf.

KAPITOLA 2. AUTOMATICKÉ URČOVÁNÍ VZORŮ 19 Obrázek 2.1: Kořen derivačního stromu. 2.2.4 Kombinované vzory Jak už bylo uvedeno v oddílu 2.2.2, existují lemmata, která tvoří tvary pomocí více vzorů. Jedná se vlastně o určitý druh nepravidelnosti kdyby tato slova byla pravidelná, pravděpodobně by měla zvláštní vzor. Mnoho těchto slov má více různých kořenů, například ke slovesu poklást patří vzorů šest, z nichž pouze dva mají stejný kořen poklás t =poklást poklást, poklásti poklad i1 =poklást poklad me, poklad te,..., poklad tež poklad p1 =poklást pokladu, poklade,..., pokladou pokladl r =poklást poklad, poklada, poklado,..., pokladyt poklad md =poklást pokladši, pokladše, pokladšího,... pokladen s2 =poklást pokladení, pokladeně, pokladenost,... Chtěli bychom nějakým způsobem formalizovat, že dané vzory mohou v některých případech tvořit tvary jednoho lemmatu. Prostředek, který se k tomu nabízí, jsou derivační vzory. Pro každou takovouto skupinu vzorů jednoho lemmatu vytvoříme nový morfologický vzor, který bude reprezentovat celou skupinu, a přidáme derivační vzory, které nám budou udávat, jak z nového vzoru získáme původní vzory. Zbývá rozmyslet, jak bude vypadat nový společný kořen a jakými suffixy se z něj budou vytvářet kořeny původní jako nový kořen vezmeme maximální společný prefix původních kořenů. Nový vzor pojmenujeme například tak, že součástí jména derivačního vzoru jsou jednak původní vzory, jednak sufixy, které doplňují nový kořen na původní kořeny: i1 ad +md ad+p1 ad+r adl+s2 aden+t ás

KAPITOLA 2. AUTOMATICKÉ URČOVÁNÍ VZORŮ 20 Nové derivační vzory pak mají tvar (viz oddíl 1.1.4): i1 ad +md ad+p1 ad+r adl+s2 aden+t ás aden,s2,0,0,0,0,* i1 ad +md ad+p1 ad+r adl+s2 aden+t ás ad,i1,0,0,0,0,* i1 ad +md ad+p1 ad+r adl+s2 aden+t ás adl,r,0,0,0,0,* i1 ad +md ad+p1 ad+r adl+s2 aden+t ás ad,md,0,0,0,0,* i1 ad +md ad+p1 ad+r adl+s2 aden+t ás ad,p1,0,0,0,0,* i1 ad +md ad+p1 ad+r adl+s2 aden+t ás ás,t,0,0,0,0,* Pokud popsanou operaci provedeme na všechna lemmata ve slovníku a vypustíme derivační vzory, které se vyskytují pouze jednou, dostaneme se z původních 236 vzorů na 1311 a z původních 651 derivačních vzorů na 4439. Tímto postupem získáme možnost zlepšit přesnost výsledku, na druhou stranu se jedná o poměrně výrazné zvýšení počtu vzorů (a tím i zpomalení programů, které se vzory pracují). 2.2.5 Předpony Použitá morfologie rozeznává pouze dvě předpony: nej- a ne-. Slova, která jsou odvozena jinou předponou (např. do-, na-, u-, vy-, za-), se pokládají za různá slova a vyžadují samostatný záznam ve slovníku. Zda daný tvar slova může být uvozen jednou z předpon nej- a ne- (případně oběma), je možné zjistit z použitého vzoru. Bohužel to ale neznamená, že by ve slovníku byly uvedeny pouze pozitivní tvary slov: pravd zn1 =pravda nepravd zn1 =nepravda Vzor zn1 umožňuje u všech svých tvarů negaci (tedy ne-pravda i ne-nepravda). Máme-li určit kořen a vzor slova nepravda, nevíme, jestli je to negativní tvar slova pravda, nebo zvláštní slovo. Některé tyto záznamy ve slovníku mohou být hodnoceny jako chybné, ale existují například i slova s předponou, která nemají pozitivní tvar, ačkoli z hlediska morfologie by klidně existovat mohl. Typickým příkladem je slovo negace. Pokud tedy máme zjistit kořen (a lemma) příslušející k neznámému slovu, které obsahuje jednu z předpon (nej-, ne-, nejne-), nemůžeme si být jistí, zda se jedná opravdu o předponu, nebo jen o součást slova. 2.3 Algoritmy Nyní se zaměříme na to, kterými metodami lze s co největší přesností určit, jaký vzor náleží neznámým slovům. Jedná se převážně o jednoduché sta-

KAPITOLA 2. AUTOMATICKÉ URČOVÁNÍ VZORŮ 21 tistické metody založené na odhadu pravděpodobností pomocí sledování četnosti v trénovacích datech. Na začátku uvedeme algoritmus pro generování všech možných vzorů pro zadaná slova, poté ho rozšíříme na několik slov. Následovat bude popis metod, které jsme použili a implementovali. Budeme používat různé pravděpodobnostní modely, před jejich použitím je vždy popíšeme. 2.3.1 Generování možných vzorů Zcela základním úkolem pro nás bude vygenerovat pro každé slovo všechny jeho možné vzory. Budeme k tomu potřebovat tabulku Ending2Paradigm, ve které bude uveden seznam možných základních vzorů pro každou koncovku. Můžeme si ji předpočítat invertováním tabulky koncovek z morfologie (viz oddíl 1.1.5). Algoritmus generování vzorů bude probíhat takto: Dané slovo nejprve rozdělíme všemi možnými způsoby na kořen a koncovku (ta může být i prázdná). Pro každou koncovku najdeme v tabulce Ending2Paradigm možné základní vzory. Dostaneme tak trojici kořen, vzor, koncovka. Koncovku zapomeneme, a tím vzniknou dvojice kořen, vzor. Získali jsme základní vzory příslušející danému slovu. Dále je potřeba najít zpětný,,uzávěr základních vzorů. Ten získáme tak, že projdeme opačným směrem možné derivace (s tím, že zohledníme změnu v kořeni slova). Uvedený postup si ukážeme na slově zájemkynino. Podle prvního bodu dostaneme jako jedno z rozdělení zájemkynin-o. Podíváme-li se do tabulky Ending2Paradigm, zjistíme, že seznam vzorů pro tuto koncovku má dvacet položek (r, mt7, zn1x, in, aj, zn19, mts, mt1, s1, ajn, pd1, rx, zn20, mt1x, ccf, mt1e, zn1, pd2, zn7, mt1i pět různých variant vzoru žena, šest variant vzoru město, dvě varianty vzoru předseda atd). Je mezi nimi i vzor in (s kořenem zájemkynin. Podíváme se nyní, jak najdeme uzávěr pro tento vzor. V přehledu derivačních vzorů vyhledáme možné zpětné derivace, které přicházejí v úvahu. Zajímají nás pouze ty, které jako druhou položku mají konec aktuálního kořene. ns3n nin,in,r0,nin,0,0,- zn1n in,in,r0,in,0,0,- sc1o kynin,in,r0,kynin,r0,kyně,- sc1 kynin,in,r0,kynin,r0,kyně,- mz5 kynin,in,r0,kynin,r0,kyně,-

KAPITOLA 2. AUTOMATICKÉ URČOVÁNÍ VZORŮ 22 Do seznamu vzorů přidáme položky: zájemky, ns3n, zájemkyn, zn1n, zájem, sc1o, zájem, sc1 a zájem, mz5. Rekurzivní aplikací na vzory ns3n a mz5 (ostatní mají jen identické zpětné derivace) dostaneme další derivační vzory: sc1o ky,ns3n,r0,kyně,0,0,- sc1 ky,ns3n,r0,kyně,0,0,- mz5 ky,ns3n,r0,kyně,0,0,- mz5i 0,mz5,0,0,0,0,* Jediný nový vzor je zájem, mz5i, ostatní už v seznamu máme. Takto jsme získali uzávěr pro vzor in, pro zbývajících devatenáct vzorů bychom postupovali obdobně. Důležité je, že původní slovníkové heslo 10 zájem sc1 =zájemce je mezi nalezenými páry. Je zřejmé, že možných dvojic kořen, vzor bude mnoho. Navíc existují vzory, které mají pro některé tvary prázdné koncovky (například vzor hrad v nominativu singuláru). Prázdnou koncovku získáme při dělení slova na kořen a koncovku u libovolného slova, takže takové vzory budou v seznamu obsaženy vždy. Uvedený postup je formálně popsán jako algoritmus 2. Algoritmus 2 GetPossibleWordParadigms: Vrátí všechny možné dvojice kořen, vzor, pro slovo w. Vstup: slovo w Výstup: všechny dvojice kořen, vzor odpovídající slovu w for all rozdělení slova w na kořen root a koncovku ending 11 do for all vzor paradigm Ending2P aradigm[ending] do basic i root, paradigm end for end for {Najdeme,,uzávěr zpětných derivací} for all root, paradigm basic do result i Cl(root, paradigm) 12 end for return(result) 10 Viz příklad v oddílu 1.1.4 11 Algoritmus předpokládá, že vstupní slova již neobsahují předponu. 12 Je zde použito rozšíření funkce Cl tak, že současně se změnou vzoru se patřičně změní také kořen slova.

KAPITOLA 2. AUTOMATICKÉ URČOVÁNÍ VZORŮ 23 Generování možných vzorů pro skupinu slov Nyní algoritmus rozšíříme na skupinu slov. To bude užitečné především v případě, kdy najdeme více tvarů jednoho slova a budeme chtít zjistit, které vzory jsou přípustné pro všechny tvary současně. Využijeme algoritmus 2, který nám vrátí seznam přípustných dvojic kořen, vzor pro každé slovo. Jelikož chceme vybrat ty položky, které odpovídají všem slovům, provedeme operaci průniku na všechny seznamy. Popsaný postup formalizujeme zápisem jako algoritmus 3. Algoritmus 3 GetPossibleWordGroupParadigms: Generuje možné dvojice kořen, vzor pro skupinu slov Vstup: slova w = {w 1,...,w n } Výstup: všechny dvojice kořen, vzor odpovídající slovům w 1,...,w n for i = 0 to n do root i, paradigm i GetPossibleWordParadigms(w i ) end for result i=1,...,n root i, paradigm i return(result) 2.3.2 Přiřazení nejpravděpodobnějších vzorů Nyní umíme najít možné vzory (páry kořen, vzor ) k jednomu i více neznámým slovům. Můžeme se tedy začít zabývat metodami, které nám umožní s co největší přesností určit, který z možných vzorů je ten správný. K tomu můžeme využít nejrůznější postupy, od zkoumání předpon, kořenů a koncovek slov až po zkoumání okolí neznámých slov. Přestože jsou to metody rozličné, můžeme mezi nimi najít dvě významné skupiny: Metody nekontextové zkoumají pouze samotné slovo, jeho možné koncovky, kořen, předpony, případně další vlastnosti. Metody kontextové se zaměřují na okolí neznámého slova a snaží se v něm najít nápovědu k určení tvaru, případně vzoru slova 13, nebo alespoň některé tvary vyloučit. Dále uvedeme tři metody nekontextové a jednu kontextovou. Nejprve však zavedeme model, ve kterém se budeme pohybovat. 13 Je zřejmé, že pokud se těsně před neznámým slovem kostliveček, broučíček nebo ševeček vyskytuje slovo malý, bude to pravděpodobně tvar některého mužského vzoru.

KAPITOLA 2. AUTOMATICKÉ URČOVÁNÍ VZORŮ 24 2.4 Pravděpodobnostní model V oblasti zpracování přirozeného jazyka často potřebujeme odhadnout, s jakou pravděpodobností nastane určitý jev. Například nás může zajímat, jak je pravděpodobné, že po slově vysoký bude následovat slovo strom, dům, případně slovo kaluž. Je zřejmé, že první dva případy budou pravděpodobnější než případ třetí. Chceme-li takové zákonitosti nějak zachytit či formalizovat, budeme potřebovat pravděpodobnostní model, který každému možnému výsledku přiřadí pravděpodobnost, s jakou jev nastane. Protože přesné pravděpodobnosti neznáme, budeme se k nim chtít alespoň přiblížit. K odhadu pravděpodobnosti P(A) jevu A použijeme jeho relativní četnost, což je jeho absolutní četnost 14 C(A) dělená počtem pokusů N: P(A) = C(A) N Podobně pro podmíněnou pravděpodobnost P(A B) jevu A, nastal-li jev B, odhadneme počet případů, kdy nastal jev A, nastal-li jev B, a vydělíme počtem případů, kdy nastal jev B: P(A B) = C(A B) C(B) Pro použitý postup se používá termín Metoda maximální věrohodnosti (MLE) 15. Je to jedna z nejjednodušších metod, jak určit neznámé rozdělení náhodné veličiny z předcházejících výsledků pokusů. Použití této metody je rozděleno do dvou fází: nejdříve se stanoví pravděpodobnosti jednotlivých jevů pomocí četnosti v předem označených datech (fáze trénování) a poté se zjištěné pravděpodobnosti aplikují na vstupní data (fáze vybavování, v našem případě se jedná o přiřazování vzorů). 2.4.1 Odhad pravděpodobností Tato fáze se někdy také nazývá trénování 16 určujeme pravděpodobnosti jednotlivých podmíněných jevů na základě trénovacích dat, která máme k dispozici. Trénujeme vlastně náš model tak, aby co nejlépe odpovídal trénovacím datům, neboli se snažíme maximalizovat pravděpodobnost těchto dat v našem modelu. V případě metody maximální věrohodnosti počítáme relativní frekvence jednotlivých jevů. 14 Neboli počet příznivých výsledků pokusu. 15 Maximum Likelihood Estimation 16 Především u složitějších metod (neuronové sítě, odhad parametrů skrytých Markovových modelů apod.).

KAPITOLA 2. AUTOMATICKÉ URČOVÁNÍ VZORŮ 25 Podívejme se na metodu maximální věrohodnosti v souvislosti s pravděpodobností výskytu koncovek pro daný vzor, například vzor píseň. V předem označených (trénovacích) datech se vyskytuje celkem sedm různých tvarů slov, která mají vzor píseň: da-ní, da-ni, dla-ň, hole-ně, kampa-ni, kampa-ň, skří-ň. Počet koncovek, jejich četnosti a odhadnuté pravděpodobnosti jsou shrnuty v tabulce 2.2. koncovka absolutní četnost relativní četnost -ň 3 0.42857 -ni 2 0.28571 -ně 1 0.14286 -ní 1 0.14286 Tabulka 2.2: Přehled koncovek vzoru píseň v trénovacích datech Narazíme-li při hodnocení na slovo, které má vzor píseň, můžeme podle našeho modelu říct, že s největší pravděpodobností (42,857 %) bude mít koncovku -ň. 2.4.2 Vyhlazování Uvažme, co se stane, pokud máme odhadnuté pravděpodobnosti pro vzor píseň (viz tabulka 2.2) a narazíme v textu na slovo náplněmi. Zakončení -emi v tabulce nemáme, a jelikož součet pravděpodobností možných jevů je vždy 1, musíme této koncovce přiřadit nulovou pravděpodobnost. Vidíme, že náš model není příliš dobrý slovu, které se vyskytuje v textu, přiřazuje nulovou pravděpodobnost (jev nemožný). Narazili jsme na problém, který se při aplikaci statistických metod v počítačové lingvistice vyskytuje velmi často problém řídkých dat. Ačkoli jsou pro češtinu dostupné poměrně rozsáhlé zdroje dat (milióny až stovky miliónů slov), stejně nastanou jevy, které se v těchto datech nevyskytují, a tudíž ve fázi trénování nebyly zachyceny (a nebyla patřičně upravena pravděpodobnosti jejich výskytů). Vyhlazování je metoda, jejímž úkolem je přiřadit nenulové pravděpodobnosti i jevům, které se v trénovacích datech vůbec nevyskytovaly z důvodu řídkosti dat. Stále ovšem musí platit, že součet pravděpodobností všech možných jevů je 1. Abychom mohli přiřadit nenulovou pravděpodobnost jevům neviděným, musíme naopak nějakým způsobem snížit pravděpodobnost jevům, které jsme v trénovacích datech viděli.

KAPITOLA 2. AUTOMATICKÉ URČOVÁNÍ VZORŮ 26 Laplaceův zákon Nejjednodušší způsob, jak dosáhnout přiřazení nenulových pravděpodobností, je každému možnému výsledku přiřadit absolutní četnost alespoň 1 (tedy předpokládáme, že každý výsledek jsme viděli alespoň jednou): P Lap (A) = C(A) + 1 N + B B je zde počet možných výsledků. Problém této metody je, že nikdy neviděným jevům přiděluje příliš velkou pravděpodobnost oproti jevům, které byly v trénovacích datech pozorovány s malou četností. Špatně rozlišuje jevy nemožné a jevy nastávající málokdy. V literatuře je tento postup označován jako Laplaceův zákon. Lidstonův zákon Používanější je zákon Lidstonův, který umožňuje nastavit, jaká četnost bude přidělena jevům, které se nevyskytovaly v trénovacích datech. Parametr λ ovlivňuje váhu, kterou se tyto jevy budou projevovat v celkovém rozdělení. Může nabývat hodnoty od 0, kdy se vzorec mění v původní odhad pravděpodobností pomocí metody maximální věrohodnosti, až po 1, což je vlastně Laplaceův zákon. P Lid (A) = C(A) + λ N + Bλ Je zajímavé, že na Lidstonův zákon můžeme pohlížet také jako na lineární kombinaci metody maximální věrohodnosti a uniformního rozdělení: 17 P Lid (A) = µ C(A) N + (1 µ) 1 B V literatuře [8] se uvádí jako nejpoužívanější hodnota parametru λ = 1 2. Jedná se zřejmě o lepší odhad než v případu Laplaceova zákona, ale stále to nemusí být hodnota optimální. Jak ale takovou optimální hodnotu najít? Jak již bylo zmíněno výše, snažíme se maximalizovat pravděpodobnost trénovacích dat. To nám ovšem v praxi příliš nevyhovuje, protože algoritmy nebudeme aplikovat na trénovací data, ale data reálná, která jsme ještě nikdy neviděli. Chtěli bychom tedy maximalizovat pravděpodobnost na reálných datech, ta ovšem nemáme k dispozici. Můžeme zvolit kompromis, nejdříve budeme maximalizovat pravděpodobnost trénovacích dat a poté se na jiných 17 Dosazením µ = N N+Bλ se dostaneme k původnímu vzorci.

KAPITOLA 2. AUTOMATICKÉ URČOVÁNÍ VZORŮ 27 datech budeme snažit odhadnout pravděpodobnosti jevů, které jsme nezaznamenali v trénovacích datech. Je zřejmé, že k poslednímu kroku potřebujeme data jiná než trénovací 18, používá se pro ně označení odložená data 19. Budeme tedy maximalizovat pravděpodobnost odložených dat, v případě Lidstonova zákona pomocí parametru λ. Pravděpodobnost dat umíme spočítat pro jednu konkrétní hodnotu parametru; budeme potřebovat metodu, jak získat maximum funkce P(λ) pro různé hodnoty λ. Metoda zlatého řezu Maximalizace (minimalizace) metodou zlatého řezu 20 je jednoduchý numerický algoritmus, který pro danou funkci určí extrém pomocí jejích hodnot. Funkce může být poměrně obecná: stačí, aby byla spojitá a aby v daném intervalu nabývala alespoň jednoho maxima (minima). Pro každou iteraci je potřeba spočítat hodnotu pouze v jednom dalším bodě. Předpokládejme, že funkce f(x) je na intervalu a, c spojitá a nabývá na intervalu (a, c) maxima. Existuje tedy bod b (a, c) takový, že f(b) > f(a) a současně f(b) > f(c). Metoda zlatého řezu hledá maximum na intervalu (a, c) následujícím způsobem: V delším z intervalů (a, b) a (b, c) vybereme bod x. Bez újmy na obecnosti můžeme předpokládat, že x (a, b), neboli a < x < b < c. Bod je vybrán tak, že dělí delší z intervalů v poměru zlatého řezu 21. Spočítáme f(x) a podle jejího výsledku změníme jeden z krajních bodů intervalu (a, c). Je-li f(x) > f(b), budeme maximum hledat v intervalu (a, b) (a < x < b), je-li f(x) < f(b), budeme maximum hledat v intervalu (b, c) (x < b < c). Maximum, které jsme dosud našli, je prostřední bod z aktuálního intervalu. Postup opakujeme, dokud interval, ve kterém extrém hledáme, není dostatečně malý (menší než předem daná hodnota). 18 Zajímá nás totiž pravděpodobnost jevů, které se v trénovacích datech vůbec nevyskytují, tedy z principu musí jít o jiná data. 19 Často jsou označovaná jako heldout data. Název poměrně dobře vystihuje, že data jsou odložená před trénováním za účelem vyhlazování. 20 V literatuře je často používán termín Golden Section Search. 21 (1 g) : g, kde g = 3 5 2

KAPITOLA 2. AUTOMATICKÉ URČOVÁNÍ VZORŮ 28 Jiný druh vyhlazování si představíme v kapitole 2.4.4, kde se bude jednat o vyhlazování n-gramů. 2.4.3 Nekontextové metody Nyní konečně můžeme přikročit k metodám, které použijeme pro nalezení nejpravděpodobnějších vzorů pro neznámá slova. V tomto oddílu se zaměříme na metody, které se zabývají pouze daným slovem, bez ohledu na slova okolní. Naším cílem je tedy odhadnout pravděpodobnost, s jakou je určitá dvojice kořen, vzor vzorem slova w, neboli: P( kořen, vzor w) První metodou, kterou si představíme, je výběr nejpravděpodobnějšího z možných vzorů, další metody se budou zabývat koncovkami slov a zakončením kořene slova. Nejpravděpodobnější ze vzorů Tato metoda je naprosto základní a asi jedna z prvních, která člověka při pohledu na problém napadne, je však až překvapivě účinná. Představme si, že pro neznámé slovo známe seznam dvojic kořen, vzor, které jsou pro něj přípustné (výstup algoritmu 2). Tento seznam se liší slovo od slova, záleží především na možných koncovkách slova. Není přesně určeno, jak dlouhé koncovky se berou v úvahu to záleží na tom, zda konec slova tvoří koncovku některého ze vzorů, či nikoli. Setříděný seznam možných vzorů tvoří vlastně něco jako otisk daného slova, který ho svým způsobem reprezentuje. Slovo, které je stejného vzoru (a stejného tvaru), bude mít pravděpodobně stejný nebo velmi podobný seznam možných vzorů. Úplně stejná úvaha platí i pro skupinu slov opět dostaneme seznam možných vzorů, ale tentokrát bude pro všechna slova společný. Seznam není nikdy delší než nejkratší ze seznamů pro jednotlivá slova 22. Například pro slova:demonstracích ademonstracemi je společný otisk 23 vzorů následující 24 : ns07.ns1.ns10.ns3x.ns7.ps18.ps5 22 Jak plyne z vlastností průniku. 23 Otisk pro jedno slovo má vzorů mnohonásobně více, je to způsobeno mnoha vzory s nulovou koncovkou. 24 Vzory jsou lexikograficky uspořádané a oddělené tečkou