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
Scala spark DistributedLDAModel和LocalLDAModel_Scala_Apache Spark_Lda - Fatal编程技术网

Scala spark DistributedLDAModel和LocalLDAModel

Scala spark DistributedLDAModel和LocalLDAModel,scala,apache-spark,lda,Scala,Apache Spark,Lda,我正在尝试训练一个主题模型来对文档进行集群和主题分类。 我的培训代码如下所示,迭代次数默认设置为20次。优化器将默认为EM val ldaModel = new LDA(). setK(500).setOptimizer("em").run(corpus))) 然后,我在我的培训文档中选取一个文档,使用 val topicsA = ldaModel.topicDistributions.filter(x=>x._1 == 100) 其次,我找到这个文档的单词ve

我正在尝试训练一个主题模型来对文档进行集群和主题分类。 我的培训代码如下所示,迭代次数默认设置为20次。优化器将默认为EM

val ldaModel = new LDA().
            setK(500).setOptimizer("em").run(corpus)))
然后,我在我的培训文档中选取一个文档,使用

val topicsA = ldaModel.topicDistributions.filter(x=>x._1 == 100)
其次,我找到这个文档的单词vec,并使用LocalLDAModel预测它的主题

val topicsB = ldaModel.toLocal.topicDistribution(wordsVec)
但我得到了topicsA和topicsB两个完全不同的主题分布

我有点迷路了,有什么建议吗

还有一件事,如何在EM和在线之间选择优化器?似乎如果您需要在培训模型后添加更多的小批量数据,联机是更好的选择,并且可以节省内存


谢谢

这里只是猜测一下,但是toLocal是否可能不保存主题ID?在DistributedLDAModel.topicsMatrix中,它发出警告

不保证主题的顺序


所以,也许你实际上从两个方面都得到了相同的分布,但它被置换了。

是的,我认为这就是原因,LocalLDAModel。主题分布通过使用该主题矩阵进行预测。谢谢