K počítačové morfologické analýze češtiny Pavel Šmerk Centrum zpracování přirozeného jazyka Fakulta informatiky Masarykova univerzita http://nip.fi.muni.cz/ma, /nlp/projekty/ajka tyto slidy: http: //www. f i .muni. cz/~smerk/majka 16.9.2013 Pavel Smerk (CZPJ Fl MU) K počítačové morfologické analýze češtiny < * ► s -00.0 16.9.2013 1/27 Morfologická analýza Morfologická analýza • nejnižší rovina zpracování jazyka v textové podobě • (český text lze na slova dělit celkem triviálně, až na gen., byl-liap.) • morfologická analýza by měla pro každý slovní tvar vrátit základní slovní tvar (lemma, položka slovníku) a možné gramatické významy — kombinace hodnot relevantních gramatických kategorií jako např. slovní druh, pád, číslo, osoba atd. • (nikoli tedy rozklad na morfémy, jak by to někdo mohl chápat) • + syntéza, lemmatizace (vracím jen lemma), ... • slovní tvar stroj: • stroj: podst. jm., mužský neživotný, singulár, nominativ/akusativ • strojit, sloveso, 2. os. j. č., rozkazovací způsob, nedokonavé • problém má tři části [toto není „ke zkoušce"! Jen místo osnovy :-] • jakou informaci chceme/potřebujeme zachytit, popsat (zde s. 3-4) • jak si tuto informaci, tato data budeme organizovat (s. 7-22) • jak implementujeme analýzu či syntézu nad těmito daty (s. 23-27) I K počítačové morfologické analýze češtiny I 16.9.2013 2/27 Morfologická analýza Co chceme popisovat • neshoda může být teoretická (lingvisté) i praktická (aplikace) • zejména je reálná: současné dva hlavní popisy téhož jazyka, pražský a brněnský nejsou „isomorfní", vzájemně převoditelné • sjednocení se řeší už mnoho let, aktuálně opět konkrétní kroky • různé možnosti lemmatizace • do jaké míry při určení základního tvaru zohlednit slovotvorbu/flexi • otcova => otcův/otec, učený => učený/učit, učení => učení/učit • nejstaršího => starý/nejstarší (vyhledávání: [věk]... člověk) • nebral => brát/nebrat (úplatky); nemalý => malý/nemalý • bakalářka z VŠMIE: pro online marketing se prý jednotné a množné číslo jmen považují za různá klíčová slova (detaily jsem nezjišťoval) • jak naložit s dubletami • mysli => myslet/myslit • Gorkého => Gorký/Gorkij • kapitalismem => kapitalismus/kapitalizmus • o diachronii (všechen/všecken) a varietách (okno/vokno) nemluvě I K počítačové morfologické analýze češtiny I 16.9.2013 3/27 Morfologická analýza Co chceme popisovat • různé možnosti volby gramatických kategorií a jejich hodnot • které slovní druhy: zkratky, interpunkce, čísla, speciality (cos, aby) • které gramatické kategorie: druhy zájmen, číslovek, příslovcí, spojek, pád u předložky, životnost koho/čeho • jaké hodnoty kategorií: duál, druhy zájmen ap. • vše dosud uvedené je ale ještě to nejmenší • větším problémem je, jaká slova budou mít jaké značky • ke kterým všem slovním druhům mají patřit a, ani, ať, až,... • největším problémem je stanovení pravidel pro určení slovního tvaru v konkrétním větném kontextu • může-li mít slovní tvar značky A, B a C, musí být jasné, kterou pro konkrétní výskyt zvolit, mezianotátorská shoda musí být co nejvyšší • viz např. konechttp://nlp.fi.muni.cz/projekty/desman/, vzít 100 výskytů jednotlivých slov a zkusit, jestli pravidla vždy postačí • pokud mluvčí nejsou schopni pravidla spolehlivě aplikovat, je otázka, jestli tato odrážejí nějakou jazykovou realitu I K počítačové morfologické analýze češtiny I 16.9.2013 4/27 Morfologická analýza Značky • gramatická informace je reprezentována řetězcem znaků • poziční systém: značka kóduje jen hodnoty kategorií • kategorie je jednoznačně určena pozicíve značce • pražský systém — 15 pozic: slovní druh, specifikace, rod, číslo, pád, přiví, rod, přiví, číslo, osoba, čas, stupeň, negace, slovesný rod, volné (13, 14), styl • NNIS4-----A---- • substantivum, obyčejné, muž. neživ., singulár, akuzativ, afirmace • http://www.korpus.cz/bonito/znacky.php • atributový systém: dvojice atribut-hodnota bez ohledu na pořadí • brněnský systém — podobné kategorie i hodnoty jako pražský • např. atribut c znamená pád a může nabývat hodnot 1 až 7 • klgInSc4 = substantivum, muž. neživ, singulár, akuzativ • nezachycena specifikace a afirmace • výhody: přehlednější, úspornější, snadno rozšiřitelný, čitelné RE • http://nlp.f i.muni.cz/proj ekty/aj ka/tags.pdf <3> <|> <|> 1 -O^O I K počítačové morfologické analýze češtiny I 16.9.2013 5/27 Morfologická analýza Značky • „Heterogenní" systém (Bratislava) • vychází z pozičního systému, prázdné pozice jsou vynechávány • první znak udává slovní druh, ostatní kódují kategorii i hodnotu • tedy odpovídají dvojici znaků atributového systému • pořadí je závazné, ale každý znak je užit jen v jednom „významu" • pořadí by tedy mohlo být i volné, znaky se ovšem rychle vyčerpají • SSis4 • substantivum, subst. deklinace, muž. neživ, singulár, akuzativ • výhodou jsou nejkratší značky, na obrazovku se mi vejde víc info • nevýhodou je malá rozšiřitelnost a složitější programové zpracování • http://korpus.j uls.savba.sk/morpho.html • Jiný typ jazyka, zcela jiné řešení: BNC tagset • pevná množina několika desítek „hotových" značek, např. • AJO Adjective (general or positive) (e.g. good, old, beautiful) • AJC Comparative adjective (e.g. better, older) • AJS Superlative adjective (e.g. best, oldest) • PNX Reflexive pronoun (e.g. myself, yourself, itself, ourselves) • http://www.natcorp.ox.ac.uk/docs/c5spec.html < □ ► + seznam koncovkových množin +barvit NEWES717, NEWES744, konc44 NEWES710 NEWES705, NEWES778 <ě> NEWES757 NEWES759 Pavel Smerk (CZPJ Fl MU) K počítačové morfologické analýze češtiny 16.9.2013 8 / 27 Původní morfologický analyzátor ajka Ukázka slovníku a definice vzorů příklad koncovkových množin • jména jsou arbitrárni, generovaná nějakým programem • množina dvojic koncovka + jí odpovídající značka =NEWES717 {t, =NEWES705 {y. {i, k5aImF} k5aImAgFnP} k5aImAgMnP} k5aImAgFnS} • interpretace • z lemmatu odtrhnu první intersegment a koncovku vzoru, čímž dostanu slovní základ, k němu pripojujú intersegmenty a koncovky • hanbit => hanb + -i-t • => hanb-i-t k5aImF, ...,hanb-il-i k5aImAgMnP, ... K počítačové morfologické analýze češtiny 16.9.2013 9/27 Pavel Smerk (CZPJ Fl MU) Původní morfologický analyzátor ajka Princip analýzy nad uvedenými daty • analyzované slovo w-\ w2 ... w,■ = Z + / + K • základ Z, intersegment / i koncovka K mohou být nulové • např. slon-0-0, naopak O-člověk-0, 0-lid-é • základem tedy může být e, w-\,..., w-\... w, • pro každý základ Z = w-\ ...wn nalezený v seznamu základů se v jeho vzoru zkusí dohledat kandidáti na wn+1 ...Wj = l+K • značky příslušné k nalezeným trojicím Z + / + K jsou výstupem • ve skutečnosti se ještě počítá s možnými prefixy nej a ne a postfixy, např. s v Byls tam? Pavel Šmerk (CZPJ Fl MU) K počítačové morfologické analýze češtiny 16.9.2013 10/27 Obecné statistiky koncovky 83 intersegmenty 3.265 kmeny 389.793 značky 1.201 kone. množiny 1.340 vzory 1.838 generované tvary 6.294.591 včetně hovorových 11.693.520 Vesměs automaticky generovaná část slovníku • Substantiva - deverbativa (32%) • Adjektiva - posesiva mužská (12%), ženská (5%), deverbativa (64%) • Slovesa - prefigovaná (78%) • Adverbia - odvozená z adjektiv (96%) Počet kmenů, vzorů a tvarů jednotlivých SD Slovní druh Kmenů Vzorů Tvarů Včetně hovor. Podstatná jména 131.776 778 967.231 1.217.442 Přídavná jména 170.771 69 3.831.134 8.167.371 Zájmena 199 104 2.150 3.035 Číslovky 217 44 1.699 1.699 Slovesa 42.720 758 2.014.122 2.155.125 Příslovce 41.587 71 146.244 146.247 Předložky 333 6 350 350 Spojky 195 2 213 213 Částice 251 1 264 264 Citoslovce 1.039 1 1.085 1.085 Zkratky 689 2 689 689 Počty vzorů podle počtu kmenů Počet kmenů Počet vzorů Příklad vzorů 1 580 den, hůl, křest, vrzat 2 208 křemen (skřemen), líh (klíh) 3 120 okres (ples, expres) 4-10 345 • • • • • • • • • 14071 i nově 14199 i nový 18634 i otcův 33335 i nesen 37689 i stavení Vztah ke klasickým vzorům - příklad Mužský životný Počet vzorů Mužský neživotný Počet vzorů pán 44+28 hrad 49+14 muž 22+2 les 15+1 předseda 15+3 stroj 17 soudce 2 hrad/les 14+1 pán/muž 4 les/stroj 2 stroj/hrad 6 výjimky 6 3 ind./adj./pl.t. 2+8+5 2+1+28 celkem 141 153 Systém vzorů - příklad Klasický vzor pán: • kmen se nemění - nom. pl. -/, -ové (slon), -é (občan), -/ (docent), -/, -é (akrobat), -ové (filosof) • samohl. alternace kmene - nom. sg./zbytek (pes), sg./pl. (přítel) • souhl. alternace finály - k-c (vlk), h-z (vrah), ch-š (hroch), r-ř (doktor), r-ř (mistr), g-z (archeolog), k-č (člověk), h-z-z (bůh) • alternace finální skupiny - medvídek, daněk, Achilles, brontosaurus, génius • cizí koncovka nom. sg. - Fero, Antonio 10 Nový formát dat morfologického analyzátoru Nevýhody stávajícího formátu dat morf. analyzátoru • současný stav: „pražský" a „brněnský" analyzátor • i přes dílčí odlišnosti je organizace dat v principu shodná • slovník základů + soubor vzorů, množin koncovek se značkami • pro každý základ jsou specifikovány vzory, připojením jejich koncovek se získají tvary se značkami • základy i koncovky jsou řetězce, které se jen skládají k sobě • z posledního plyne zásadní nevýhoda: redundance popisu • Luděk/Luďka, Staněk/Staňka, vrah/vraha, medvídek/medvídka atp. se skloňují stejně či podobně, ale kvůli drobným odlišnostem vyžadují vlastní řešení (v Brně extra vzor, v Praze vzor či výjimky) • redundance vede k nekonzistenci při doplňování či opravách • (je to podobné jako mít konstanty přímo v programu) příklad (vše m. živ.): doplnění hovorového Gsg -a: muža • 217 vzorů, tedy nutno automaticky, Gsg -e -a • ovšem u cca 10 vzorů je -ě místo -e; u strašpytel a neumětel -a už je • kontrola obtížná, ne-li nemožná <3> <|> <|> 1 -O^O I K počítačové morfologické analýze češtiny I 16.9.2013 11/27 Nový formát dat morfologického analyzátoru Nevýhody stávajícího formátu dat morf. analyzátoru • takových nekonzistencí nejrůznějších druhů je celá řada • (v Praze předpokládám podobný stav) • na druhou stranu, jde vesměs o okrajové věci • nikdo to „nereklamuje", vyvstalo až při přeuspořádání • takže jakékoli řešení (ať už prevence, nebo lék) je příliš drahé, protože náklady budou velké, ale reálný přínos bude malý • (podobné problémy má i IJP či SSJČ, obecně cokoli tvořené ručně) • méně závažnou nevýhodou je formální, strukturní nekonzistence • tedy možnost popsat tutéž věc různými způsoby důsledek skutečnosti, že struktura dat nemá interpretaci • původně byla daná hranice mezi intersegmentem a koncovkou a koncovkové množiny byly tvořeny podle pevných pravidel, teď částečně technické řešení Pavel Šmerk (CZPJ Fl MU) K počítačové morfologické analýze češtiny 16.9.2013 12/27 Nový formát dat morfologického analyzátoru Nový formát dat • zůstává slovník a soubor vzorů • snaha oddělit pravidelné (vzory, program) a nepravidelné (slovník) • snaha o „interpretovatelnost" • různé cesty k témuž výsledku mohou mít odlišnou interpretaci • ovšem za předpokladu, že to vůbec chci nějak interpretovat • základy (slon:pán) ve slovníku, koncovky uspořádané do vzorů pán klgM nScl 0 nSc2 a nSc3 u, ovi • základy se spojují s koncovkami: slon-0, slon-a, ... • odpovídající značky dostanu spojením části společné pro celý vzor a části specifické pro použitou koncovku: klgMnScl, ... Pavel Smerk (CZPJ Fl MU) K počítačové morfologické analýze češtiny 16.9.2013 13/27 Nový formát dat morfologického analyzátoru Nový formát dat • po spojení základu s koncovkou (slon-0) se slovní tvar získá aplikací předdefinovaných pravidel • triviálně je potřeba odstranit - a 0 • ňe —>• ně: tuleň-e —>• tuleňe (nebo tulen-ě) —>• tuleně • na pořadí pravidel někdy nezáleží z hlediska výsledky ale může záležet z hlediska mezivýsledku, zde např. „zvuková" podoba • Ábel x ďábel => Ábel x ďáb.el: .eC-0 ->• eC-0, .eC-V ->• C-V • (u Luď. ek lze tvrdit, že jde o kontext, u ďáb. el zjevně ne) • vlk-i —>• vlc-i (ale také pán-i —>• páň-i —>• páni —>• páni) použitelnost koncovek lze omezit podmínkou na konec základu • např. nPc6 ech, ich/[ghk] | ch (ve vzoru) • už jen toto málo stačí pro popis mnoha dosud oddělených vzorů Luď. ek-0 —>• Luďek-0 —>• Luďek —>• Luděk • pe j s. ek-ich —>• pe j sk-ich —>• pe j sc-ich —>• pe j scich Pavel Šmerk (CZPJ Fl MU) K počítačové morfologické analýze češtiny 16.9.2013 14/27 Nový formát dat morfologického analyzátoru Nový formát dat • dále (letem světem, netřeba všemu detailně porozumět) • tvorba vzorů děděním: soudce:muž nScl e nSc5 e • možné koncovky se při tvorbě vzoru defaultně přepisují • pokud bych před část značky uvedl +, přidají se • omezené vzory: despota :pán_nP + singulárové koncovky • pomocné vzory pro koncovky: -ové klgM nPcl ové • odvození z více vzorů: filozof: pán, -ové; dřevokaz: pán, +muž • příklad rozdílné interpretace téhož výsledku g => Npl jen g-ové • nPcl i/[~g], ové/ — tvary typu *mázisystémově nemožné • mág: f ilozof — shodou okolností takové slovo aktuálně neexistuje Pavel Šmerk (CZPJ Fl MU) K počítačové morfologické analýze češtiny 16.9.2013 15/27 Nový formát dat morfologického analyzátoru Nový formát dat dále • hovorové tvary: Npl (a Vpl) ?učitelové, ale *pokrytcé • obecně: 1) ne/lze -é; 2) které z koncovek -i a -oľéjsou spisovné • filozof:pán,<-ové;občan:pán,<-é;akrobat:pán,<-i,+-é • (bez < bych musel substandardní koncovky definovat ve vzorech -é) • více slovních základů, nepravidelné tvary (tedy slovník) přítel:muž,<-é krejč=í pokud sufixy připustím i v seznamu vzorů, mám derivaci • např. klgM:=°/„ov, kde klgM bude „předek" mužských vzorů <3> <|> <|> 1 -O^O I K počítačové morfologické analýze češtiny I 16.9.2013 18/27 Nový formát dat morfologického analyzátoru Od slovníku vzorů ke slovníku rysů • implicitní pravidla: typické, pravidelné chování podle zakončení základu nebo jeho rysů vyjádřených značkou ve slovníku $klgM \Ko město_nS,+-ovi,pán_nP,muž_nP/$M|i,-ové s/qJO muž,100 lemmat) je vidět, že pro >90 % životných maskulin stačí část značky, nebo i jen vyznačení přípony • to asi odpovídá realitě lépe než předchozí model dat • lidé si ke slovu nepamatují vzor, natož jeden z cca 2000 • dítě umí skloňovat i s výjimkami ještě než jde do školy • stačí mi vědět, že gaučo je mužský životný a umím jej vyskloňovat • klgM možná odvozuju z nějaké sémantiky, ale to už je celkem jedno • ani u kok.eš-e si nepamatuju vzor, jen drobné upřesnění defaultu • navíc, v principu skutečně jde o slovníkovou informaci • (tedy nikoli vzor rozexpandovaný do slovníku) • já totiž nevím, proč to tak je, prostě to tak je v nějakém Zdroji, musím se to naučit a pamatovat si to: koksové, nikoli kokši — a toto si musím pro každé takové slovo pamatovat zvlášť • a nebo to důvod má, ta slova mají něco společného (a nemám je naučená zvlášť), no a pak je potřeba to adekvátně popsat, tím lépe Pavel Šmerk (CZPJ Fl MU) K počítačové morfologické analýze češtiny 16.9.2013 21 / 27 Nový formát dat morfologického analyzátoru Vlastnosti a přínos nového formátu • významná redukce dosavadní redundance • výrazně vyšší „lingvistická přijatelnost" • slova lze řadit k tradičním vzorům • hranice mezi kmenem a koncovkou může odpovídat mluvnicím • lze zachytit pravidelné hláskové změny (alternace) • formát umožňuje slovotvorné vztahy a morfematickou analýzu • umožňuje rozlišit pravidelné, typické jevy od okrajových, u kterých navíc stačí popsat jen odchylku od většinového chování • různé zápisy téhož lze zpravidla i různě interpretovat • jednotlivé možnosti jsou vzájemně nezávislé, lze tedy některé nepoužívat • celkově prokazuji, že pro popis dat nejsou potřeba žádná „technická" řešení, že není nutný zásadní rozdíl mezi lingvistickým popisem a popisem vhodným pro počítač Pavel Šmerk (CZPJ Fl MU) K počítačové morfologické analýze češtiny 16.9.2013 22 / 27 Nový morfologický analyzátor májka Nový morfologický analyzátor májka • ajka byla už příliš složitá, a proto v podstatě nerozšiřitelná • využití přístupu popsaného v disertační práci Jana Daciuka • analýza je realizována pouhým vyhledáním tvaru v seznamu WLT • data jsou vlastně seznam dotaz:odpověď ve formátu ježek:A:klgMnScl «— ježek:ježek:klgMnScl ježka:Cek:klgMnSc2 <- ježka:ježek:klgMnSc2 ježka:Cek:klgMnSc4 «— ježka:ježek:klgMnSc4 krtek:A:klgMnScl <- krtek:krtek:klgMnScl krtka:Cek:klgMnSc2 <- krtka:krtek:klgMnSc2 krtka:Cek:klgMnSc4 <- krtka:krtek:klgMnSc4 • seznam lze chápat jako konečný jazyk => existuje pro něj DAFSA • musí být minimalizovaný, jinak by byl nepoužitelně velký (viz i dále) • lemma je potřeba kódovat, jinak by minimalizace nepomohla • Daciuk nabízí inkrementální tvorbu zachovávající minimalizovanost • (toto je nezávislé na předchozí části: z původních dat ajky lze generovat WLT, naopak z nových dat lze generovat data pro ajku) Pavel Smerk (CZPJ Fl MU) •0 0,0 K počítačové morfologické analýze češtiny 16.9.2013 23 / 27 Nový morfologický analyzátor májka Nový morfologický analyzátor májka • deterministický automat neminimalizovaný • deterministický automat minimalizovaný • „analýza" je jen rychlé a jednoduché procházení tohoto FSA • deterministický průchod dle „dotazu" + dohledání všech „odpovědí" I K počítačové morfologické analýze češtiny I 16.9.2013 24/27 Nový morfologický analyzátor májka Nový morfologický analyzátor májka • obdobně data pro lemmatizaci, generování, segmentaci atp. • lemmatizace: krtek:A, krtka:Cek • generování: krtek:A:klgMnScl, krtek:Cka:klgMnSc2 • nebo generování z lemmatu a značky: krtek: klgMnSc2: Cka • převod na původní strukturu: krtek:C.ek-0, mužova: D=°/0ov-a • až po aplikaci některých pravidel: krtek:Cek-0, krtka:Ck-a • pro čísla a složeniny (trojciferný, českopolský) gramatika • FSA využitelné i obecně (frekvence slov v aplikaci Deriv) [judy?] • brazilská portugalština 0.25 B/řádek, němčina 0.15 • je to ovšem zavádějící, informace je tam prostě pár MB • nicméně obava z velkého seznamu (Gelbukh '03) není odůvodněná Pavel Šmerk (CZPJ Fl MU) K počítačové morfologické analýze češtiny 16.9.2013 25 / 27 Nový morfologický analyzátor májka Charakteristiky a výsledky analyzátoru májka • statistické informace o (některých) slovnících slovník řádků zdroj MB slovník MB bytů/řádek w 13,609,590 186 3.3 0.240 w —>• 1 14,101,767 240 4.0 0.287 w —>• l+t 80,303,929 2,478 4.4 0.054 w —>• w 957,464,060 19,993 6.1 0.006 • porovnání s morfologickým analyzátorem ajka velikost dat čas v sekundách ajka májka ajka májka poměr analýza 4.4 18.22 2.88 6.3x lemmatizace 3.1 4.0 16.76 1.57 10.7x tvary 6.1 55.33 8.42 6.6x diakritika 3.3 8698.80 1.61 5403x • analýza 4.6x rychlejší proti pražskému analyzátoru Morfo (11 MB) • májka je používána v Seznam.cz a projektech IS MU Pavel Šmerk (CZPJ Fl MU) K počítačové morfologické analýze češtiny 16.9.2013 26 / 27 Nový morfologický analyzátor májka Výhody a přínosy nového řešení • naprosto zásadní výhodou je jednoduchost: průchod automatem je nezávislý na konkrétních datech, funkcionalitu rozšiřuji, případně měním datovými soubory, nikoli změnami kódu analyzátoru • výjimkou mohou být např. prefixy nej- a ne- či složeniny • obslužné kódy pro jednotlivé datové soubory jsou nezávislé • to vše je obrovský rozdíl například proti analyzátoru ajka [allt] • příjemnou výhodou je samozřejmě výrazné zrychlení • přičemž se nejedná o okrajový problém, který by dosud jen nebyl dostatečně řešen • teoretický přínos • naprosté oddělení popisu dat a analyzátoru • prokazuji, že pro realizaci počítačové morfologické analýzy jazyků, jako je čeština (s morfologií na konci slova), nejsou potřeba žádné speciální datové struktury či algoritmy I K počítačové morfologické analýze češtiny I 16.9.2013 27/27