我应该仅根据火车数据还是所有数据来构建词汇表,这不会同时以两种方式影响测试数据吗?我的意思是:
如果仅从训练数据中构建词汇,则该模型将无法在验证和测试数据中识别出很多单词,如果该单词在词汇表中不可用。
在这种情况下是否考虑使用预训练词嵌入帮助(即模型不是从训练数据而是从预训练词嵌入中学习新词)?
如果是,随机初始化单词嵌入会产生相同的效果吗?
相反,我看到了许多示例,其中编码人员从整个数据构建他们的词汇,测试和验证数据与训练数据共享。这不是一个明显的数据泄漏问题吗?
答案 0 :(得分:2)
如果您正在谈论单词嵌入,那么您应该为词汇外单词使用一些特殊的标记(您可能不希望拥有所有唯一的单词,而希望有N个顶)。例如。添加一个特殊标记,例如[UNK]
,并用它替换每个未知单词。
如果您有预训练的词嵌入和小的训练集,请使用它们作为初始点。
此外,没有理由为您在训练期间不会优化的单词初始化嵌入。
唯一可能泄漏的信息是单词频率,这不是一个严重的问题。