[ 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 13:45]
zeman Kde leží Morfessor.
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 17: Line 11:
 ===== Morfessor ===== ===== Morfessor =====
  
-Morfessor mám momentálně na dvou místech: +Morfessor mám momentálně v TectoMT, ale vede na něj také symbolický odkaz z nástrojů:
-  * ''/home/zeman/nastroje/morfessor''+
   * ''$TMT_ROOT/personal/zeman/morfessor''   * ''$TMT_ROOT/personal/zeman/morfessor''
 +  * ''/home/zeman/nastroje/morfessor''
 +
 +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 =====
 +
 +Morfessor čte frekvenční slovník (na každém řádku četnost, mezera, slovo). Nejdříve mu ho tedy musíme vyrobit z jednojazyčné části paralelního korpusu (a klidně můžeme přihodit libovolné další texty v tomtéž jazyku, čím více a čím různorodější, tím lépe – Morfessor pak bude mít více materiálu pro správné určení morfů).
 +
 +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.
 +
 +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žce. Skript 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 Morfessor. Kód jazyka se předává jako parametr, např. takhle pro angličtinu:
 +
 +<code bash>qsub.csh $TMT_ROOT/personal/zeman/morfessor/bin/actrain.pl -l en</code>
 +
 +Když trénink doběhne, máme k&nbsp;dispozici 2 frekvenční seznamy slov, jeden 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'':
 +
 +<code bash>$TMT_ROOT/personal/zeman/morfessor/bin/morfseg.pl -m /net/work/people/zeman/morfessor/en/segmented.txt < tokenized.txt > segmented.txt</code>
 +
 +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.
  
-Verze v&nbsp;TectoMT je aktuálnější a ta druhá by se měla smazat nebo nahradit symbolickým odkazem. V&nbsp;TectoMT je také můj obalovací skript ''train.pl''.+==== 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 ]