有没有办法像在word2vec中一样找到类似的文档
赞:
model2.most_similar(positive=['good','nice','best'],
negative=['bad','poor'],
topn=10)
我知道我们可以使用infer_vector,让它们具有类似的值,但是我想像在word2vec中一样提供许多正面和负面的例子。
有什么办法可以做到!谢谢!
答案 0 :(得分:1)
对于Doc2Vec
调用,most_similar()
模型的doc-vector部分的工作原理与单词向量类似。您可以在positive
和negative
参数中提供多个doc标签或完整矢量。
因此您可以致电...
sims = d2v_model.docvecs.most_similar(positive=['doc001', 'doc009'], negative=['doc102'])
...它应该可以工作。 positive
或negative
列表中的元素可以是训练期间出现的doc标签,也可以是原始向量(例如infer_vector()
返回的向量,或者您自己对多个向量的平均值) 。
答案 1 :(得分:0)
不相信对此有预先编写的功能。
一种方法是编写一个遍历肯定列表中每个单词的函数,以获取特定单词的前n个单词。
因此,对于您的问题示例中的肯定词,您最终将得到3个包含10个词的列表。
然后,您可以将3个列表中共有的单词标识为前n个,与肯定列表相似。由于并非所有单词在这3个列表中都是相同的,因此您可能需要在迭代时获得前20个相似的单词,因此您可以在示例中最终获得前10个单词。
然后对否定词做同样的事情。