0

问题陈述:我有几个文件(20k 个文件)。我需要应用主题建模来查找相似的文档,然后分析这些相似的文档以找出它们之间的不同之处。问:谁能建议我任何可以实现这一目标的主题建模包。我正在探索 Mallet 和 Gensim Python。不确定哪个最适合我的要求。

任何帮助将不胜感激。

4

2 回答 2

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.TopicAssignment。ATopicAssignment包含一个cc.mallet.types.LabelSequencecalled topicSequence,它保存每个单词的主题分配。您将需要遍历此以获取每个主题的计数。那么,文档 j 中主题 i 的概率就是 (#words assignment to topic i in doc j) / (total words in doc j)。存储这些概率并使用它们来计算您选择的散度度量(例如,KL 散度)。

于 2014-05-17T00:54:49.443 回答
0

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

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

于 2014-06-17T15:19:06.003 回答