This is an old revision of the document!
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→
vLayerAttributes
!!
- 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 | |
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á!
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”