Spark MLlib LDA,如何推断一个新的看不见的文件的主题分布?

Ram*_*ami 14 lda topic-modeling apache-spark apache-spark-mllib

我有兴趣使用Spark MLlib应用LDA主题建模.我已经检查了这里的代码和解释,但我找不到如何使用模型然后在一个新的看不见的文档中找到主题分布.

Jas*_*man 13

从Spark 1.5开始,此功能尚未实现DistributedLDAModel.您需要做的是将模型转换为LocalLDAModel使用该toLocal方法的方法,然后调用topicDistributions(documents: RDD[(Long, Vector])方法,其中documents包括新的(即非训练外)文档,如下所示:

newDocuments: RDD[(Long, Vector)] = ...
val topicDistributions = distLDA.toLocal.topicDistributions(newDocuments)
Run Code Online (Sandbox Code Playgroud)

这将不如本文所建议的EM算法准确,但它会起作用.或者,您可以使用新的在线变分EM训练算法,该算法已经产生了一个LocalLDAModel.除了更快之外,这种新算法也是优选的,因为它与用于拟合的旧EM算法不同,优先DistributedLDAModels于在文档的主题混合权重之前的Dirichlet的参数(α).根据Wallach等人的说法.人.,alphas的优化对于获得好的主题非常重要.