OpenNMT 是一个神经机器翻译系统,这是一个用 PyTorch 实现的 OpenNMT 的库。这个项目包含 SR-NMT 的一些代码,关于 SR-NMT 的介绍请看论文 Deep Neural Machine Translation with Weakly-Recurrent Units。
快速开始
一些有用的工具:
下面的例子使用了 Moss tokenizer (http://www.statmt.org/moses/) 来准备用于评估的数据和 moses BLEU 脚本。
1 2 3 4 5 | wget https://raw.githubusercontent.com/moses-smt/mosesdecoder/master/scripts/tokenizer/tokenizer.perl wget https://raw.githubusercontent.com/moses-smt/mosesdecoder/master/scripts/share/nonbreaking_prefixes/nonbreaking_prefix.de wget https://raw.githubusercontent.com/moses-smt/mosesdecoder/master/scripts/share/nonbreaking_prefixes/nonbreaking_prefix.en sed -i "s/$RealBin\/..\/share\/nonbreaking_prefixes//" tokenizer.perl wget https://raw.githubusercontent.com/moses-smt/mosesdecoder/master/scripts/generic/multi-bleu.perl |
示例流程
按照 OpenNMT-py 的说明下载和对数据进行预处理。然后使用 preprocess.py
, train.sh
和 translate.sh
等文件进行训练和翻译。这里是一个示例流程。
1) 数据预处理.
1 | python preprocess.py -train_src /path/to/data/train.src -train_tgt /path/to/data/train.tgt -valid_src /path/to/data/valid.src -valid_tgt /path/to/data/valid.tgt -save_data /path/to/data/data |
2) 训练模型.
1 | sh train.sh num_layers num_gpu |
3) 翻译.
1 | sh translate.sh model_name test_file num_gpu |
4) 测试.
1 | sh eval.sh hypothesys target_language /path/to/test/tokenized.tgt |
测试结果和论文中提到的例子是一致的。
项目地址
Github 地址:https://github.com/mattiadg/SR-NMT
本站微信群、QQ群(三群号 726282629):