我们现在几乎每天都会用到翻译软件,无论是看论文看源码看新闻,总是会遇见一些不熟悉不认识的单词,关于机器翻译背后的原理我们在前一篇文章中已经讲到了,今天就来动手实践一下。
在这个例子中我们会用一个很小的数据集来理解一遍流程,接下来主要会有两大步骤,一个是 NMT 的训练,一个是 NMT 的推断预测。
NMT 的训练步骤:
- 序列的表示:主要是将文本转化为序列数据。
- 词嵌入:用一个低维向量浓缩表达每个单词,使用嵌入层来实现。
- 训练 Encoder:输入数据进入编码器,学习出隐藏状态。
- 连接 Encoder 和 Decoder:Encoder 的最终隐藏状态作为 Decoder 的初始状态。
- 训练 Decoder:Decoder 的作用是给出目标序列的一个词,可以预测出下一个词。
不过训练好的 NMT 不能直接用来翻译新的数据,因为这时并不知道目标句子是什么,所以翻译的流程和训练的流程有些不同。
NMT 的推断预测:
- 序列的表示:主要是将文本转化为序列数据。
- 词嵌入:用一个低维向量浓缩表达每个单词,使用嵌入层来实现。
- Encoder:将预处理好的数据输入进编码器学习隐藏状态