[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
user:zeman:morpho-challenge-2008 [2008/06/27 15:18]
zeman Úprava výstupu před odesláním.
user:zeman:morpho-challenge-2008 [2008/07/31 13:35]
zeman Přehození kapitol.
Line 44: Line 44:
 Seznam vzorů se buduje takto (práce je rozdělena do několika kroků, protože zpracování velkých dat trvá dlouho a při opravě nějaké drobnosti u filtrování vzorů nechceme muset opakovat i první dva kroky): Seznam vzorů se buduje takto (práce je rozdělena do několika kroků, protože zpracování velkých dat trvá dlouho a při opravě nějaké drobnosti u filtrování vzorů nechceme muset opakovat i první dva kroky):
 <code>csts2kmkon.pl < en.csts > en.kmkon <code>csts2kmkon.pl < en.csts > en.kmkon
-kmkon2vzor.pl < en.kmkon > en.vzor +kmkon2vzor.pl < en.kmkon > en.nefiltr 
-vzorfiltr.pl < en.vzor en1.vzor</code>+vzorfiltr.pl -okm en.kmeny.txt -okonc en.koncovky.txt < en.nefiltr en.vzor</code>
 Skript ''vzorfiltr.pl'' jako vedlejší účinek vedle standardního výstupu tiše vyrobí soubory ''kmeny.txt'' a ''koncovky.txt''. Skript ''vzorfiltr.pl'' jako vedlejší účinek vedle standardního výstupu tiše vyrobí soubory ''kmeny.txt'' a ''koncovky.txt''.
  
Line 71: Line 71:
 $MC/mc_convert.pl -t en < en.dz.txt | gzip -c > wordlist.eng.dz.gz $MC/mc_convert.pl -t en < en.dz.txt | gzip -c > wordlist.eng.dz.gz
 $MC/mc_convert.pl -t fi < fi.dz.txt | gzip -c > wordlist.fin.dz.gz $MC/mc_convert.pl -t fi < fi.dz.txt | gzip -c > wordlist.fin.dz.gz
-$MC/mc_convert.pl -t tr < tr.dz.txt | gzip -c > wordlist.tur.dz.gz</code>+$MC/mc_convert.pl -t tr < tr.dz.txt | gzip -c > wordlist.tur.dz.gz 
 +$MC/mc_convert.pl -t ar < ar.dz3.txt | gzip -c > wordlist.ara.dz3.gz 
 +$MC/mc_convert.pl -t de < de.dz3.txt | gzip -c > wordlist.ger.dz3.gz 
 +$MC/mc_convert.pl -t en < en.dz3.txt | gzip -c > wordlist.eng.dz3.gz 
 +$MC/mc_convert.pl -t fi < fi.dz3.txt | gzip -c > wordlist.fin.dz3.gz 
 +$MC/mc_convert.pl -t tr < tr.dz3.txt | gzip -c > wordlist.tur.dz3.gz</code> 
 + 
 +===== Skórování ===== 
 + 
 +Organizátoři poskytli program ''eval_morphemes.pl''. Pokyny pro správné vyhodnocování sepsali na stránce [[http://www.cis.hut.fi/morphochallenge2008/evaluation.shtml]]. Napsal jsem si kvůli tomu ''Makefile'', který je ve složce s daty a níže popsaný postup se z něj dá vyčíst. 
 + 
 +Co ještě potřebujeme: 
 + 
 +  * ''wordpairs_goldstd'' ... vzorek dvojic slov ze zlatého standardu. Získá se programem ''sample_word_pairs.pl''
 +  * ''wordpairs_proposed'' ... vzorek dvojic slov z výstupu analyzátoru. Získá se programem ''sample_word_pairs.pl''
 +  * ''morphemeanalyses_goldstd'' ... vzorové analýzy slov (zlatý standard) 
 +  * ''morphemeanalyses_proposed'' ... výstup analyzátoru 
 + 
 +Jaký je tedy úplný postup při vyhodnocování? 
 + 
 +  - Stáhnout program ''eval_morphemes.pl'' z webu [[http://www.cis.hut.fi/morphochallenge2008/evaluation.shtml]]. 
 +  - Stáhnout program ''sample_word_pairs.pl'' z téhož webu. 
 +  - Pro jazyk, který chceme vyhodnocovat, stáhnout vzorovou analýzu. Organizátoři poskytují pro každý jazyk [[http://www.cis.hut.fi/morphochallenge2008/datasets.shtml#goldstdfiles|vzorové analýzy]] pro podmnožinu 500 slov (pravděpodobně prostě proto, že větší část vzorových analýz chtějí udržet v tajnosti, aby soutěž byla regulérní). Jmenuje se např. ''goldstdsample.ara'' (pro arabštinu) a je k dispozici na adrese [[http://www.cis.hut.fi/morphochallenge2008/datasets.shtml#download]]. 
 +  - Pro jazyk, který chceme vyhodnocovat, stáhnout soubor náhodných dvojic slov ("random word pairs file"). Tento soubor obsahuje na každém řádku slovo (např. "abacus'", za tabulátorem pak jednu nebo více dvojic slovo2 [morfém], kde slovo2 je slovo, se kterým první slovo sdílí stejně pojmenovaný morfém, a [morfém] (uveden v hranatých závorkách) je označení tohoto sdíleného morfému. Např. pro "abacus'" jsou to dvojice "abacuses [abacus_N]" a "presbytery's [+GEN]"
 +  - Z výstupu analyzátoru, který chceme vyhodnotit, navzorkovat dvojice slov podobné těm, které jsme si stáhli pro gold standard. Zatímco ty stažené se použijí pro výpočet úplnosti, ty naše budou potřeba pro výpočet přesnosti. Námi zjištěná přesnost bude ve skutečnosti velmi hrubý odhad přesnosti, protože nemáme k dispozici celý gold standard. 
 +    - Nejdříve vytvoříme seznam relevantních slov, tedy takových, která se vyskytují ve vzorových analýzách, které jsme dostali k dispozici. <code>cut -f1 goldstdfile > relevantwordsfile</code> 
 +    - Potom náhodně vybereme 100 relevantních slov z výstupu našeho analyzátoru. <code>sample_word_pairs.pl -refwords relevantwordsfile < resultfile > wordpairsfile_result</code> 
 +  - Nyní již máme pohromadě všechny soubory potřebné jako vstupy pro vyhodnocovací program a můžeme spustit vyhodnocování: 
 +<code>eval_morphemes.pl -trace wordpairsfile_goldstd wordpairsfile_result goldstdfile resultfile</code> 
 + 
 +<code>cut -f1 $MC/data/2008/goldstdsample.eng > $MC/data/2008/relevantwords.eng 
 +$MC/sample_word_pairs.pl -refwords $MC/data/2008/relevantwords.eng < $MC/data/2008/en.dz.txt > $MC/data/2008/wordpairs_result.eng 
 +$MC/eval_morphemes.pl -trace $MC/data/2008/samplepairs.goldstd.eng $MC/data/2008/wordpairs_result.eng $MC/data/2008/goldstdsample.eng $MC/data/2008/en.dz.txt</code> 
 + 
 +===== Vyhodnocení ===== 
 + 
 +Moje vyhodnocení se bude lišit od oficiálních výsledků soutěže, protože mám k dispozici gold standard jen pro 500 slov z každého jazyka. Na prvním místě uvádím své výsledky, vpravo pak oficiální výsledky zveřejněné na stránkách soutěže. 
 + 
 +| Jazyk | F | P | R | Fo | Po | Ro | 
 +| en | 48.56 | 53.39 | 44.53 | 46.90 | 52.98 | 42.07 | 
 +| de | 27.67 | 30.28 | 25.47 | 36.98 | 53.12 | 28.37 | 
 +| fi | 30.97 | 47.44 | 22.99 | 30.33 | 58.51 | 20.47 | 
 +| tr | 32.68 | 59.46 | 22.53 | 29.23 | 65.81 | 18.79 | 
 +| ar | 15.78 | 79.86 | 8.76 | 21.86 | 77.24 | 12.73 | 
 + 
 +===== Zpracování převrácených slov a hledání předpon ===== 
 + 
 +<code># lrc 
 +cd $MC/data/2008 
 +foreach l (ar de en fi tr) 
 +  $MC/reverse.pl < $l.csts > $l.rev.csts 
 +  qsub.csh $MC/mc_jazyk.csh $l.rev 
 +end</code> 
 + 
 +<code>foreach l (ar de en fi tr) 
 +  cat $l.rev.kmeny.txt | $MC/reverse_line.pl > $l.kmeny1.txt 
 +  cat $l.rev.koncovky.txt | $MC/reverse_line.pl > $l.predpony.txt 
 +  $MC/mchallenge3.pl $l.predpony.txt $l.kmeny1.txt $l.kmeny.txt $l.koncovky.txt < wordlist.$l.txt > $l.dz3.txt 
 +end</code>
  
 ===== Zbývá udělat ===== ===== Zbývá udělat =====
  
-  * Vzít testovací data a mnou natrénované kmeny a koncovky a provést morfematickou segmentaci testovacích dat. Jedno slovo může být rozebráno několika způsoby. Morfémy mohou být identifikovány libovolným řetězcem, takže je nemusíme převádět zpět do původního kódování, ale na výstupu je každopádně potřeba uvést původní nerozdělený slovní tvar v&nbsp;původním kódování. 
   * Vyzkoušet skórování.   * Vyzkoušet skórování.
   * Pustit celý algoritmus na převrácená slova a získat předpony.   * Pustit celý algoritmus na převrácená slova a získat předpony.
   * Zkusit rozpoznat složená slova, resp. složené kmeny. Pouze jednoduchý přístup, snažit se najít uvnitř kmenu jiný existující kmen tak, aby to, co zbyde, byl také existující kmen nebo složenina.   * Zkusit rozpoznat složená slova, resp. složené kmeny. Pouze jednoduchý přístup, snažit se najít uvnitř kmenu jiný existující kmen tak, aby to, co zbyde, byl také existující kmen nebo složenina.
-  * Stáhnout doplňující seznamy slov pro soutěž 2 (information retrieval) a celý postup pro ně zopakovat. 
   * Vymyslet způsob, jak využít četnosti slovních tvarů, které jsme dostali s&nbsp;trénovacími daty.   * Vymyslet způsob, jak využít četnosti slovních tvarů, které jsme dostali s&nbsp;trénovacími daty.
   * Odeslat výsledky Mikkovi.   * Odeslat výsledky Mikkovi.
  
 +===== Postřehy =====
 +
 +Předpony, zdá se, fungují, ale na rozdíl od přípon by to tu nechtělo dávat společná písmena ke kmeni, nýbrž k&nbsp;předponě.
 +
 +Jednopísmenné předpony jsou problém. Nemůžu je úplně zakázat (české //o-, u-//), ale ve výstupu se mi nezdravě množí.
 +
 +Segmentaci dělám hladově, i když by to chtělo chart parser. Problém: máme 2 seznamy kmenů (jeden zbytky po předponách, druhý po příponách). Který seznam použít?
 +
 +Algoritmus 3 (předpony + kmeny + přípony) nedělá to, co má. Jaktože nepoznal vzor //abrupt - abruptly - abruptness//, když všechna tato slova jsou v&nbsp;datech a //-ly// i //-ness// jsou běžné koncovky?

[ Back to the navigation ] [ Back to the content ]