我使用以下命令从某些文档生成主题模型:
bin/mallet train-topics --input topic-input.mallet --num-topics 100 --output-state topic-state.gz
但是,我没有使用--output-model
选项生成序列化主题培训师对象。有什么办法可以使用状态文件来推断新文档的主题吗?训练很慢,如果我必须从头开始创建序列化模型,我需要花几天时间重新训练。
答案 0 :(得分:1)
我们没有使用mallet附带的命令行工具,我们只是使用mallet api创建序列化模型以推断新文档。两点需要特别注意:
请查看java doc:
答案 1 :(得分:0)
根据release notes,从状态文件恢复模型似乎是mallet 2.0.7中的新功能。
能够从gzip压缩的“状态”文件中恢复模型。来自新的 TopicTrainer,使用--input-state [filename]参数。请注意你 可以手动编辑此文件。主题设置为-1的任何标记都将是 加载后立即重新采样。
答案 2 :(得分:0)
如果您的意思是想要了解新文档如何适应以前训练过的主题模型,那么我担心没有简单的命令可以用来做正确的事情。 mallet 2.0.7源代码中的cc.mallet.topics.LDA类提供了这样一个实用程序,尝试理解它并在程序中使用它。 P.S.,如果我的记忆服务,那么在该类中实现该功能存在一些问题:
public void addDocuments(InstanceList additionalDocuments,
int numIterations, int showTopicsInterval,
int outputModelInterval, String outputModelFilename,
Randoms r)
你必须重写它。