主题建模和发现主题的相似性

时间:2014-05-05 13:34:05

标签: topic-modeling gensim mallet

问题陈述:我有几个文件(20k文件)。我需要应用主题建模来查找类似的文档,然后分析这些类似的文档,以找出它们之间的差异。 问:有人可以建议我使用Topic建模包来实现这个目标。我正在探索Mallet和Gensim Python。不确定哪种最符合我的要求。

任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:2)

我不知道Gensim Python,但MALLET可能是一个解决方案。假设您拥有Java专业知识,那应该不会太困难。

使用您的数据创建cc.mallet.types.InstanceList,并使其符合cc.mallet.topics.SimpleLDA模型。然后,对于每个cc.mallet.types.Instance(实例是您的文档),计算彼此的差异度量Instance。为此,您需要计算每个Instance内每个主题的概率,这有点棘手。在SimpleLDA中,有一个ArrayList<TopicAssignment> data对象包含Instances及其cc.mallet.topics.TopicAssignmentTopicAssignment包含名为cc.mallet.types.LabelSequence的{​​{1}},其中包含每个单词的主题分配。您将需要遍历此以获取每个主题的计数。然后,文档j中主题i的概率很简单(#doc分配给doc j中的主题i)/(doc j中的总词)。存储这些概率并使用它们来计算您选择的偏差度量(例如,KL分歧)。

答案 1 :(得分:0)

Mallet是一个非常容易探索的工具。您可以直接执行以下可用的二进制文件:http://mallet.cs.umass.edu/download.php,而不是使用Mallet的JAVA实现。您甚至无需编写代码来生成文档中的主题分发等文件。使用train-topics选项使用mallet训练主题时,您可以为mallet指定一个文件来为您编写此分发。

下载后,只需键入mallet --help,您就可以获得使用mallet可以执行的许多操作的列表。它们是自我解释的,很容易理解。