语言翻译的序列到序列学习,看不见的单词呢

sequence to sequence learning for language translation, what about unseen words

序列到序列学习是一种强大的语言翻译机制,尤其是在特定上下文的情况下本地使用它。

我正在关注 this pytorch tutorial 的任务。

但是,教程没有将数据拆分为训练和测试。 你可能认为这没什么大不了的,只是把它分开,使用一个块进行训练,另一个用于测试。但这并没有那么简单。

本质上,本教程在引导数据集的同时创建了所见单词的索引。索引只是存储在字典中。这是在进入编码器 RNN 之前,只是一种简单的从单词到数字的转换任务。

如果数据是随机拆分的,会发生这样的情况,其中一个关键字可能不会出现在训练集中的句子中,因此可能根本没有索引。如果在测试时出现,应该怎么办?

扩展字典?

序列到序列模型的性能在很大程度上取决于词汇表中唯一单词的数量。每个独特的词都必须在训练集中遇到多次,以便模型可以学习它的正确用法。出现次数少的词不能被模型使用,因为模型无法学习到关于这些词的足够信息。在实践中,字典的大小通常会减小,用特殊的 "UNK" 标记替换稀有词。因此,如果在测试期间出现一个新词,可以假设它很少见(因为它从未出现在训练集中)并将其替换为 "UNK".