Gensim 预训练模型相似度

问题 :


我使用带有向量的手套预训练模型来重新训练我的模型,例如#cars,训练后我想在我的域中找到相似的词,但我的词不在我的域语料库中,我相信它来自手套的向量。


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)]

在这里,我期望域语料库中提到的腿部空间、汽车的宽敞功能。我们如何在具有相似向量的同时排除手套向量?


aluckdog
浏览 240回答 2
2回答

慕田峪7331174

在一组简单的通用词向量中可能没有足够的信息来按使用领域过滤邻居。您可以尝试使用混合加权:将与'spacious'、 和的相似之处组合起来'cars',然后返回该组合中的最高结果——这可能会有所帮助。positive为该most_similar()方法提供一个以上的单词可能会近似于这一点。如果您确定某些主要的干扰/重叠来源,您甚至可以使用negative单词示例,类似于 word2vec 如何找到类比的候选答案(尽管这也可能会抑制与两个域合法相关的有用结果,例如'roomy')。例如:candidates = vec_model.most_similar(positive=['spacious', 'car'],                                      negative=['house'])(除了使用像“car”或“house”这样的单个词之外,您还可以尝试使用由定义域的许多词组合而成的向量。)但是,一个明显的区别听起来像是一个研究项目,而不是使用现成的库/向量很容易实现的东西——并且可能需要更复杂的方法和数据集。您还可以尝试使用仅在来自感兴趣领域的文本数据集上训练的一组向量——从而确保单词的词汇和意义都在该领域内。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python