有没有办法将额外的特征标记与现有的单词标记(训练特征/源文件词汇表)一起传递,并将其提供给 seq2seq 的编码器 RNN?因为,它目前一次只接受句子中的一个单词标记。
让我以更具体的方式说明这一点;考虑机器翻译/nmt 的示例 - 假设我有 2 个对应源词汇集的特征列(此处为 Feature1)。例如,考虑以下情况:
+---------+----------+----------+
|Feature1 | Feature2 | Feature3 |
+---------+----------+----------+
|word1 | x | a |
|word2 | y | b |
|word3 | y | c |
|. | | |
|. | | |
+---------+----------+----------+
总而言之,目前seq2seq数据集是并行数据语料库,在源特征(词汇,即仅Feature1)和目标(标签/词汇)之间具有一对一的映射关系。我正在寻找一种将多个特征(即Feature1、Feature2、Feature3)映射到目标(标签/词汇)的方法。
此外,我相信这在 seq2seq-pytorch 教程(https://github.com/spro/practical-pytorch/blob/master/seq2seq-translation/seq2seq-translation.ipynb)中被掩盖了,如下所示:
当使用单个 RNN 时,输入和输出之间存在一对一的关系。我们很快就会遇到翻译过程中常见的序列顺序和长度不同的问题……。使用 seq2seq 模型,通过将多个输入编码为一个向量,并将一个向量解码为多个输出,我们摆脱了序列的约束顺序和长度。编码序列由单个向量表示,即某个 N 维序列空间中的单个点。在理想情况下,这一点可以被认为是序列的“意义”。
此外,我尝试了 tensorflow,花了很多时间来调试和进行适当的更改,但一无所获。并且从我的同事那里听说 pytorch 可以灵活地执行此操作,值得一试。
请分享您对如何在 tensorflow 或 pytorch 中实现相同的想法。任何人都会告诉如何实际实施/完成这项工作。提前致谢。