This is an old revision of the document!
Table of Contents
Joshua
Toto jsou Danovy poznámky k práci s hierarchickým překladovým dekodérem Joshuou (reimplementace Hiera (David Chiang) v Javě od lidí z JHU).
Zdroje informací:
- Soubory
INSTALL
aREADME
přímo v balíčku s Joshuou.
Instalace SRILM
SRILM je nástroj pro jazykové modelování, se kterým pracují mnohé překladače včetně Mosese a Joshuy. Je napsaný v céčku. Způsob, jak ho získat a přeložit, je popsaný v tutoriálu k Mosesovi. (Ten není na webu normálně vidět, ale jeden odkaz na něj vede např. z Trac wiki Gaurav.) Stručně zde opakuji:
Získat balík se SRILM lze zde: http://www.speech.sri.com/projects/srilm/download.html
Stažený balík srilm.tgz má asi 49 MB! Pozor, rozbaluje se do aktuální složky, takže před rozbalováním vytvořit složku srilm a vlézt do ní.
mkdir srilm cd srilm unzip.pl ../srilm.tgz
nebo
tar -xzvf ../srilm.tgz
Přečíst si soubor README, je tam mnoho tipů. Upravit Makefile, aby obsahoval cestu do mé složky.
chmod +w Makefile vi Makefile
diff:
7c7 < # SRILM = /home/speech/stolcke/project/srilm/devel --- > SRILM = /home/zeman/nastroje/srilm
Není tam popsaný akorát tento zádrhel: z neznámých důvodů SRILM očekává grafickou knihovnu TCL. Pokud tato knihovna není k dispozici, musíme mu říct, že se na ni má vykašlat. K tomu je potřeba ve složce SRILM vlézt do common, najít dílčí Makefile pro naši architekturu (lze zjistit pomocí $SRILM/sbin/machine-type
), otevřít ho v nějakém editoru a upravit 3 řádky: zakomentovat 2 začínající na TCL a zajistit, že je tam ten třetí (NO_TCL):
# Tcl support (standard in Linux) # TCL_INCLUDE = # TCL_LIBRARY = -ltcl NO_TCL = x
Nyní jsme připraveni přeložit SRILM. Pokud nejsme v kořenové složce srilm
, vrátíme se do ní a spustíme:
make World
Nyní bychom měli otestovat, že SRILM je přeložen a běží správně. K tomu ho musíme přidat do své cesty (i když pro použití s Mosesem a Joshuou to zřejmě není potřeba). Musíme do cesty přidat jednak bin, jednak jeho podsložku pro naši architekturu.
setenv PATH /home/zeman/nastroje/srilm/bin/i686:/home/zeman/nastroje/srilm/bin:${PATH} cd test make all
Josh Schroeder: “Prohlédneme si výstup, budeme hledat zprávy IDENTICAL a DIFFERS. Občas se může stát, že není vše identické, ale přesto lze poznat, jestli nástroj funguje, nebo padá.” Dan: Úplně všechny testy mi hlásily DIFFERS, ale zdá se mi, že problém je spíš v pojmenování souborů (mnou vygenerované výstupy mají ve jménu navíc “.unknown”; namátkou jsem zkusil jeden z nich porovnat se vzorem a byl identický).
Instalace
Pozor, aby to běželo na clusteru LRC, je potřeba to překládat pro 64bitovou architekturu. V nejhorším případě přímo na clusteru samém.
Stáhnout aktuální verzi Joshuy:
cd /net/work/people/zeman/joshua svn co https://joshua.svn.sourceforge.net/svnroot/joshua/trunk joshua
Nastavit důležité proměnné (to by se hodilo přidat do .cshrc
nebo nějakého podobného konfiguračního souboru) a zkontrolovat, že máme nainstalované prerekvizity. Ant je překladač nebo spíš make pro Javu. Swig je nástroj, který umí propojovat kód napsaný v různých jazycích, v tomto případě jde o napojení céčkového SRILM (jazykové modelování) na zbytek Joshuy, který je v Javě.
setenv JAVA_HOME /opt/jdk1.6 which ant # /usr/bin/ant which swig # /usr/bin/swig # install SRILM