Apache spark Spark MLlib LDA,如何推断新未查看文档的主题分布?
我对使用Spark MLlib应用LDA主题建模感兴趣。我已经检查了中的代码和解释,但找不到如何使用该模型在新的未查看文档中查找主题分布。自Spark 1.5起,Apache spark Spark MLlib LDA,如何推断新未查看文档的主题分布?,apache-spark,lda,apache-spark-mllib,topic-modeling,Apache Spark,Lda,Apache Spark Mllib,Topic Modeling,我对使用Spark MLlib应用LDA主题建模感兴趣。我已经检查了中的代码和解释,但找不到如何使用该模型在新的未查看文档中查找主题分布。自Spark 1.5起,DistributedLDAModel尚未实现此功能。您需要做的是使用toLocal方法将模型转换为LocalLDAModel,然后调用topicDistributions(documents:RDD[(Long,Vector])方法,其中documents是新的(即未经培训的)文档,如下所示: newDocuments: RDD[(L
DistributedLDAModel
尚未实现此功能。您需要做的是使用toLocal
方法将模型转换为LocalLDAModel
,然后调用topicDistributions(documents:RDD[(Long,Vector])
方法,其中documents
是新的(即未经培训的)文档,如下所示:
newDocuments: RDD[(Long, Vector)] = ...
val topicDistributions = distLDA.toLocal.topicDistributions(newDocuments)
这将不如EM算法所建议的准确,但它会起作用。或者,您可以使用新的在线变分EM训练算法,该算法已经产生了一个
LocalLDAModel
。除了更快之外,这种新算法也更可取,因为它与旧的EM算法不同用于拟合分布式LDAMODEL的thm正在优化参数(Alpha)Dirichlet优先于主题混合文档权重。根据,优化alphas对于获得好的主题非常重要。谢谢。答案非常有用!如果可能,您能详细说明如何提取主题分布的输出以获得更具代表性的结果吗?我已经实现了这一点显示了如何打印topicDistributions 1.6版有什么变化吗?distLDA.toLocal.XXX是否适用于python,或者只是scala?是否只有topicDistributions有效,或者所有其他函数也有效?@alex9311尽管您的代码可能证明我错了,但apache docs v 2.1.0实际上说topicDistribution在LocalLDA模型,这使您的代码非常有趣!我无法解释。“本地LDA模型。此模型仅存储推断主题。”和“分布式LDA模型。此模型存储推断主题、完整培训数据集和主题分布。”