Spark LDA 实例

发布时间:2020-07-19 21:00:25 作者:Xlulu__
来源:网络 阅读:1385

Spark LDA 实例

一、准备数据

数据格式为:documents: RDD[(Long, Vector)],其中:Long为文章ID,Vector为文章分词后的词向量;

通过分词以及数据格式的转换,转换成RDD[(Long, Vector)]即可。

二、建立模型

import org.apache.spark.mllib.clustering._
val ldaOptimizer = new OnlineLDAOptimizer().setOptimizeDocConcentration(true)
val lda = new LDA()
lda.setK(params.k)
.setMaxIterations(params.maxIterations)
.setDocConcentration(params.docConcentration)
.setTopicConcentration(params.topicConcentration)
.setOptimizer(ldaOptimizer)
.setCheckpointInterval(10)
.setSeed(1234)
val modelLDA: LDAModel = lda.run(corpus)
modelLDA.save(sc.sparkContext, params.modelPath)

三、模型参数

case class NewsParams(
    k: Int = 100,
    maxIterations: Int = 100,
    docConcentration: Double = -1,
    topicConcentration: Double = -1,
    stopWordFile: String = "zh_stopwords.txt",
    modelPath: String = "LDAModel.14.100",
    ldaJsonPath:String = "ldaModel.14.200.json",
    vocabPath: String = "vocab_info" )

四、结果输出

topicsMatrix以及topics(word,topic))输出。mllib上的lda不是分布式的,目前只存储topic的信息,而不存储doc的信息,如果获取只能使用ml中的lda或者通过以下代码实现。

val ldaModel = lda.run(documents)
val distLDAModel = ldaModel.asInstanceOf[DistributedLDAModel]
distLDAModel.topicDistributions
推荐阅读:
  1. Spark整合Mongodb的方法
  2. Python把Spark数据写入ElasticSearch的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spark lda spar

上一篇:WEB HTML

下一篇:放学默示录Ⅰ:来!抠奖 移动游戏策划案

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》