[ 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/04 10:06]
zeman První výsledek.
user:zeman:joshua [2009/06/04 11:25]
zeman Oprava nedorozumění ohledně ref.txt.
Line 210: Line 210:
  
 <code>$JOSHUA/example2/get_1best_from_Nbest.pl $HINDI/output/dev.nbest.out $HINDI/output/dev.1best.out</code> <code>$JOSHUA/example2/get_1best_from_Nbest.pl $HINDI/output/dev.nbest.out $HINDI/output/dev.1best.out</code>
- 
- 
  
 ===== Vyhodnocení úspěšnosti ===== ===== Vyhodnocení úspěšnosti =====
Line 228: Line 226:
  
 Bez MERTu mi zatím vyšlo BLEU = 0.0807. Bez MERTu mi zatím vyšlo BLEU = 0.0807.
 +
 +===== MERT =====
 +
 +Celý proces by nebyl úplný bez MERTu, což je zkratka za Minimum Error Rate Training. V principu jde o to, že se dekodér opakovaně pouští na vývojová data a na základě změřené úspěšnosti se postupně optimalizují váhy překladového modelu, jazykového modelu a případně dalších složek. V Joshuovi je pro tento účel integrován javovský nástroj Z-MERT.
 +
 +Většina parametrů se Z-MERTu předává prostřednictvím konfiguračního souboru. Přehled volání Z-MERTu se dozvíme takto:
 +
 +<code>java -cp $JOSHUA/bin joshua.zmert.ZMERT -h</code>
 +
 +Příklad použití Z-MERTu najdeme ve složce ''$JOSHUA/ZMERT_example''. Můžeme si zkopírovat a upravit tamější konfigurační soubor ''ZMERT_config_ex2.txt''. Některé numerické parametry (počáteční váhy například) jsou v samostatném souboru ''params.txt'', který si také musíme zkopírovat. Pro jistotu si také uděláme kopii vývojových dat.
 +
 +Dále potřebujeme soubor (vlastně skript: měl by být spustitelný), ve kterém bude napsáno, jak volat dekodér. A, samozřejmě, také soubor s konfigurací dekodéru.
 +
 +<code>cd $HINDI/mert
 +cp ../corpus/dev.lowercased.en src.txt
 +cp ../corpus/dev.lowercased.hi ref.txt
 +cp $JOSHUA/ZMERT_example/config_ex2.txt decoder-config.txt
 +vi decoder-config</code>
 +
 +Změněné parametry:
 +
 +<code>lm_file=/net/work/people/zeman/hindstina/lm/train.lowercased.hi.lm
 +tm_file=/net/work/people/zeman/hindstina/model/en-hi-dev.grammar.gz
 +glue_file=/net/work/people/zeman/joshua/grammars/hiero.glue
 +order=3</code>
 +
 +<code>cp $JOSHUA/ZMERT_example/decoder_command_ex2 decoder_command
 +chmod 755 decoder_command
 +vi decoder_command</code>
 +
 +Ve volání dekodéru musíme změnit cesty ke konfiguračnímu, zdrojovému a cílovému souboru.
 +
 +<code>java -Xmx1200m -Xms1200m -cp $JOSHUA/bin joshua.decoder.JoshuaDecoder \
 +    $HINDI/mert/decoder-config.txt \
 +    $HINDI/mert/src.txt \
 +    $HINDI/mert/nbest.txt</code>
 +
 +V konfiguraci Z-MERTu zohledníme právě upravené volání a konfiguraci dekodéru.
 +
 +<code>cp $JOSHUA/ZMERT_example/params.txt .
 +cp $JOSHUA/ZMERT_example/ZMERT_config_ex2.txt zmert-config.txt
 +vi zmert-config.txt</code>
 +
 +Změněné parametry:
 +
 +<code>-dir /net/work/people/zeman/hindstina/mert # working directory
 +-s src.txt # source sentences file name
 +-r ref.txt # target sentences file name
 +-rps 1     # references per sentence
 +-maxIt 5   # maximum MERT iterations
 +-cmd ./decoder_command # file containing commands to run decoder
 +-decOut nbest.txt # file produced by decoder
 +-dcfg decoder-config.txt # decoder config file</code>
 +
 +No a teď už můžeme spustit Z-MERT (případně to celé dát do uvozovek a před to ''~zeman/bin/qsub.csh''):
 +
 +<code>java -cp $JOSHUA/bin joshua.zmert.ZMERT -maxMem 500 \
 +    $HINDI/mert/zmert-config.txt \
 +    > $HINDI/mert/zmert.out</code>

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