140 likes | 319 Views
Zápočtová práce na POPJ Tvorba slovníku a pravidel do PC-Kimmo SLOVESA. Vojtěch Holub. Zad ání. Stáhněte a rozchoďte PC-Kimmo Vytvořte do PC-Kimmo slovník (soubor .lex) a pravidla (soubor .rul) pro slovní druh - slovesa K dispozici dostanete anotovaný korpus PDT
E N D
Zápočtová práce na POPJTvorba slovníku a pravidel do PC-KimmoSLOVESA Vojtěch Holub
Zadání • Stáhněte a rozchoďte PC-Kimmo • Vytvořte do PC-Kimmo slovník (soubor .lex) a pravidla (soubor .rul) pro slovní druh - slovesa • K dispozici dostanete anotovaný korpus PDT • Gramatiku si zjistěte v mluvnici (doporučená: Příruční mluvnice češtiny)
Gramatika • Čas přítomný:Způsob oznamovací: kmen prézentní + osobní koncovka (nes+u, nes+eš, nes+e, nes+eme...) slovesa se dělí na dva podtypy=> podle toho se volí osobní koncovkyI. nesu neseš nese ... II. prosím prosíš prosí ... volám voláš volá ...
Gramatika • Čas přítomný:Způsob rozkazovací: kmen prézentní + koncovky 2. os. sg: -0, -i, -ej 1. os. pl: -me, -eme/ěme, -ejme 2. os. pl: -te, -ete/ěte, -ejte • Čas minulý kmen minulý + koncovky(-l, -la, -lo, -li, -ly)sg.pl.1. os.nesl nesli/nesly2. os. nesl nesli/nesly3. os. nesl/nesla/neslo nesli/nesly/nesla
Gramatika • Kmen prézentní X Kmen minulý • Většina sloves má kmen minulý jiný než kmen prézentní !!! • Není možné algoritmicky převést jeden kmen na druhý • Velké rozdíly i u velmi podobných slovesbrát : ber – brahrát : hraj – hrá
Program • Účel programu je získat z korpusu všechny prézentní a minulé kořeny sloves, jejich infinitiv a skupinu koncovek, která může následovat • Popis algoritmu:- Definujeme pole koncovek minulých a přítomných – každé zvlášť - Pro koncovky přítomné definujeme jejich podtřídu podle tvaru koncovky - Pro každé sloveso (1 znak v anotaci = V): začátek cyklu - Pokud je druhý znak v anotaci f – infinitiv – nemá koncovku (\alt End) - Jinak pokud je devátý znak v anotaci P (přítomný čas), postupně porovnáváme koncovku slovesa s přítomnými koncovkami – najdeme-li shodu, koncovku odtrhneme, zjistíme podtřídu a zapíšeme pokračování pro přítomné koncovky dané podtřídy (např. VPresentSufT1)
Program - Jinak pokud je devátý znak v anotaci R (minulý čas), postupně porovnáváme koncovku slovesa s minulými koncovkami – najdeme-li shodu, koncovku odtrhneme a zapíšeme pokračování pro minulé koncovky - Pokud se tvar slovesa po odtržení (kmen) již v lexikonu nevyskytuje přidáme ho do pole (společne s infinitivem, pokračováním a slovním druhem) konec cyklu - Seřadíme pole podle abecedy – klíčem je kmen - Vložíme pole do souboru
Problémy • Problémy korpusu:- Cizojazyčná slovesa- V české abecedě nevyskytující se znaky- Překlepy- Gramatické chyby či nespisovné výrazy- Nejsou obsažena všechna slovesa v čase minulém, přítomném a infinitivu • Problémy lexikonu:- V pravidlech nejsou aplikována jiná než defaultní pravidla- Není zařazen rod trpný a přechodníky
Ukázka lexikonu Slovesa Koncovky
Závěr Má práce byla poměrně náročná a vyžadovala nastudování mnoha materiálů. I přes ohromnou nepravidelnost a variabilitu českého jazyka, přes mnohé uvedené problémy a absenci pravidel jsem si jist, že analýza zadaného slovesa bude z minimálně 80 procent úspěšná a přesná. Myslím, že toto je velmi dobrý výsledek.