[ 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 15:29]
zeman Umístění souborů.
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 
   * 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 26: Line 23:
 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. 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. Asi by to mohlo být ''/net/work/people/zeman/morfessor'', kam by se přesunuly současné složky ''cslex'' a ''enlex''.+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í 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 34: 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 parametr, např. takhle pro angličtinu:
-  * Uvést kód jazyka, který chceme rozebrat. +
-  * Vyjmenovat korpusy, ze kterých chceme texty v tomto jazyce použít. +
-  * Postupně otevřít (včetně rozgzipování) všechny korpusy a prohnat je frekvenčním slovníkem. +
-  * ''$STATMT/scripts/freqdict.pl'' +
-    * Pro Morfessor je ještě třeba prohodit sloupce (nejdřív četnost, pak slovo). +
-    * <code perl>perl -pe 's/\r?\n$//; s/^(.*?)\t(\d+)/$2 $1\n/;' < freqdict.txt > formorfessor.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.+
  
 +<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.
 +
 +==== 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 ]