首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark 1.4Mllib LDA topicDistributions()返回错误数量的文档

Spark 1.4Mllib LDA topicDistributions()返回错误数量的文档
EN

Stack Overflow用户
提问于 2015-08-15 05:57:23
回答 1查看 429关注 0票数 1

我有一个LDA模型,运行的语料库大小为12,054个文档,词汇大小为9,681个单词和60个聚类。我试图通过调用.topicDistributions()或.javaTopicDistributions()来获得文档的主题分布。这两种方法都返回文档上的主题分布的rdd。因此,根据我的理解,行数应该是文档数,列数应该是主题数。但是,当我在调用topicDistributions()之后对rdd进行计数时,我得到的计数是11,665 (少于传递给模型的文档数量)?每个文档都有正确的主题数量(60)。为什么会这样呢?

下面是演示:http://spark.apache.org/docs/latest/mllib-clustering.html

和文档:https://spark.apache.org/docs/1.4.0/api/java/org/apache/spark/mllib/clustering/DistributedLDAModel.html

代码如下:

代码语言:javascript
复制
enter code here

//parse tf vectors from corpus

JavaRDD<Vector> parsedData = data.map(
    new Function<String, Vector>() {
        public Vector call(String s) {
            s = s.substring(1, s.length()-1);
            String[] sarray = s.trim().split(",");
            double[] values = new double[sarray.length];
            for (int i = 0; i < sarray.length; i++)
            {
                values[i] = Double.parseDouble(sarray[i]);
            }
            return Vectors.dense(values);
          }

);

System.out.println(parsedData.count()) //prints 12,054

// Index documents with unique IDs

JavaPairRDD<Long, Vector> corpus =  JavaPairRDD.fromJavaRDD(parsedData.zipWithIndex().map(
     new Function<Tuple2<Vector, Long>, Tuple2<Long, Vector>>() {
       public Tuple2<Long, Vector> call(Tuple2<Vector, Long> doc_id) {
         return doc_id.swap();
       }
     }
));

System.out.println(corpus.count()) //prints 12,054

LDA lda = new LDA()
LDAModel ldaModel = lda.setK(k.intValue()).run(corpus);

RDD<scala.Tuple2<Object,Vector>> topic_dist_over_docs = ((DistributedLDAModel) ldaModel).topicDistributions();
System.out.println(topic_dist_over_docs.count()) //prints 11,655 ???

JavaPairRDD<Long,Vector> topic_dist_over_docs2 = ((DistributedLDAModel) ldaModel).javaTopicDistributions();
System.out.println(topic_dist_over_docs2.count()) //also prints 11,655 ???
EN

回答 1

Stack Overflow用户

发布于 2015-08-22 07:15:24

在topicDistributions的Spark1.4中似乎有一个bug。在更新到Spark 1.5的实验版本后,我能够解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32019231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档