[ 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

Next revision
Previous revision
Next revision Both sides next revision
user:zeman:morpho-challenge-2008 [2008/05/06 09:03]
zeman vytvořeno
user:zeman:morpho-challenge-2008 [2008/06/27 12:49]
zeman Stáhnout rozšířená data pro information retrieval.
Line 2: Line 2:
 Stránky soutěže jsou na http://www.cis.hut.fi/morphochallenge2008/. E-mailová adresa organizátorů je [[morphochallenge2007@james.hut.fi]]. Poznámky k mému loňskému řešení jsou na stránce [[Morpho Challenge 2007]]. Stránky soutěže jsou na http://www.cis.hut.fi/morphochallenge2008/. E-mailová adresa organizátorů je [[morphochallenge2007@james.hut.fi]]. Poznámky k mému loňskému řešení jsou na stránce [[Morpho Challenge 2007]].
  
-Data mám v ''~/data/morphochallenge/2008''. Programy mám v ''~/projekty/morphochallenge''.+Data mám v ''~/data/morphochallenge/2008''. Programy mám v ''~/projekty/morphochallenge'' (odkaz na data vede i odsud)Původně byly v ''~/zapoctaky/konc''
 + 
 +<code>setenv MC /home/zeman/projekty/morphochallenge</code>
  
 ===== Příprava dat ===== ===== Příprava dat =====
Line 9: Line 11:
  
 <code>cd ~/data/morphochallenge/2008 <code>cd ~/data/morphochallenge/2008
-gunzip -c wordlist.ara.gz | ./mc_convert.pl -f ar > wordlist.ar.txt +gunzip -c wordlist.ara.gz | $MC/mc_convert.pl -f ar > wordlist.ar.txt 
-gunzip -c wordlist.eng.gz | ./mc_convert.pl -f en > wordlist.en.txt +gunzip -c wordlist.eng.gz | $MC/mc_convert.pl -f en > wordlist.en.txt 
-gunzip -c wordlist.fin.gz | ./mc_convert.pl -f fi > wordlist.fi.txt +gunzip -c wordlist.fin.gz | $MC/mc_convert.pl -f fi > wordlist.fi.txt 
-gunzip -c wordlist.ger.gz | ./mc_convert.pl -f de > wordlist.de.txt +gunzip -c wordlist.ger.gz | $MC/mc_convert.pl -f de > wordlist.de.txt 
-gunzip -c wordlist.tur.gz | ./mc_convert.pl -f tr > wordlist.tr.txt</code>+gunzip -c wordlist.tur.gz | $MC/mc_convert.pl -f tr > wordlist.tr.txt</code>
  
-===== Zbytek této stránky je zatím pouhá kopie z roku 2007 =====+Můj skript pro automatické rozsekání slov na kmeny a koncovky předpokládá, že vstup je textový korpus ve [[:formát CSTS|formátu CSTS]]. Nejprve tedy musíme trénovací seznamy slov a jejich četností převést do tohoto formátu.
  
-Dostali jsme pro každý jazyk (angličtinu, němčinu, finštinu, turečtinu a arabštinuseznam slovních tvarů a jejich četnostíMěli jsme za úkol pro každý slovní tvar vrátit jeho dělení na morfémyMorfémy mohly být identifikovány libovolným řetězcem, při vyhodnocování se pouze zjišťovalo, zda se u slov, která mají obsahovat tentýž morfém, skutečně opakuje stejně pojmenovaný morfém.+<code>cd $MC 
 +foreach l (ar de en fi tr) 
 +  mc2csts.pl < data/2008/wordlist.$l.txt -l $l > data/2008/$l.csts 
 +end</code>
  
-Moje zpracování se skládá ze dvou částí: +===== Trénování morfologických vzorů =====
-  - Rozebrat slova na vstupu, získat seznam vzorů, kmenů a koncovek. +
-  - Znova projít slova na vstupu, každé přiřadit k jednomu nebo několika vzorům a vypsat odpovídající rozklady.+
  
-Nijak nevyužívám informaci o četnosti slovních tvarů ani o kontextu slov v korpusu. Slovo umím rozložit na právě dva morfémy (kmen a koncovkanebo nechat nerozložené. Při přiřazování slov ke vzorům se přednostně zjišťujezda známe přímo danou dvojici kmen-koncovka. Pokud žádnou takovou dvojici nenajdeme, zjišťujeme, zda rozpoznáme alespoň koncovky (aniž bychom znali kmen).+Pro některé jazyky (zejména pro finštinutrvá zpracování déle, než by se chtělo čekata vyplatí se tedy úlohy odeslat na cluster:
  
-Potřebné skripty výstupy jsou ve složce ''~/zapoctaky/konc''.+<code># lrc 
 +cd $MC 
 +foreach l (ar de en fi tr) 
 +  qsub.csh mc_jazyk.csh $l 
 +end</code> 
 + 
 +Během trénování pro každý jazyk l vzniknou následující soubory: 
 + 
 +  * ''l.csts'' ... vstupní seznam slovních tvarů převedený do CSTS 
 +  * ''l.kmkon'' ... první rozdělení na kmeny koncovky. Každý slovní tvar byl rozdělen na dvě části všemi možnými způsoby a výsledky byly seskupeny podle kmenů (stejná levá část). 
 +  * ''l.nefiltr'' ... převedeno do podoby vzorů, na každém řádku jeden vzor. Vzor je popsán seznamem koncovek, které byly nalezeny se stejnými kmeny. Dotyčný seznam kmenů následuje za seznamem koncovek. Seznam vzorů zatím neprošel žádným filtrováním. 
 +  * ''l.vzor'' ... přefiltrovaný a upravený seznam vzorů. Údaje o každém vzoru jsou rozložené na několik řádků a doplněné českými komentáři, aby byl seznam čitelný pro člověka. 
 +  * ''l.kmeny.txt'' a ''l.koncovky.txt'' ... seznam všech kmenů a koncovek, které přežily filtrování a figurují v&nbsp;závěrečném seznamu vzorů. Tyto strojově čitelné seznamy se dají využít při pozdější segmentaci nových slov.
  
 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):
Line 33: Line 48:
 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''.
  
-Rozklad slov na základě již vybudovaného seznamu vzorů se provede takto: +===== Zbývá udělat =====
-<code>mchallenge.pl kmeny.txt koncovky.txt < wordlist.eng > en.dz.txt</code> +
-Turečtinu je pak ještě nutné prohnat skriptem ''tr2mctr.pl'', aby se obnovilo exotické kódování, které organizátoři vyžadují.+
  
-===== Nové seznamy slov pro soutěž v získávání informací =====+  * 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í. 
 +  * 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. 
 +  * 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. 
 +  * Odeslat výsledky Mikkovi.
  
-Organizátoři dodatečně poskytli seznamy nových slovkterá se neobjevila v vodních trénovacích datech, ale vyskytují se v datechnad kterými se vyhodnocuje získávání informací (information retrieval). Spojuji nový seznam slov se starým. Nad spojeným seznamem natrénuji nový seznam vzorů. Těmito vzory pak rozeberu nový seznam slov a pošlu ho zpátky organizátorům.+==== 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ě částiaby 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ůse přednostně zjišťujezda 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>cat wordlist.eng new-wordlist.eng > combined.eng 
-iconv -f iso-8859-1 -t utf8 < combined.eng | mctr2csts.pl > entrain1.csts 
-csts2kmkon.pl < entrain1.csts > en1.kmkon 
-kmkon2vzor.pl < en1.kmkon > en1.vzor 
-vzorfiltr.pl < en1.vzor > en1.filtr.vzor 
-mv kmeny.txt en1kmeny.txt 
-mv koncovky.txt en1koncovky.txt 
-mchallenge.pl en1kmeny.txt en1koncovky.txt < new-wordlist.eng > en1.dz.txt</code> 

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