Version 6 (modified by 9 years ago) (diff) | ,
---|
Machine translation
IA161 Advanced NLP Course, Course Guarantee: Aleš Horák
Prepared by: Vít Baisa
State of the Art
The Statistical Machine Translation consists of two main parts: a language model for a target language which is responsible for fluency and good-looking output sentences and a translation model which translates source words and phrases into target language. Both models are probability distributions and can be built using a monolingual corpus for language model and a parallel corpus for translation model.
References
Approx 3 current papers (preferably from best NLP conferences/journals, eg. ACL Anthology) that will be used as a source for the one-hour lecture:
- Koehn, Philipp, et al. "Moses: Open source toolkit for statistical machine translation." Proceedings of the 45th annual meeting of the ACL on interactive poster and demonstration sessions. Association for Computational Linguistics, 2007.
- Koehn, Philipp, Franz Josef Och, and Daniel Marcu. "Statistical phrase-based translation." Proceedings of the 2003 Conference of the North American Chapter of the Association for Computational Linguistics on Human Language Technology-Volume 1. Association for Computational Linguistics, 2003.
- Denkowski, Michael, and Alon Lavie. "Meteor 1.3: Automatic metric for reliable optimization and evaluation of machine translation systems." Proceedings of the Sixth Workshop on Statistical Machine Translation. Association for Computational Linguistics, 2011.
Practical Session: generování překladového slovníku z paralelních dat
Instrukce
- stáhněte si archív se skripty a trénovacími daty
- rozbalte ho do domovského adresáře, vytvoří se podadresář it161_mt
tar xzf ia161_mt.tar.gz
Soubory v archívu
czech.words | 100 tisíc vět z české části DGT korpusu |
czech.lemmas | 100 tisíc vět (lemmat) z české části DGT korpusu |
english.words | 100 tisic vet z anglickeho DGT korpusu |
english.lemmas | 100 tisic vet (lemmat) z anglickeho DGT korpusu |
eval.py | skript na vyhodnoceni pokryti a presnosti vygenerovaneho slovniku vuci malemu anglicko-ceskemu slovniku |
gnudfl.txt | maly anglicko-cesky slovnik, filtrovany na jednoslovne vyrazy a na slova obsazena v trenovacich datech |
make_dict.py | skript pro vygenerovani slovniku na zaklade kookurenci a frenvencnich seznamu |
Makefile | soubor s pravidly pro sestaveni slovniku na zaklade trenovacich dat |
par2items.py | soubor pro vygenerovani paru slov (lemmat) z paralelnich dat |
Popis make
make dict
- samotny prikaz pouzije 1000 radku trenovacich dat a vygeneruje slovnik na zakladne slovnich tvaru (soubory czech.words a english.words)
- je mozne zadat alternativni soubory s lemmaty pomoci parametru L1DATA a L2DATA
- je take mozne zmenit pocet radku, ktere se pouziji pro vygenerovani slovniku
make dict [L1DATA=<soubor>] [L2DATA=<soubor>] [LIMIT=<pocet radku>]
Například: make dict L1DATA=english.lemmas L2DATA=czech.lemmas LIMIT=10000
make eval
Po vygenerování slovníku můžete změřit jeho přesnost a pokrytí pomocí skriptu eval.py. Stačí zavolat make eval
. Pokud jste pro vytvoření slovníku používali parametry L1DATA
a L2DATA
, musíte je pro správné vyhodnocení zadat i při příkazu make eval
Například: make dict L1DATA=english.lemmas L2DATA=czech.lemmas
make clean
Po každé změně vstupních souborů a parametrů, při změně skriptů, vyčistěte dočasné soubory a starý slovník příkazem make clean
.
Detailní pohled na skripty a generovaná data
- Cvičně si spusťte implicitní
make dict
a podívejte se na vytvořené soubory:- czech.words.freq
- english.words.freq
- english.words-czech.words.cofreq
- english.words-czech.words.dict (výsledný slovník)
- Podívejte se, jak jsou výsledné soubory veliké (kolik obsahují řádků) a jaké data obsahují.
- Podívejte se na skript make_dict.py, který generuje slovník, na klíčových místech obsahuje řetězec TODO, v těchto místech můžete skript upravovat a měnit podmínky tak, aby se výsledné f-score vygenerovaného slovníku co nejíce zvýšilo.
Zadání
Změňte klíčová místa ve skriptech par2items.py, make_dict.py tak, abyste dosáhli co nejvyššího f-score (viz make eval
). Do odevzdávárny nahrajte všechny skripty, které změníte (Makefile, *.py) v jednom archívu. Ten vytvoříte příkazem
tar czf ia161_mt_<uco_nebo_login>.tar.gz Makefile *.py
Attachments (2)
- ia161_mt.tar.gz (7.6 MB) - added by 9 years ago.
- ia161.pdf (240.4 KB) - added by 9 years ago.