[ 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 12:49]
zeman Stáhnout rozšířená data pro information retrieval.
user:zeman:morpho-challenge-2008 [2008/07/28 14:41]
zeman Odkaz na pokyny pro vyhodnocování.
Line 47: Line 47:
 vzorfiltr.pl < en.vzor > en1.vzor</code> vzorfiltr.pl < en.vzor > en1.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''.
 +
 +===== Morfematická segmentace =====
 +
 +Mám natrénovaný seznam vzorů, resp. seznam kmenů a koncovek. Segmentace ve skutečnosti znamená najít takové dělení slova na dvě části, aby první část odpovídala známému kmenu a druhá část známé koncovce.
 +
 +Slovo umím rozložit na právě dva morfémy (kmen a koncovka) nebo nechat nerozložené. Při přiřazování slov ke vzorům se přednostně zjišťuje, zda známe přímo danou dvojici kmen-koncovka. Pokud žádnou takovou dvojici nenajdeme, zjišťujeme, zda rozpoznáme alespoň koncovky (aniž bychom znali kmen).
 +
 +Rozklad slov na základě již vybudovaného seznamu vzorů se provede takto:
 +<code>mchallenge.pl kmeny.txt koncovky.txt < wordlist.eng > en.dz.txt</code>
 +
 +<code>cd $MC/data/2008
 +foreach l (ar de en fi tr)
 +  $MC/mchallenge.pl $l.kmeny.txt $l.koncovky.txt < wordlist.$l.txt > $l.dz.txt
 +end</code>
 +
 +
 +===== Úprava výstupu před odesláním =====
 +
 +Ve výstupních souborech musí být první slovo (tvar, který jsme měli rozebrat) identické s&nbsp;řetězcem, který jsme od organizátorů dostali, tedy také v&nbsp;původním kódování. Zbytek řádku mohou být více méně libovolné řetězce, kterými si označujeme morfémy. Mohli bychom výstupy prohnat převodem kódování inverzním k&nbsp;tomu, který jsme na začátku dělali se vstupem. O něco bezpečnější se zdá žádné překódování neprovádět a pouze nahradit první slovo kopií prvního slova ze vstupu (vstupní a výstupní soubor mají stejný počet řádků, což se dá snadno ověřit). Má to ale háček. Původní texty obsahují ne-ASCII znaky, které jsou pak vesměs zakódované v&nbsp;ISO Latin 1. Uvnitř Perlu budou tyto znaky reprezentované jako UTF-8. Pokud pak na výstupu zvolíme UTF-8, bude se výstupní slovo lišit od vstupního. Pokud zvolíme ISO Latin 1, budou v&nbsp;pytli morfémy (možná jde nejen o estetickou chybu, ale i o věcnou, protože např. v&nbsp;arabštině by to mohlo dopadnout tak, že většina morfémů se převede na řetězce otazníků). Takže nakonec bude možná přece jen lepší překódovat celé výstupní soubory do těch příšerných kódování, která používají organizátoři.
 +
 +<code>cd ~/data/morphochallenge/2008
 +$MC/mc_convert.pl -t ar < ar.dz.txt | gzip -c > wordlist.ara.dz.gz
 +$MC/mc_convert.pl -t de < de.dz.txt | gzip -c > wordlist.ger.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 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>
 +
 +===== 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.
  
-==== Morfematická segmentace ====+===== Skórování =====
  
-Mám natrénovaný seznam vzorů, respseznam kmenů a koncovekSegmentace ve skutečnosti znamená najít takové dělení slova na dvě části, aby první část odpovídala známému kmenu a druhá část známé koncovce.+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]].
  
-Slovo umím rozložit na právě dva morfémy (kmen a koncovka) nebo nechat nerozložené. Při přiřazování slov ke vzorům se přednostně zjišťuje, zda známe přímo danou dvojici kmen-koncovka. Pokud žádnou takovou dvojici nenajdeme, zjišťujeme, zda rozpoznáme alespoň koncovky (aniž bychom znali kmen).+===== Postřehy =====
  
-Rozklad slov na základě již vybudovaného seznamu vzorů se provede takto: +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ě. 
-<code>mchallenge.pl kmeny.txt koncovky.txt < wordlist.eng > en.dz.txt</code>+ 
 +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 parserProblé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 ]