以构建英-中NMT为例,在linux上运行,fairseq版本为0.8.0
环境准备
Requirements:
fairseq:pytorch包,包括许多网络结构,https://github.com/pytorch/fairseq
mosesdecoder:机器翻译的标准数据处理工具, https://github.com/moses-smt/mosesdecoder
subword-nmt:bpe分词工具,https://github.com/rsennrich/subword-nmt
jieba:中文分词工具,https://github.com/fxsjy/jieba
除了jieba,其它我习惯是下载包在本地运行
Data:
准备raw双语数据,一句一行,英中各存为三个文件,分别是训练集,验证集,测试集,如下:
目录结构:
以下的命令都是在主目录下运行
数据预处理
1.序列化处理
用MOSES对句子进行序列化处理,说白了就是在每个句子的单词和标点符号之间插入空格:
perl requirements/mosesdecoder-master/scripts/tokenizer/tokenizer.perl \
-l en <