java - 如何获取新文档的主题 vector 并与Mallet中预定义的主题模型进行比较?

标签 java lda mallet

我正在尝试使用 MALLET 以某种方式将单个文档的主题分布(使用 LDA)与先前创建的主题模型中的其他文件及其主题分布进行比较。

我知道这可以通过终端中的 MALLET 命令来完成,但我在寻找用 Java 实现它的方法时遇到了问题。

简要说明我的程序的功能是什么:

已创建的主题模型是使用大量文本创建的。我想用它来比较主题分布与包含特定主题标签的推文,然后从语料库中提取与推文最相似的文件。

我通读了 Mallet 的 Java API 文档,但它们看起来很困惑,而且没有真正解释清楚。

如果有人能给我一些提示,我将不胜感激

最佳答案

首先,看看这些:

现在,这些示例展示了基本功能,但它们没有展示在您需要将训练与测试分开时如何保存和加载模型。基本上,您需要在训练后保存模型和实例(因为您需要使用相同的管道进行训练和测试),并在测试前加载它们。

训练后保存模型和流水线:

model.write(new File("model.dat"));
instances.save(new File("pipeline.dat"));

测试前加载模型和管道:

ParallelTopicModel model = ParallelTopicModel.read(new File("model.dat"));
InstanceList instances = InstanceList.load(new File("pipeline.dat"));

希望这对您有所帮助。

关于java - 如何获取新文档的主题 vector 并与Mallet中预定义的主题模型进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42561983/

相关文章:

python - LDA Gensim Word -> 主题 ID 分布而不是主题 -> 单词分布

Python Gensim : how to calculate document similarity using the LDA model?

java - 使用经过训练的 MALLET 主题模型从相关主题中提取关键字

java - YUICompressor 取消转义反斜杠

java - 比较日期是否早于 24 小时

java - 如何从 selenium java 测试文件将参数传递给 Karate 功能文件

python - 如何使用 scikit learn 获取特定文档的主题概率?

java - 为什么 reducer 在我的情况下不能正常工作?

python - 索引错误: list index out of range in Python Script

java - MALLET主题推理