首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未进行训练的新词的词嵌入

未进行训练的新词的词嵌入
EN

Data Science用户
提问于 2019-07-01 03:30:30
回答 3查看 5.2K关注 0票数 4

假设我训练了一个Skip模型(Word2Vec),用于我的词汇量为10,000。表示允许我将维数从10,000 (一次热编码)降到100 (神经网络隐层的大小)。

现在,假设我的测试集中有一个单词不在我的训练词汇表中。在100维空间中,单词的合理表示是什么?对我来说,我似乎不能用我训练出来的神经网络来产生嵌入这个词。

EN

回答 3

Data Science用户

发布于 2019-07-18 10:25:48

为“OOV”(OOV)单词生成单词嵌入是许多标准嵌入的主要限制之一,如Glove和word2vec。然而,fastText在某种程度上回避了这个问题。

传统的方法对每个单词都有不同的向量,取而代之的是字符n克级表示。例如,带有n= 3的单词将由字符n表示:

<wh, whe, her, ere, re>

特别的顺序是:

< where >

在这里,<>are部分的n-克.

s(w,c) = \sum_{g\varepsilon G_{_{w}}} z_{g}^{T} v_{c} 这里,G表示n克字典的大小,并给出一个单词w,然后G_{w}\subset \left \{ 1, ..., G \right \}表示出现在

w

。它们将向量表示z_{g}与每一个n克g相关联,并用其n克的向量表示之和来表示一个单词。

这有助于他们通过了解子词的一些表示来处理OOV单词。例如,一个OOV单词:sechero

3克:

<se, sec, ech, che, her, ero, ro>

因为,这3克可能是在学习过程中遇到的,通过其他已知的词,如:

<se - section che - cheer ro> - hero

因此,它至少可以形成一些合理的嵌入,而不是返回无用的<UNK>

Fastext实际上是对word2vec的扩展,主要是上面解释的特性。

票数 4
EN

Data Science用户

发布于 2019-07-01 03:58:36

在Word2Vec训练中,如果你还记得他们是一个超副配子"min_count",这意味着一个特定的单词应该存在于语料库中的最少时间。符合这个条件的单词(和其他词汇一样)被认为是词汇的一部分,否则就被丢弃了。

为了处理丢弃的单词,我们使用另一个单词表示,即"UNK“令牌。

同样,在你的例子中,这个词应该被视为"UNK“。

尽管您可以为某个特定的单词进行进一步的Word2Vec培训。

处理UNK字词上的另一篇相关文章

票数 1
EN

Data Science用户

发布于 2019-07-01 07:54:36

有各种各样的方法来处理词汇之外的词汇。其中之一,绝对是上述解决方案的Vipin。然而,这并不是唯一的办法。有一些实现使用子单词信息来创建词汇表外的向量。

当您考虑一个业务问题时,不可能创建一个包含所有可能单词的词汇表来训练word2vec模型,而不管SkipGram或CBOW。我已经欣赏到的实现之一是Facebook在FastText中的实现。该实现基于本论文

这是指向FastText的链接。

您还可以自己编写一个小型网络,通过在您的空间中实现几篇论文,将一个热点转换为矢量。

你需要回答的问题,IMHO是,对你来说,处理词汇外的词汇有多重要?它的影响是什么?

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

https://datascience.stackexchange.com/questions/54806

复制
相关文章

相似问题

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