[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

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 (Zhifei Li)).

Zdroje informací:

Instalace

Prerekvizity:

Nastavit důležité proměnné (to by se hodilo přidat do .cshrc nebo nějakého podobného konfiguračního souboru).

setenv JAVA_HOME /opt/jdk1.6
setenv SRILM /home/zeman/nastroje/srilm
setenv JOSHUA_HOME /net/work/people/zeman/joshua

Stáhnout aktuální verzi Joshuy:

cd $JOSHUA_HOME
svn co https://joshua.svn.sourceforge.net/svnroot/joshua/trunk joshua

Přeložit Joshuu:

cd $JOSHUA_HOME
ant compile

Kdyby bylo potřeba v budoucnosti překompilovat Joshuu načisto, již zkompilované moduly se dají odstranit pomocí

ant clean

Otestujeme, že je Joshua funkční:

ant test
./example/decode_example_javalm.sh
./example/decode_example_srilm.sh

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.

21:35 sol1:/ha/work/people/zeman/joshua> ./example/decode_example_srilm.sh
Jun 1, 2009 9:35:43 PM joshua.decoder.JoshuaConfiguration readConfigFile
INFO: you use a LM feature function, so 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.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1767)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1692)
        at java.lang.Runtime.loadLibrary0(Runtime.java:840)
        at java.lang.System.loadLibrary(System.java:1047)
        at joshua.corpus.vocab.SrilmSymbol.<init>(SrilmSymbol.java:46)
        at joshua.decoder.JoshuaDecoder.initializeSymbolTable(JoshuaDecoder.java:322)
        at joshua.decoder.JoshuaDecoder.initialize(JoshuaDecoder.java:259)
        at joshua.decoder.JoshuaDecoder.<init>(JoshuaDecoder.java:108)
        at joshua.decoder.JoshuaDecoder.main(JoshuaDecoder.java:684)

Přestože SRILM, který nebyl přeložen na 64 bitech, běží jak na 32, tak na 64 bitech, s Joshuou na 64 bitech spolupracovat neumí (na 32 ano). Nepomůže ani když překlad Joshuy pustím až na 64 bitech (při spolupráci s 32bitovým SRILM).

Nicméně se zdá, že pomohlo následující:

Cluster

Ke spuštění Joshuy na clusteru se hodí např. Ondrova obálka (nebo i ta moje vlastní, ale tu bych neměl nutit např. Gauravovi, když jako jeden z mála pořád pracuju s tcsh).

kinit
ssh lrc-two
cd $JOSHUA_HOME
~bojar/tools/shell/qsubmit ./example/decode_example_srilm.sh
qstat -u '*'

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