This is an old revision of the document!
Table of Contents
Pokusy s předzpracováním paralelních textů pro TSD 2010
Předzpracování
Zdrojová anglická strana paralelního korpusu se nejdříve prožene značkováním a parsingem v TectoMT. Výsledek se schovává ve složce en.parsed
příslušného augmented korpusu jako .tmt
soubory. Nad nimi se potom provádějí transformace, specifické pro každý pokus. Mám na to v TectoMT aplikaci, akorát pro celý Czeng by trvala strašně dlouho a Ondra už parsing provedl, takže stačí ho vzít a převést. O.:
“Mam, ale je tam zvlast anglictina a cestina (a zadny alignment). Nebude ale velky problem to spojit.
/home/bojar/diplomka/granty/emplus/wmt10/playground/augmented_corpora/{czeng092-*,emea2}/{cs,en}NaLOT.gz
Jen upozornuju, ze to nejsou tmt soubory, ale lot, line-oriented-tmt, co radek, to bundle. Prevod do tmt viz tools/format_convertors/line-oriented-tmt, ale *opatrne*. Viz jak 100 bundlu tmt soubory neunesou (resp. nikdo je pak v rozumnem case nenacte.)”
Výše uvedená Ondrova cesta vede na /a/merkur3/TMP/bojar/wmt10/playground/augmented_corpora/czeng092-ne
(a další části Czengu) /enNaLOT.gz
. Zkopíroval jsem si ten soubor enNaLOT.gz
do svých augmented corpora do /net/work/people/zeman/wmt/augmented_corpora/czeng092-ne
. Tam jsem ho začal přelévat do en.parsed
pomocí svého skriptu ${TMT_ROOT}/applications/reordering/tsd2010/prepare.pl
, který jsem za tím účelem upravil, aby kromě tokenizovaného textu uměl konvertovat i line-oriented tmt. Ve složce czeng092-ne
se také vytváří filelist.txt
se seznamem vzniklých tmt souborů. Je jich 1262. Až vyzkouším, že s tím lze provádět transformace a překlad, měl bych to udělat i pro ostatní části Czengu.
gunzip -c enNaLOT.gz | $TMT_ROOT/applications/reordering/tsd2010/prepare.pl -l -w en.parsed > filelist.txt
Výsledky
Není-li řečeno jinak, váhy se ladí na newstest2008 a testuje se na newstest2009. Trénuje se zatím na news-commentary, a to jak překladový, tak jazykový model.
Pokus | Dev WMT08 | Test WMT09 | Poznámka | Datum |
encs-josh13 | 0.0878 | 0.0869 | 9.3.2010 | |
encs-articles | 0.0907 | 0.0887 | Z anglické strany vypuštěny určité i neurčité členy. | 16.3.2010 |
encs-subject | 0.0903 | 0.0864 | Před kořenové slovo anglického podmětu vepsán token _SUBJ_ . | 16.3.2010 |
encs-subject1 | 0.0872 | 0.0883 | Ke kořenovému slovu anglického podmětu připojeno (do jednoho tokenu) /Sb . | 17.3.2010 |
encs-attribute | 0.0785 | 0.0786 | K anglickým přívlastkům připojeno (do jednoho tokenu) /Atr . Cílem bylo odlišit např. “Prague” jako přídavné jméno “pražský” od podstatného jména “Praha”. Bohužel se ukazuje, že parser považuje za přívlastek všechno možné, někdy dokonce včetně hlavního slovesa v minulém čase (“agreed”). Proto to asi nefunguje. Možná by bylo lepší zkusit se spolehnout na tagger a jeho názor na to, co je přídavné jméno. | 17.3.2010 |
encs-adjective | 0.0889 | 0.0874 | Místo přívlastků (viz výše) se připojuje /JJ u přídavných jmen. Zjistil jsem ale, že jako přídavná jména jsou značkována většinou jen slova, která opravdu jako přídavná jména vypadají, nikoli atributivně použitá podstatná jména (jako “Prague”). Takže to nijak signifikantně nepomohlo. Mohli bychom zkusit ještě třetí věc, značkovat atributy, ale pouze ty, které leží před podstatným jménem a samy nemají žádné děti. | 17.3.2010 |
Protože se ukázalo, že s Joshuou 1.3 zatím neumím docílit stejných výsledků jako s 1.1, pouštím ještě tytéž pokusy s Joshuou 1.1, trénovací data jsou vyčištěná od vět o 100 a více slovech.
Pokus | Dev WMT08 | Test WMT09 | Poznámka | Datum |
encs-clean | 0.0913 | 0.0897 | 21.3.2010 | |
encs-articles | 0.0921 | 0.0898 | Z anglické strany vypuštěny určité i neurčité členy. | 23.3.2010 |
encs-subject1 | 0.0891 | 0.0880 | Ke kořenovému slovu anglického podmětu připojeno (do jednoho tokenu) /Sb . | |
encs-adjective | 0.0913 | 0.0893 | K anglickým přídavným jménům se připojuje /JJ . Mohli bychom zkusit ještě třetí věc, značkovat atributy, ale pouze ty, které leží před podstatným jménem a samy nemají žádné děti. |
4.5.2010 pouštím další pokus verbparticle
, kde se slovesná částice přisunuje ke slovesu, např. “wake him up” → “wake up him”. Kvůli odlišné tokenizaci ale parser dělá chyby, když později ve větě vidí slovo, které by mohlo fungovat jako slovesná částice, bezhlavě ho připojí ke slovesu, i když by mohl poznat, že je to předložka nebo částice od něčeho jiného (třeba je tam rozdělený výraz “spin - off”, on vezme to “off” a zavěsí ho na sloveso, které se nachází nalevo od spin-offu). Zachování odlišné tokenizace skrz parsing je skoro námět na článek . Zatím běží strojový překlad s přisunutými částicemi. Mohl bych ještě zkusit úplně slepit částici se slovesem (např. pomocí podtržítka).
30.5.2010: verbparticle, Joshua 1.1: devbleu = 0.0880, testbleu = 0.0864.
Nové pokusy před odesláním konečné verze článku. Joshua verze 1.1, ale čištění od dlouhých vět už probíhá jako u verze 1.3.
Pokus | Dev WMT08 | Test WMT09 | Poznámka | Datum |
encs | 0.0916 | 0.0891 | 31.5.2010 | |
encs-articles | 0.0921 | 0.0898 | Z anglické strany vypuštěny určité i neurčité členy. Statisticky nevýznamné zlepšení. | 31.5.2010 |
encs-subject | 0.0891 | 0.0864 | Ke kořenovému slovu anglického podmětu připojeno (do jednoho tokenu) /Sb . U starších experimentů jsem tohle označoval jako subject1 , ale tehdejší subject bez indexu už je stejně zapomenut. | 31.5.2010 |
encs-articles-subject | 0.0859 | 0.0851 | Kombinace transformací articles a subject . | 31.5.2010 |
encs-verbparticle | 0.0880 | 0.0864 | Viz výše. | 30.5.2010 |
enhi | 0.1116 | 0.1230 | 31.5.2010 | |
enhi-articles | 0.1141 | 0.1230 | Zatím se členy odstraňují úplně stejně jako u encs . Ve skutečnosti bychom ale pro hindštinu měli asi odstraňovat pouze určité členy. | 31.5.2010 |
enhi-reord2008 | 0.1074 | 0.1172 | Stará pravidla pro úpravu slovosledu z roku 2008: sloveso na konec věty a z předložek záložky. Možná se ale nepodařilo pravidla přenést úplně správně, bude to potřeba ještě prozkoumat po částech. | 31.5.2010 |