我正在研究文档相似性问题。对于每个文档,我检索每个单词的向量(来自预先训练的单词嵌入模型)并对它们求平均值以获得文档向量。我最终得到了一个字典(例如,my_dict),它将我的集合中的每个文档映射到它的向量。
我想将这个词典提供给gensim和每个文档,让“my_dict”中的其他文档更接近它。我怎么能这样做?
您可能需要考虑重新描述您的问题(从标题中,您正在寻找单词相似度,从我收集的描述中您想要文档相似性)并在说明中添加更多细节。如果没有关于你想要什么和你尝试过什么的更详细信息,很难帮助你实现你想要的东西,因为你可能想做一大堆不同的事情。话虽这么说,我想我可以帮助你一般,即使不知道你想做什么gensim。 gensim非常强大,并提供许多不同的功能。
假设您的字典已经是gensim格式,您可以像这样加载它:
from gensim import corpora
dictionary = corpora.Dictionary.load('my_dict.dict')
在那里 - 现在你可以将它与gensim一起使用,并根据你的心愿运行分析和模型。对于单词之间的相似性,您可以使用gensim.word2vec.most_similar('word_one', 'word_two')
等预先制作的功能。
对于与训练有素的LDA模型的文档相似性,请参阅this stackoverflow question。
有关更详细的说明,请参阅qazxsw poi,它使用余弦相似度作为文档之间相似性的度量。
gensim有一堆预制功能,不需要LDA,例如来自this gensim tutorial的gensim.similarities.MatrixSimilarity
,我建议查看文档和示例。
此外,为了避免一堆陷阱:是否有一个特定的理由自己平均向量(或甚至平均它们)?你不需要这样做(gensim有一些更复杂的方法可以实现文件到矢量的映射,比如similarities.docsim),并且可能会丢失有价值的信息。