我有两个包含id,genres的文件。genres列包含一些短语和句子。我需要计算genres和单词相关的genres之间的相似度。
第一个文件的示例:
相关流派样本:
代码:
val lines=Source.fromURL(Source.getClass().getResource("file:///usr/local/spark/dataset/algorithm3/result/part-r-00000-85c84730-ce6b-4b0f-8278-dcafa33f5818.csv")).mkString("\n")
val lines2=Source.fromURL(Source.getClass().getResource("file:///usr/local/spark/dataset/algorithm3/funny/part-r-00000-3460ee84-a498-4e25-a55c-3aba962febe2.csv")).mkString("\n")
import java.nio.file.Files
import java.nio.file.Paths
def cosineSimilarity(x: Array[Double], y: Array[Double]): Double = {
require(x.size == y.size)
dotProduct(x, y)/(magnitude(x)*magnitude(y))
}
def dotProduct(x: Array[Double], y: Array[Double]): Double = {
(for((a, b)<-x zip y) yield a*b).sum
}
def magnitude(x: Array[Double]): Double = {
math.sqrt(x.map(i => i*i).sum)
}
如何衡量相似度得分?
暂无答案!
目前还没有任何答案,快来回答吧!