【发布时间】:2015-03-02 02:03:12
【问题描述】:
我写了这样的代码:
val hashingTF = new HashingTF()
val tfv: RDD[Vector] = sparkContext.parallelize(articlesList.map { t => hashingTF.transform(t.words) })
tfv.cache()
val idf = new IDF().fit(tfv)
val rate: RDD[Vector] = idf.transform(tfv)
如何从每个文章列表项的“rate” RDD 中获取前 5 个关键字?
添加:
articlesList 包含对象:
case class ArticleInfo (val url: String, val author: String, val date: String, val keyWords: List[String], val words: List[String])
words 包含文章中的所有单词。
我不明白 rate 的结构,在文档中说:
@return an RDD of TF-IDF vectors
【问题讨论】:
-
我认为您没有提供足够的信息来说明articlesList 中的内容或最终的速率。但是您可能希望 rate.top(5) 进行一些合适的排序?
-
如果词只包含不同的词条,那么计算出的所有词条的词频将是相同的,因为每个词条在不同的词条列表中只出现一次。
-
抱歉,并不是所有的词都不同。
标签: scala apache-spark apache-spark-mllib tf-idf keyword-search