序列学习是一种强大的语言翻译机制,特别是在特定情境的情况下在本地使用它。
我正在关注this pytorch
tutorial任务。
但是,该教程没有将数据拆分为培训和测试。 您可能认为这不是什么大问题,只需将其分开,使用一个块进行培训,另一个进行测试。但事情并非那么简单。
本质上,本教程在引导数据集时创建所看单词的索引。索引只是存储在字典中。这是在进入编码器RNN之前,只是从单词到数字的简单转换类型的任务。
如果数据被随机分割,会发生什么,其中一个关键字可能不会出现在训练集的句子中,因此可能根本没有索引。如果它在测试时出现,应该做什么?
扩展字典?
答案 0 :(得分:1)
序列模型的性能强烈依赖于词汇表中唯一单词的数量。在训练集中必须多次遇到每个唯一的单词,这样模型才能正确使用它。出现几次的单词不能被模型使用,因为模型无法获得有关此类单词的足够信息。在实践中,字典的大小通常会减少,用特殊的“UNK”标记替换罕见的单词。因此,如果在测试期间出现一个新单词,则可以假设它很少(因为它从未出现在训练集中)并用“UNK”替换它。