有没有一种方法可以像我们在word2vec 中那样找到类似的文档
类似:
model2.most_similar(positive=['good','nice','best'],
negative=['bad','poor'],
topn=10)
我知道我们可以使用interfer_vector,给它们提供类似的例子,但我想像在word2vec中那样提供许多正面和负面的例子。
我们有办法做到这一点吗!谢谢
对于most_similar()
调用,Doc2Vec
模型的文档向量部分的工作原理与单词向量类似。您可以在positive
和negative
参数中提供多个文档标记或完整矢量。
所以你可以打电话。。。
sims = d2v_model.docvecs.most_similar(positive=['doc001', 'doc009'], negative=['doc102'])
它应该起作用。positive
或negative
列表的元素可以是训练期间出现的文档标签,也可以是原始向量(如infer_vector()
返回的向量,或您自己对多个此类向量的平均值(。
不要相信有预先编写的函数。
一种方法是编写一个函数,迭代肯定列表中的每个单词,以获得特定单词的前n个单词。
因此,在你的问题示例中,对于积极的单词,你会得到3个10个单词的列表。
然后,你可以将3个列表中常见的单词识别为与你的积极列表相似的前n个单词。由于并非所有单词都是3个列表中常见的,因此在迭代时可能需要获得前20个相似的单词,以便在示例中获得所需的前10个单词。
然后对否定词也这样做。