主题建模:LDA vs LSA vs ToPMine

数据挖掘 主题模型 低密度脂蛋白
2022-02-23 11:21:12

我是主题建模的新手。

  1. 是否可以在 Python 中实现 ToPMine?在快速搜索中,我似乎找不到任何带有 ToPMine 的 Python 包。

  2. ToPMine 是否优于 LDA 和 LSA?我知道 LDA 和 LSA 已经存在了很长时间并被广泛使用。

谢谢

2个回答

ToPMine Python 实现:

pip install topmine
from topmine.phrase_lda import PhraseLDA
from topmine.phrase_mining import PhraseMining
a = PhraseMining(["you are a goode boy boy boy boy boy yes joke joke joke."]*10+["you are a big joke"]*20)
p = a.mine()
PhraseLDA(*p).run()
lda = PhraseLDA(*p).run()

这是 El-Kishky、Ahmed 等人详细介绍的算法的实现。“从文本语料库中挖掘可扩展的主题短语。” VLDB 捐赠基金会议记录 8.3 (2014): 305-316.APA

为了运行代码,只需按照以下步骤操作:

Put the file on which you want to run topmine in the folder named “input”
python -m  topmine_src.run_phrase_mining input/{filename}
python -m  topmine.run_phrase_lda {num_of_topic}
example
python -m  topmine_src.run_phrase_mining input/dblp_5k.txt
python -m  topmine.run_phrase_lda 4

LDA 与 LSA

潜在语义分析 (LSA)是一种数学方法,它试图将文档集合中的潜在关系带入低维空间。LSA假设意思相近的词会出现在相似的文本片段中(分布假设)。包含每个段落的字数的矩阵(行代表唯一的单词,列代表每个段落)由一大段文本和一种称为奇异值分解 (SVD)的数学技术构成用于减少行数,同时保留列之间的相似性结构。它不是查看与其他文档隔离的每个文档,而是将所有文档作为一个整体以及其中的术语来识别关系。

潜在狄利克雷分配(LDA)算法是一种无监督学习算法,它在概率统计模型上工作以自动发现文档包含的主题。

LDA假设语料库中的每个文档都包含在整个语料库中发现的主题组合。主题结构是隐藏的——我们只能观察文档和单词,而不是主题本身。由于结构是隐藏的(也称为潜在的),因此该方法试图在给定已知单词和文档的情况下推断主题结构。

我不知道 ToPMine,但通过快速搜索,看起来目标与常规主题建模有点不同,不是吗?

据我所知,LSA 严格来说也不是一种主题建模方法,至少它肯定不再被这样使用了。

LDA 是标准的传统主题建模方法。已经提出了许多变体和扩展,我认为以下两个值得一提,但可能还有其他: