如何比较Python Gensim中两个文档与主题分布的主题相似性?

问题描述 投票:1回答:1

我使用Gensim在语料库上训练了LDA模型。既然我已经为每个文档分配了主题,那么如何比较主题中两个文档的相似程度呢?我想有一个总结措施。例如,以下是两个文档的主题分布。共有75个主题。为简洁起见,我只展示了具有最大概率的前10个主题(因此主题不按顺序排列)。 (40,0.5523168)表示对于DOC#1,主题#40的概率为0.5523168。我应该计算两个向量之间的欧几里德或余弦距离吗?并且使用这个总结测量,我可以说,例如,DOC 1更类似于DOC2而不是DOC3,或DOC1和DOC 2是否比DOC 3和DOC 4更加相似?谢谢!

DOC #1:
[(40, 0.5523168), (60, 0.12225048), (43, 0.07556598), (41, 0.065885976), 
(22, 0.05838573), (24, 0.044774733), (74, 0.019839266), (65, 0.019544959), 
(51, 0.015470431), (36, 0.013449047)]


DOC #2:
[(73, 0.58864516), (41, 0.16827711), (51, 0.09783472), (63, 0.06510383), 
(24, 0.04722658), (32, 0.014467965), (44, 0.012267662), (47, 0.0031533625), 
(18, 0.0022214972), (0, 1.2154361e-05)]
python gensim lda
1个回答
1
投票

Gensim功能

Gensim提供similarities.docsim功能 - “计算矢量空间模型中文档集合的相似性”。你可以在这里看到documentation,这里还有一个tutorial用于相似性查询。

文件相似度量

使用欧几里德距离将是一个不寻常的选择 - 你可以,但有潜在的问题。您可以使用余弦相似性(link to python tutorial) - 这需要两个文档向量的角度的余弦,这具有易于理解的优点(1 =文档非常相似,-1 =文档完全没有相似性)和是,您可以比较文档1和2的余弦相似度,并将其与文档3和4的余弦相似度进行比较,或者计算doc1到doc2以及doc1和doc3的相似度值并进行比较。有一个漂亮的good tutorial here.

您可能也会找到我对this question over at CrossValidated提供信息的答案,即使您的问题有所不同。

Gensim还有其他distance metrics可用。这些几乎都包含在gensim的matutils中。

局部距离

您还可以使用上述链接中的(某些)距离来测量主题之间的距离,例如Hellinger距离。

© www.soinside.com 2019 - 2024. All rights reserved.