==== Generování morfologických atributů z formémů a gramatémů (návrh) ==== === Postup === * Nejdřív určit MainPOS a SubPOS, podle toho se budou určovat další featury * Určit i Lemma, na základě zdrojového lemmatu (důležité hlavně pro #PersPron, ale i possesiva nebo cokoliv by se sbalovalo na t-rovině) * lemma se mění na t-rovině u: #PersPron, possesiv, (číslovek, deadjektivních adverbií, neurčitých zájmen -- jen opravdová, ne automatická) * něco obecnějšího na složené slovesné formy * do autom. skládání stromu z formémů (až po vygenerování všech funkcí; asi bude ale zvláštní funkce, protože to není to samé co auxy ve formému, časuje se to) * možná jen mezikrok, který vyrobí ty formy * možná mít celou složenou formu jako celek a dávat jí nejdřív jeden tag (-- včetně modálů? asi by vlastně nebyl problém, modál bude další kategorie) * Získání složených slovesných forem (asi by šlo i na a-rovině): t-node [ 1+x a/aux.rf a-node [ m/tag ~ '^V' ], a/lex.rf a-node [ m/tag ~ '^V' ] ]; === Modely === * Jeden model na všechny POSy? Spíš asi dělené, na různá políčka různý, určování zleva doprava * časem může být použit interset * zřejmě tři bloky: - určení slovního druhu - doplnění konstant (podle formému a slovníku) - určení jednotlivých morfologických hodnot * hodí se, že první blok už bude mít rody všech substantiv doplněné * trénování na zlatých formémech ? aby se netloukly s tím výsledkem ? * potom možná bude nižší accuracy, ale větší gramatikalicita -- asi by se mělo změřit == určení slovního druhu == * SubPOS podle č. morfologie * vynechat slovesné formy -- bude se určovat čas * vynechat vokalizaci předložek, bude se určovat zvlášť * u většiny slov jednoznačné, je pár složitých, nejhorší je #PersPron * přímo z t_lemma & formém se dá určit 99% případů * šlo by mít modely jen pro nejednoznačné případy, pro ostatní je generovat z MorphoLM (a brát první, co přijde) nebo mít uložené ve slovníku a jako fallback až LM * zřejmě nejde mít jeden velký model, který by ošetřil všechny triviální případy -- bude nutné si udělat pls.gz * modely: pro každé slovo zvlášť, tj. určení jen těch pár tříd === POSy a generované věci === * drop -- přidá se k vyhození, negeneruje se nic * substantiva: jen číslo a negace (pád z formému, rod ze slovníku) * adjektiva: číslo, negace, rod, pád (pokud není dán z formému) * zájmena: číslo, negace, rod, pád (není-li dán z formému), possesivnost (v určení lemmatu? -- //svůj// apod.) * číslovky: pád (není-li z formému), rod (není-li konstantní) * možná až potom dát ReverseNounNumberDependendency, aby to nedělalo bordel * slovesa: osoba, číslo, čas, rod (v tagu samotném), modální sloveso, negace * předložky: vokalizace ? === Potřebné featury === * IsSubject -- MarkSubject, featury od subjectu //pro agreement, hl. sloves, ale i adjektivních komplementů// * tj. mít ''subject->'' v ''LayerAttributes'' !! * z+2, featury od toho, co na tom visí //pro adjektiva: "každý z mužů, každá z žen"// t-node [ a/lex.rf a-node [ m/lemma ~ '^každý$' ], t-node [ a/aux.rf a-node [ m/form ~ '^z(e)?$' ] ] ]; * Koreference (gramatická) //pro "který", vztažná zájmena// * rodič a jeho featury //pro adjektiva: governors gender// * formém ovlivňuje gramatický slovesný čas -- v:že+fin, v:aby+fin, negaci: v:dokud+fin, v:než+fin === Zůstává ruční / původní === * Reflexiva tantum, Subconjs, DropSubjPersProns (?), MoveCliticsToWackernagel, Expletiva (?) * AddPrepos, AddParentheses, AddPunctuation -- hodně obecné, asi by se dalo generaliozvat! * **GenerateWordForms -- nutné pročistit**, je v tom bordel * Vokalizace ? ==== Slovesa ==== * Generování slovesných forem -- jednoduché ML na závorkový zápis * Výsledky: varianty pokusů: ^ pokus ^ popis ^ datum ^ accuracy ^ | verbal | původní varianta, přímo lemmata modálních sloves v targetu, bez featury pro osobu | 2011-12-08 18:48 | 94.641 | | verbal-person | s featurou "person" a navíc osobou uvedenou v targetu | 2011-12-14 18:56 | 94.085 | | verbal-persfeat | s featurou "person" | 2011-12-22 12:41 | 94.952 | | verbal-normalized | normalizované pořadí v targetu, sjednocené modály, jen deontmod | 2012-01-27 17:09 | 96.954 | | verbal-inf_mod_fix | normalizované pořadí v targetu, sjednocené modály, deontmod + is_modal | 2012-02-01 17:49 | 96.976 | | verbal-uni_mod | normalizované pořadí v targetu, sjednocené modály, jen is_modal | 2012-02-03 14:57 | 96.942 | * Výsledky nejsou úplně porovnatelné, původní verbal má jiné testovací instance (ale jen o trošku), navíc množina target values je pokaždé jiná! * aktuálně se používá verbal-uni_mod (proč?) === TODO === * nastavit nějak líp cost -- asi menší regularizaci, víc overtraining, aby se i řídké příklady zohlednily * přitom zřejmě chyby budou výjimečné (protože prostor featur je hodně hustý a ke každé chybě bude existovat i správný příklad) * možná filtrovat nemožné příklady (neshodné aux.rf se zlatými? kolik to bude %?) * váhy příkladům (čím delší string, tím větší váha :-)) * opravit nějak generování "by/bychom"