使用在线LDA预测测试数据

时间:2018-11-07 15:46:16

标签: python algorithm lda topic-modeling dirichlet

我正在使用在线LDA执行某些主题建模任务。我使用基于原始在线LDA论文的核心代码:Hoffman,Blei和Bach,“潜在Dirichlet分配的在线学习”。 NIPS,2010年。该代码可在https://github.com/blei-lab/onlineldavb获得。

我正在使用约167000个文档的火车。该代码生成lambda文件作为输出,用于生成主题(https://github.com/wellecks/online_lda_python,printtopics.py)。但是我不确定如何使用它来查找有关新测试数据的主题(类似于中的model.get_document_topics gensim)。 请帮助解决我的困惑。

2 个答案:

答案 0 :(得分:0)

对测试数据执行相同的数据处理步骤,即令牌化等,然后使用训练数据词汇将测试数据转换为gensim语料库。

一旦您具有测试语料库,请使用LDA查找文档主题分布。希望这会有所帮助。

答案 1 :(得分:0)

在代码中,您已经足够执行此操作。您拥有的是lambda(单词主题矩阵),您要计算的是gamma(文档主题矩阵)。

您需要做的就是在文档上调用OnlineLDA.do_e_step,结果就是主题向量。通过从中删除sstats可能会提高性能,因为仅更新lambda才需要这样做。结果将是一个仅推断模型主题向量的函数。

您不需要更新模型,因为您没有训练它,这就是update_lambda在调用do_e_step之后所做的事情。