This is an old revision of the document!
Table of Contents
Překlad morfémů
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.
- Vybrat vhodný malý pokus s malými daty, na kterých se to provede.
- Pozor! Pokud pustím Morfessora na malých datech, bude dávat horší výsledky, než když ho pustím na velkých!
- Pustit Joshuu včetně Gizy.
- Prozkoumat, co vypadlo z Gizy, protože to bude hlavní zajímavost do článku.
Morfessor
Morfessor mám momentálně v TectoMT, ale vede na něj také symbolický odkaz z nástrojů:
$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
.
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.
- Uvést cestu k
augmented_corpora
. - 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).
perl -pe 's/\r?\n$; s/^(.*?)\t(\d+)/$2 $1\n/;' < freqdict.txt > formorfessor.txt
$TMT_ROOT/personal/zeman/morfessor/bin/train.pl < formorfessor.txt > freqdict.morfessor.txt''
* Potom zavolat Morfessor:
*
* To celé raději pouštět na clusteru.