使用scala计算精液相似性分数

slsn1g29  于 2021-07-13  发布在  Spark
关注(0)|答案(0)|浏览(273)

我有两个包含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)
}

如何衡量相似度得分?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题