【发布时间】:2017-02-27 10:39:22
【问题描述】:
我读到我可以使用RowMatrix 附带的columnSimilarities 方法来查找各种记录的余弦相似度(基于内容)。我的数据如下所示:
genre,actor
horror,mohanlal shobhana pranav
comedy,mammooty suraj dulquer
romance,fahad dileep manju
comedy,prithviraj
现在,我创建了一个 spark-ml 管道来计算上述文本特征(流派、演员)的 tf-idf,并在我的管道中使用 VectorAssembler 将这两个特征组合成一列“特征” .之后,我使用这个转换我获得的DataFrame:
val vectorRdd = finalDF.map(row => row.getAs[Vector]("features"))
将其转换为RDD[Vector]
然后,我通过
获得我的RowMatrix
val matrix = new RowMatrix(vectorRdd)
我正在关注this 指南以获取余弦相似度的参考,我需要的是 spark-mllib 中的一种方法来查找特定记录与所有其他记录之间的相似度,例如 sklearn 中的this 方法,如图所示指南:
cosine_similarity(tfidf_matrix[0:1], tfidf_matrix)
但是,我无法找到如何做到这一点。我不明白matrix.columnSimilarities() 在比较和返回什么。有人可以帮我找什么吗?
感谢任何帮助!谢谢。
【问题讨论】:
标签: scala apache-spark apache-spark-mllib cosine-similarity apache-spark-ml