查找与word2vec之类的doc2vec的相似性

时间:2018-12-05 08:51:11

标签: python nlp gensim word2vec doc2vec

有没有办法像在word2vec中一样找到类似的文档

赞:

  model2.most_similar(positive=['good','nice','best'],
    negative=['bad','poor'],
    topn=10)

我知道我们可以使用infer_vector,让它们具有类似的值,但是我想像在word2vec中一样提供许多正面和负面的例子。

有什么办法可以做到!谢谢!

2 个答案:

答案 0 :(得分:1)

对于Doc2Vec调用,most_similar()模型的doc-vector部分的工作原理与单词向量类似。您可以在positivenegative参数中提供多个doc标签或完整矢量。

因此您可以致电...

sims = d2v_model.docvecs.most_similar(positive=['doc001', 'doc009'], negative=['doc102'])

...它应该可以工作。 positivenegative列表中的元素可以是训练期间出现的doc标签,也可以是原始向量(例如infer_vector()返回的向量,或者您自己对多个向量的平均值) 。

答案 1 :(得分:0)

不相信对此有预先编写的功能。

一种方法是编写一个遍历肯定列表中每个单词的函数,以获取特定单词的前n个单词。

因此,对于您的问题示例中的肯定词,您最终将得到3个包含10个词的列表。

然后,您可以将3个列表中共有的单词标识为前n个,与肯定列表相似。由于并非所有单词在这3个列表中都是相同的,因此您可能需要在迭代时获得前20个相似的单词,因此您可以在示例中最终获得前10个单词。

然后对否定词做同样的事情。