本项目框架参考于斯坦福大学CS224N课程作业。基本模型是seq2seq+attention。NMT_word和NMT_char分别是word
级和char
级的翻译,都是可以直接运行的完整项目。训练集共有216617条,验证集有851条,测试集有8064条。
首先生成词典文件sh run.sh vocab
,然后训练sh run.sh train
,在Tesla V100
上总共运行了1.8小时,训练完成后再运行sh run.sh test
测试BELU
值,能达到22.72
。
- 编码阶段
参考文献[1],在编码器一端,我们使用一个卷积层来训练word的词向量,然后输入到LSTM中。
- 译码阶段
译码阶段过程和word
级大致相同。对于无法译出的单词,即输出为<unk>
,我们使用基于char
的译码器来进行翻译。
首先生成词典文件sh run.sh vocab
,然后训练sh run.sh train
,在Tesla V100
上总共运行了1.8小时,训练完成后再运行sh run.sh test
测试BELU
值,能达到24.18
。
- [1]Character-Aware Neural Language Models
- [2]Highway Networks