Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark MLlib LDA,如何推断新未查看文档的主题分布?_Apache Spark_Lda_Apache Spark Mllib_Topic Modeling - Fatal编程技术网

Apache spark Spark MLlib LDA,如何推断新未查看文档的主题分布?

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

我对使用Spark MLlib应用LDA主题建模感兴趣。我已经检查了中的代码和解释,但找不到如何使用该模型在新的未查看文档中查找主题分布。

自Spark 1.5起,
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模型。此模型存储推断主题、完整培训数据集和主题分布。”