首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开始处理测试数据集中的新术语

开始处理测试数据集中的新术语
EN

Stack Overflow用户
提问于 2017-02-07 11:28:34
回答 2查看 1.3K关注 0票数 0

我使用word2vec模型在训练数据集上建立分类器,并想知道处理测试数据中看不见的术语(单词)的技术是什么。

删除新条款似乎不是最好的方法。我目前的想法是在组合数据集(训练+测试)上重新计算word2vec,并从训练数据集(或者可能是2-3最近的线性组合)中用最近的词替换新的术语。听起来有点棘手,但应该可行。

你遇到过类似的问题吗?对如何处理看不见的术语有什么想法/建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-09 08:40:33

首先,你确定删除未知的术语是如此糟糕吗?(你试过了吗?)如果在你的培训数据中没有这些术语的例子,它们可能没有那么常见或重要--至少在你有了更多的培训数据和许多使用它们的不同例子之前是如此。即使它们是相关的,除非你有很多前面的例子,否则你不可能知道它们的重要性。

正如您注意到的,您可以重新训练包含新示例的Word2Vec模型,从而得到一些未知单词所属位置的模糊概念。可以想象,然后使用所有新的单词向量重新训练任何下游分类器,或者将新单词投影回原来的空间。(这可以使用与https://arxiv.org/abs/1309.4168论文第4节中描述的方法类似的方法,但现在您的两种‘语言’是添加新单词之前和之后的模型。)但是,如果你只是从几个这样的单词中工作,或者是在一个新的文本中,你将学到的关于这个词的所有东西都是你的分类器已经可以使用的周围单词的函数,所以收益可能很小。(也就是说,只有从其他地方的许多不同的例子中获得更丰富的含义,才有可能增加对新文本的理解,而不是现有的上下文。)

word2vec的一些变体,如Facebook的fastText,也学习单词片段的矢量。这些词被组合成完整的单词向量。然后,当后来遇到新的原始词汇时,他们可以从共享的片段中合成单词向量.当新词在形态上与已知单词相关时,这个策略可以做得很好。因此,您可能想看看FastText。(它还有一种模式,即将分类标签混合到单词向量训练中,这样可以使单词向量更好地用于以后在相同的标签之间进行分类。)

票数 0
EN

Stack Overflow用户

发布于 2017-03-27 09:21:21

我用这个技巧来解决看不见的单词。在训练过程中,我将训练语料库中的低频词(在整个语料库中发生一次或两次)替换为一个特殊的UNKNOWN_WORD_TOKEN (类似于"<unk>")。现在,当我在测试中遇到看不见的单词时,我让word2vec训练并获得"<unk>"的表示,并使用它。希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42088715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档