[ 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
Last revision Both sides next revision
user:zeman:preklad-morfemu [2010/12/15 15:24]
zeman
user:zeman:preklad-morfemu [2010/12/16 11:14]
zeman Aktualizace.
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 
   * 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 19: 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 26: 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 Morfessor. Kód jazyka se předává jako parametrnapř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 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'': 
-    * Pro Morfessor je ještě třeba prohodit sloupce (nejdřív četnostpak slovo)+ 
-    <code perl>perl -pe 's/\r?\n$//; s/^(.*?)\t(\d+)/$$1\n/;freqdict.txt > formorfessor.txt</code> +<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'' +
-  * To celé raději pouštět na clusteru.+
  
 +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.

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