[ 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 Both sides next revision
user:zeman:joshua [2009/06/04 10:06]
zeman První výsledek.
user:zeman:joshua [2009/06/04 11:19]
zeman Příprava spuštění Z-MERTu.
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     # target sentences file name (in this case, file name prefix)
 +-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 ]