[ 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
Next revision Both sides next revision
user:zeman:joshua [2009/06/01 17:34]
zeman Problém s testy SRILM.
user:zeman:joshua [2009/06/01 21:37]
zeman Na clusteru to nefunguje.
Line 6: Line 6:
   * Soubory ''INSTALL'' a ''README'' přímo v balíčku s Joshuou.   * Soubory ''INSTALL'' a ''README'' přímo v balíčku s Joshuou.
  
-===== Instalace SRILM =====+===== Instalace =====
  
-SRILM je nástroj pro jazykové modelováníse kterým pracují mnohé ekladače včetně Mosese a Joshuy. Je napsaný v céčkuZpůsob, jak ho získat a přeložit, je popsaný tutoriálu k Mosesovi(Ten není na webu normálně vidětale jeden odkaz na něj vede např. z Trac wiki Gaurav.Stručně zde opakuji:+Prerekvizity: 
 +  * Ant: kompilátor a make Javy. Máme ho v ''/usr/bin/ant'' 
 +  * Swig: nástroj na propojení kódu napsaného v různých jazycíchv tomto ípadě Joshuy (Java) na SRILM (céčko)Máme ho v ''/usr/bin/swig'' 
 +  * [[SRILM]]: nástroj Andrease Stolckeho na trénování používání jazykových modelů, běžně používaný se strojovými ekladačijako je Pharaoh, Hiero, Moses, Joshua. Máme nainstalováno nejspíš mnohokrát, podstatě si každý instaluje svou kopiiPodrobnosti o instalaci viz odkaz na začátku tohoto bodu. Pozoraby instalace fungovala na stroji (architektuře), na kterém chceme překládat (podrobnosti viz tamtéž).
  
-Získat balík se SRILM lze zde: http://www.speech.sri.com/projects/srilm/download.html+Nastavit důležité proměnné (to by se hodilo přidat do ''.cshrc'' nebo nějakého podobného konfiguračního souboru).
  
-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í.+<code>setenv JAVA_HOME /opt/jdk1.
 +setenv SRILM /home/zeman/nastroje/srilm 
 +setenv JOSHUA_HOME /net/work/people/zeman/joshua</code>
  
-<code>mkdir srilm +Stáhnout aktuální verzi Joshuy:
-cd srilm +
-unzip.pl ../srilm.tgz</code>+
  
-nebo+<code>cd $JOSHUA_HOME 
 +svn co https://joshua.svn.sourceforge.net/svnroot/joshua/trunk joshua</code>
  
-<code>tar -xzvf ../srilm.tgz</code>+Přeložit Joshuu:
  
-Přečíst si soubor README, je tam mnoho tipů. Upravit Makefile, aby obsahoval cestu do mé složky.+<code>cd $JOSHUA_HOME 
 +ant compile</code>
  
-<code>chmod +w Makefile +Kdyby bylo potřeba v budoucnosti překompilovat Joshuu načisto, již zkompilované moduly se dají odstranit pomocí
-vi Makefile</code>+
  
-diff:+<code>ant clean</code>
  
-<code>7c7 +Otestujeme, že je Joshua funkční:
-< # SRILM = /home/speech/stolcke/project/srilm/devel +
---- +
-> SRILM = /home/zeman/nastroje/srilm</code>+
  
-Není tam popsaný akorát tento zádrhel: z neznámých důvodů SRILM očekává grafickou knihovnu TCLPokud tato knihovna není k dispozici, musíme mu říct, že se na ni má vykašlatK 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):+<code>ant test 
 +./example/decode_example_javalm.sh 
 +./example/decode_example_srilm.sh</code>
  
-<code># Tcl support (standard in Linux) +Joshuu jsem překládal na zenu. Teď je ještě potřeba otestovat, že funguje i na clusteru, třeba na počítači sol1. A ejhle, na 64 bitech přestala fungovat spolupráce se SRILM.
-# TCL_INCLUDE = +
-# TCL_LIBRARY = -ltcl +
-NO_TCL = x</code>+
  
-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: +<code>21:35 sol1:/ha/work/people/zeman/joshua./example/decode_example_srilm.sh 
- +Jun 12009 9:35:43 PM joshua.decoder.JoshuaConfiguration readConfigFile 
-<code>make World</code+INFO: you use a LM feature functionso make sure you have a LM grammar 
- +Exception in thread "main" java.lang.UnsatisfiedLinkError: /ha/work/people/zeman/joshua/lib/libsrilm.so: /ha/work/people/zeman/joshua/lib/libsrilm.sowrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch) 
-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 binjednak jeho podsložku pro naši architekturu. +        at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
- +        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1767) 
-<code>setenv PATH /home/zeman/nastroje/srilm/bin/i686:/home/zeman/nastroje/srilm/bin:${PATH} +        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1692) 
-cd test +        at java.lang.Runtime.loadLibrary0(Runtime.java:840) 
-make all</code> +        at java.lang.System.loadLibrary(System.java:1047) 
- +        at joshua.corpus.vocab.SrilmSymbol.<init>(SrilmSymbol.java:46) 
-Josh Schroeder: "Prohlédneme si výstup, budeme hledat zprávy IDENTICAL a DIFFERSObč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ý). +        at joshua.decoder.JoshuaDecoder.initializeSymbolTable(JoshuaDecoder.java:322
- +        at joshua.decoder.JoshuaDecoder.initialize(JoshuaDecoder.java:259) 
-===== Instalace ===== +        at joshua.decoder.JoshuaDecoder.<init>(JoshuaDecoder.java:108) 
- +        at joshua.decoder.JoshuaDecoder.main(JoshuaDecoder.java:684)</code>
-Pozor, aby to běželo na clusteru LRC, je potřeba to překládat pro 64bitovou architekturuV nejhorším případě přímo na clusteru samém+
- +
-Stáhnout aktuální verzi Joshuy+
- +
-<code>cd /net/work/people/zeman/joshua +
-svn co https://joshua.svn.sourceforge.net/svnroot/joshua/trunk joshua</code> +
- +
-Nastavit důležité proměnné (to by se hodilo přidat do ''.cshrc'' nebo nějakého podobného konfiguračního souborua zkontrolovat, že máme nainstalované prerekvizityAnt je překladač nebo spíš make pro JavuSwig 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ě. +
- +
-<code>setenv JAVA_HOME /opt/jdk1.6 +
-which ant # /usr/bin/ant +
-which swig # /usr/bin/swig +
-# install SRILM</code>+

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