【问题标题】:Build vocabulary only from training data or entire data?仅从训练数据或整个数据中构建词汇表?
【发布时间】:2020-10-15 21:24:11
【问题描述】:

我应该仅从训练数据还是所有数据构建词汇表,这不会对测试数据产生两种方式的影响吗?我的意思是:

  • 如果我们只从训练数据中构建词汇表,如果词汇表中没有单词,模型将无法识别验证和测试数据中的很多单词。

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

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

  • 相反,我看到很多例子,编码人员根据整个数据构建词汇,测试和验证数据与训练数据共享。这不是很明显的数据泄露问题吗?

【问题讨论】:

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


    【解决方案1】:
    1. 如果您谈论的是词嵌入,那么您应该为词汇外的词设置一些特殊标记(您可能不希望拥有所有唯一的词,而是希望拥有前 N 个词)。例如。添加一个特殊的标记,如[UNK],并用它替换每个未知单词。

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-12-28
      • 2018-05-26
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2013-07-06
      相关资源
      最近更新 更多