注意点:
1 数据预处理阶段(添加特殊字符)
<PAD>主要用来进行字符补全,<EOS>和<GO>都是用在Decoder端的序列中,告诉解码器句子的起始与结束
<UNK>则用来替代一些未出现过的词或者低频词
2 encoder
直接lstm或者其他模型
3 decoder
- 对target数据进行处理
- 构造Decoder
在训练过程中,我们需要将我们的target序列作为输入传给Decoder端RNN的每个阶段,而不是使用前一阶段预测输出,这样会使得模型更加准确。TrainingHelper用于训练阶段,GreedyEmbeddingHelper用于测试阶段
- Embedding
- 构造Decoder层
- 构造输出层,输出层会告诉我们每个时间序列的RNN输出结果
- Training Decoder
- Predicting Decoder
4 构建好了Encoder层与Decoder以后,我们需要将它们连接起来build我们的Seq2Seq模型