仅从训练数据或整个数据中构建词汇表?
Posted
技术标签:
【中文标题】仅从训练数据或整个数据中构建词汇表?【英文标题】:Build vocabulary only from training data or entire data? 【发布时间】:2020-10-15 21:24:11 【问题描述】:我应该仅从训练数据还是所有数据构建词汇表,这不会对测试数据产生两种方式的影响吗?我的意思是:
如果我们只从训练数据中构建词汇表,如果词汇表中没有单词,模型将无法识别验证和测试数据中的很多单词。
在这种情况下考虑预训练的词嵌入是否有帮助(即模型不是从训练数据而是从预训练的词嵌入中学习新词)?
如果是,随机初始化的词嵌入会产生同样的效果吗?
相反,我看到很多例子,编码人员根据整个数据构建词汇,测试和验证数据与训练数据共享。这不是很明显的数据泄露问题吗?
【问题讨论】:
【参考方案1】:如果您谈论的是词嵌入,那么您应该为词汇外的词设置一些特殊标记(您可能不希望拥有所有唯一的词,而是希望拥有前 N 个词)。例如。添加一个特殊的标记,如[UNK]
,并用它替换每个未知单词。
如果您有预训练的词嵌入和小型训练集,请将它们用作初始点。
此外,没有理由为您在训练期间不会优化的单词初始化嵌入。
唯一可能泄露的信息是词频,这不是一个严重的问题。
【讨论】:
以上是关于仅从训练数据或整个数据中构建词汇表?的主要内容,如果未能解决你的问题,请参考以下文章