首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gensim预训练模型相似性

Gensim预训练模型相似性
EN

Stack Overflow用户
提问于 2019-01-16 10:52:02
回答 2查看 323关注 0票数 0

问题:

我使用带向量的手套预训练模型来重新训练我的模型,比如#cars,在训练之后,我想在我的领域内找到类似的单词,但是我在我的领域语料库中没有得到单词,我相信它来自手套的向量。

代码语言:javascript
复制
model_2.most_similar(positive=['spacious'],    topn=10)

[('bedrooms', 0.6275501251220703),
 ('roomy', 0.6149100065231323),
 ('luxurious', 0.6105825901031494),
 ('rooms', 0.5935696363449097),
 ('furnished', 0.5897485613822937),
 ('cramped', 0.5892841219902039),
 ('courtyard', 0.5721820592880249),
 ('bathrooms', 0.5618442893028259),
 ('opulent', 0.5592212677001953),
 ('expansive', 0.555268406867981)]

在这里,我期待一些像腿部空间,汽车的宽敞功能在领域的语料库中提到。如何在有相似矢量的情况下排除手套向量?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-16 21:54:31

在一组简单的通用字向量中,可能没有足够的信息来通过使用域过滤邻居。

您可以尝试使用混合加权:将与'spacious''cars'的相似之处结合起来,并返回该组合中的最高结果--这可能会有所帮助。

positive方法提供多个most_similar()单词可能近似于此。如果您确信有一些主要的干扰/重叠来源,您甚至可以使用negative单词示例,类似于word2vec如何为类推找到候选答案(尽管这也可能会抑制与两个领域(如'roomy')合法相关的有用结果)。例如:

代码语言:javascript
复制
candidates = vec_model.most_similar(positive=['spacious', 'car'], 
                                    negative=['house'])

(您也可以尝试使用由许多定义域的单词组合而成的向量,而不是使用“car”或“house”这样的单个单词。)

但是,一个尖锐的区别听起来像是一个研究项目,而不是通过现成的库/向量很容易实现的东西,而且可能需要更复杂的方法和数据集。

您也可以尝试使用一组只在感兴趣领域的文本数据集上训练的向量,从而确保单词的词汇和感官都在该领域。

票数 1
EN

Stack Overflow用户

发布于 2019-01-16 11:02:22

您不能排除已经训练过的模型中的单词。我不知道您在哪个框架中工作,但我将给出Keras中的示例,因为理解意图很简单。

你可以做的是使用嵌入层,用GloVe“知识”填充它,然后用你的语料库恢复训练,这样层就可以学习单词并适合你的特定领域。你可以在Keras博客上读到更多关于它的信息。

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

https://stackoverflow.com/questions/54215456

复制
相关文章

相似问题

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