仅从培训数据还是整个数据构建词汇表?

时间:2020-06-25 12:11:09

标签: nlp pytorch recurrent-neural-network word-embedding vocabulary

我应该仅根据火车数据还是所有数据来构建词汇表,这不会同时以两种方式影响测试数据吗?我的意思是:

  • 如果仅从训练数据中构建词汇,则该模型将无法在验证和测试数据中识别出很多单词,如果该单词在词汇表中不可用。

  • 在这种情况下是否考虑使用预训练词嵌入帮助(即模型不是从训练数据而是从预训练词嵌入中学习新词)?

  • 如果是,随机初始化单词嵌入会产生相同的效果吗?

  • 相反,我看到了许多示例,其中编码人员从整个数据构建他们的词汇,测试和验证数据与训练数据共享。这不是一个明显的数据泄漏问题吗?

1 个答案:

答案 0 :(得分:2)

  1. 如果您正在谈论单词嵌入,那么您应该为词汇外单词使用一些特殊的标记(您可能不希望拥有所有唯一的单词,而希望有N个顶)。例如。添加一个特殊标记,例如[UNK],并用它替换每个未知单词。

  2. 如果您有预训练的词嵌入和小的训练集,请使用它们作为初始点。

  3. 此外,没有理由为您在训练期间不会优化的单词初始化嵌入。

  4. 唯一可能泄漏的信息是单词频率,这不是一个严重的问题。