[ 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
user:zeman:preklad-morfemu [2010/12/15 14:17]
zeman Předzpracování paralelních dat.
user:zeman:preklad-morfemu [2012/03/19 22:32] (current)
zeman Eman a Morfessor.
Line 3: Line 3:
 ===== Zbývá udělat ===== ===== Zbývá udělat =====
  
-  * Znova rozchodit Morfessor. 
-  * Předcházející pokusy proběhly v rámci přípravy výuky o neřízené morfematické segmentaci. 
-    * /net/work/people/zeman/enlex 
-    * Do nástrojů vede odkaz z enlex. 
-    * Přesto je novější verze v TectoMT. 
-    * Je v ní také můj skript train.pl. 
   * Rozebrat Morfessorem všechna anglická a česká trénovací, vývojová i testovací data.   * Rozebrat Morfessorem všechna anglická a česká trénovací, vývojová i testovací data.
     * Vybrat vhodný malý pokus s malými daty, na kterých se to provede.     * Vybrat vhodný malý pokus s malými daty, na kterých se to provede.
Line 22: Line 16:
  
 Verze v TectoMT obsahuje moje úpravy Morfessora (např. práce s texty v UTF-8) a také můj obalovací skript ''train.pl''. Verze v TectoMT obsahuje moje úpravy Morfessora (např. práce s texty v UTF-8) a také můj obalovací skript ''train.pl''.
 +
 +===== Umístění souborů =====
 +
 +Umístění programových souborů Morfessora nebo s Morfessorem souvisejících je popsáno výše.
 +
 +Paralelní data, na která se to celé bude aplikovat, typicky leží v příslušné složce ''augmented_corpora''. Předpokládám, že tam také budou ležet segmentované verze těchto korpusů po průchodu Morfessorem.
 +
 +Pracovní složka pro Morfessora a všechna data, která souvisejí s konkrétním jazykem, ale nikoli s konkrétním korpusem pro tento jazyk, by měla ležet jinde. Založil jsem na to složku ''/net/work/people/zeman/morfessor''. Přesunul jsem do ní i starší složky ''cslex'' a ''enlex'', ve kterých jsou první pokusy s Morfessorem, které proběhly v rámci přípravy výuky o neřízené morfematické segmentaci.
  
 ===== Předzpracování paralelních dat Morfessorem ===== ===== Předzpracování paralelních dat Morfessorem =====
Line 29: Line 31:
 Pak ještě potřebujeme program, který načte Morfessorem navržené dělení trénovacích slov, zapamatuje si ho a aplikuje ho na libovolný tokenizovaný vstupní text. Tímto programem potom proženeme naše paralelní data. Pak ještě potřebujeme program, který načte Morfessorem navržené dělení trénovacích slov, zapamatuje si ho a aplikuje ho na libovolný tokenizovaný vstupní text. Tímto programem potom proženeme naše paralelní data.
  
-  * Uvést cestu k ''augmented_corpora''+Program pro trénování Morfessora nad paralelními korpusy pro konkrétní jazyk se jmenuje ''actrain.pl''. Leží vedle Morfessora v ''$TMT_ROOT/personal/zeman/morfessor/bin''. Zatím má v sobě zadrátovanou cestu k Morfessorovi, k ''augmented_corpora'' (WMT) a k pracovní složceSkript projde všechny paralelní korpusy v ''augmented_corpora'', vybere z nich texty ve zvoleném jazyce, slepí je do jednoho jednojazyčného korpusu a na něm natrénuje MorfessorKód jazyka se předává jako parametr, např. takhle pro angličtinu: 
-  * Uvést kód jazyka, který chceme rozebrat. + 
-  * Vyjmenovat korpusy, ze kterých chceme texty v&nbsp;tomto jazyce použít. +<code bash>qsub.csh $TMT_ROOT/personal/zeman/morfessor/bin/actrain.pl -l en</code> 
-  * Postupně otevřít (včetně rozgzipování) všechny korpusy a prohnat je frekvenčním slovníkem+ 
-  * ''$STATMT/scripts/freqdict.pl'' +Když trénink doběhne, máme k&nbsp;dispozici 2 frekvenční seznamy slovjeden před Morfessorem a jeden po něm: ''/net/work/people/zeman/morfessor/en/freqdict.txt'' a ''segmented.txt''. Ten druhý se dá použít pro předzpracování tokenizovaného textu v&nbsp;daném jazyce (ten byl pravděpodobně součástí trénovacích dat pro Morfessora, takže by neměl obsahovat žádná neznámá slova). Na to máme program ''morfseg.pl'': 
-    * Pro Morfessor je ještě třeba prohodit sloupce (nejdřív četnostpak slovo). + 
-    * ''perl -pe 's/\r?\n$//; s/^(.*?)\t(\d+)/$2 $1\n/;' < freqdict.txt > formorfessor.txt'' +<code bash>$TMT_ROOT/personal/zeman/morfessor/bin/morfseg.pl -m /net/work/people/zeman/morfessor/en/segmented.txt tokenized.txt > segmented.txt</code> 
-  * Potom zavolat Morfessor: + 
-  * ''$TMT_ROOT/personal/zeman/morfessor/bin/train.pl < formorfessor.txt > freqdict.morfessor.txt'' +Tímto programem chceme prohnat text v&nbsp;daném jazyce z&nbsp;každého paralelního korpusu. Výsledek chceme uložit u téhož paralelního korpusu. Bude mít stejný počet vět (řádků), ale jiný počet tokenů, proto ho musíme prohlásit za jiný jazyk. Např. ''en.gz'' --> ''enMorf.gz''. Program, který tohle provede se všemi korpusy v&nbsp;''augmented_corpora'' pro jeden jazyk, se jmenuje ''acmorfseg.pl'' a opět má v&nbsp;sobě zadrátované cesty. 
-  * To celé raději pouštět na clusteru.+ 
 +==== Eman ====
  
 +V&nbsp;březnu 2012 tyto pokusy oživuju a zakládám na to nové druhy kroků v&nbsp;Emanovi: morfessor pro instalaci Morfessora včetně mých doplňkových skriptů, morfmodel pro natrénování morfematického modelu pro konkrétní jazyk (zatím na všech korpusech z&nbsp;mých augmented corpora, cesta k&nbsp;nim je zadrátovaná ve zdrojáku). Plánuju i morfcorpus, který rozseká daný korpus modelem pro daný jazyk a výsledek zaregistruje v&nbsp;Corpmanovi.

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