【发布时间】:2017-03-26 18:03:36
【问题描述】:
我正在尝试使用 Apache Spark 在 TFIDF 上计算余弦相似度矩阵。 这是我的代码:
def cosSim(input: RDD[Seq[String]]) = {
val hashingTF = new HashingTF()
val tf = hashingTF.transform(input)
tf.cache()
val idf = new IDF().fit(tf)
val tfidf = idf.transform(tf)
val mat = new RowMatrix(tfidf)
val sim = mat.columnSimilarities
sim
}
我在输入中有大约 3000 行,但如果我执行 sim.numRows() 或 sim.numCols() 我会看到 1048576 而不是 3K,据我所知,这是因为 val tfidf 和因此 val mat 都有大小3K * 1048576 其中 1048576 是 tf 特征的数量。也许为了解决这个问题我必须转置mat,但我不知道该怎么做。
【问题讨论】:
标签: scala apache-spark apache-spark-mllib tf-idf cosine-similarity