【问题标题】:How to compare the topical similarity between two documents in Python Gensim from their topic distributions?如何从主题分布比较 Python Gensim 中两个文档的主题相似性?
【发布时间】:2019-08-12 23:17:39
【问题描述】:

我已经使用 Gensim 在语料库上训练了一个 LDA 模型。现在我有了每个文档的主题分布,如何比较两个文档在主题中的相似程度?我想有一个总结措施。例如,以下是两个文档的主题分布。共有75个主题。为简洁起见,我只展示了前 10 个概率最大的主题(因此主题不按顺序排列)。 (40, 0.5523168) 表示主题 #40 对于 DOC #1 的概率为 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】:

    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 距离。

    【讨论】:

      猜你喜欢
      • 2020-12-25
      • 2022-01-14
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 2018-03-16
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多