序列序列学习是一种强有力的语言翻译机制,尤其是在特定语境的情况下进行局部学习。
我正在跟踪 tutorial完成这项任务。
然而,本教程并没有将数据分成培训和测试两部分。你可能会觉得这没什么大不了的,把它分开,用一个块进行训练,另一个用来测试。但事情并没有那么简单。
本质上,本教程在引导数据集时创建所见单词的索引。索引只是简单地存储在字典中。在进入编码器RNN之前,这只是一种简单的从文字到数字的转换任务。
如果数据被随机分割,所发生的情况是,其中一个关键字可能不会出现在训练集的句子中,因此可能根本没有索引。如果它出现在测试时,应该做什么?
扩充字典?
发布于 2017-10-26 20:32:43
序列到序列模型的性能在很大程度上取决于词汇中唯一单词的计数。每个独特的单词必须在训练集中遇到多次,这样模型才能学习它的正确用法。模型不能使用很少出现的单词,因为模型无法了解足够的有关此类单词的信息。在实践中,字典的大小通常被缩小,用一个特殊的"UNK“标记代替罕见的单词。因此,如果在测试过程中出现了一个新单词,则可以假定它很少见(因为它从未出现在培训集中),并将其替换为"UNK“。
https://stackoverflow.com/questions/46962582
复制相似问题