Table of Contents
PC Kimmo
Jak naplnit slovník PC Kimma? Předpokládejme, že už máme popsaná fonologická pravidla jazyka a máme navrženou základní strukturu podslovníků. Ve slovníku už jsou všechny základní vzory ohýbání slov. Jak nyní naplnit slovník z korpusu, aniž bychom museli všechna slova ručně opsat a přiřadit ke vzorům?
Scénář 1: anotovaný korpus
Předpokládejme, že máme k dispozici korpus, ve kterém už každé slovo má přiřazené lemma a morfologickou značku. Tento korpus pravděpodobně vznikl s pomocí existujícího morfologického analyzátoru. My však k tomuto analyzátoru nemáme přístup, a rádi bychom si tedy vytvořili vlastní. Taková úloha je poměrně jednoduchá, i když řešení není zcela automatické: nad každým vzorem se musíme zastavit zvlášť.
Jak najdeme všechna slova patřící ke vzoru žena? Nejdříve z korpusu vytáhneme všechna podstatná jména ženského rodu, tedy slova se značkou NNF.*
. Ostatní nás nezajímají.
Vybraná slova rozdělíme na ta, která jsme alespoň jednou viděli v 1. pádě jednotného čísla, a na ta ostatní. (Podle lemmatu a značky poznáme, které slovo jsme viděli ve kterých tvarech.) Z těch, která jsme viděli v 1. pádě, vyhodíme všechna, jejichž tvar v tomto pádě nekončil na -a. Pak bychom ještě podle 2. pádu mohli odlišit zvláštní případy slov jako Nikaragua a Bystrica. U slov, která jsme v 1. pádě neviděli, můžeme podobně postupovat podle dalších tvarů. Samozřejmě zůstanou některá slova, která půjdou zařadit pouze ručně, nebo vůbec.
Podobným způsobem půjde zařadit většinu ohebných slov.
Scénář 2: neanotovaný korpus
Opakovaně hledáme v korpusu slova, která zatím neumíme rozebrat, a snažíme se je přiřadit ke vzorům. Hypotéza: slovo města patří ke vzoru žena. Abychom tuto hypotézu ověřili, chceme vygenerovat všechny tvary daného slova podle daného vzoru a hledat jejich výskyty v korpusu. Předpokládejme, že všechna slova ve slovníku začínají rovnou kmenem (tj. žádné předpony). Bohužel nevíme, jaká část slova města je kmen, a odkud začíná koncovka. Zkusíme tedy postupně všechna dělení na kmen a koncovku (předpokládáme, že kmen je neprázdný, ale koncovka může být prázdná): m+ěsta
, mě+sta
, měs+ta
, měst+a
, města+λ
. Pro každý takový hypotetický kmen přidáme do slovníku kmenů podstatných jmen heslo, jehož třída pokračování odpovídá vzoru žena. Pozor, může se stát, že správný kmen kvůli hláskovým změnám neodpovídá žádnému prefixu slova nalezeného v korpusu! Např. při posuzování slova matce je správný kmen matk
, nikoli matc
. Proto musíme navíc vygenerovat alternativy pro všechny dvojice povrchového a slovníkového symbolu, které nejsou totožné, ale pravidla PC Kimma s nimi počítají. (Tenhle krok bychom teoreticky mohli vynechat v naději, že totéž slovo ještě potkáme v jiném tvaru, kde žádné hláskové změny nenastaly. Po přiřazení tohoto jiného tvaru ke vzoru by nám PC Kimmo už dokázalo vygenerovat všechny tvary včetně těch s hláskovými změnami. Pokud ale vhodný tvar v korpusu nenajdeme, slovo se nám nepodaří do slovníku vložit.)
Po vložení každého hypotetického kmene necháme PC Kimmo rozpoznat slovo města. Pokud ho rozpozná (a analýza obsahuje námi právě přidaný kmen, tj. není to náhoda, že to slovo už šlo analyzovat podle jiných pravidel), vezmeme toto dělení. Nemělo by se moc často stávat, že PC Kimmo schválí více než jedno dělení jednoho slova. Vyloučit se to ale nedá. V takovém případě nezbyde, než ověřit všechny varianty.
Jakmile známe kmen posuzovaného slova, může PC Kimmo vygenerovat všechny tvary daného slova podle daného vzoru. My můžeme spočítat, kolik z těchto tvarů se skutečně objevilo v korpusu. Takové skóre spočítáme postupně pro všechny vzory všech slovních druhů. Vzor, který má v korpusu nejlepší zastoupení, je pravděpodobně správným vzorem pro ohýbání daného slova.