以下是我正在为推荐人工作的代码段。尽管
import breeze.linalg.Vector
已经完成,上面提到的错误在调用'norm'时出现。有人可以建议解决这个问题和原因。代码段如下。
object CosineDistance extends DistanceMetric with Serializable {
def getDistance(v1: Vector[Double], v2: Vector[Double]) = {
val dotProduct: Double = v1 dot v2
val v1norm: Double = v1.norm(2.0)
val v2norm: Double = v2.norm(2.0)
1 - (dotProduct / (v1norm * v2norm))
}
override def getName: String = "cosine"
override def getDescription: String = "Cosine distance"
}
答案 0 :(得分:2)
对于norm,似乎implicits
没有Vector
,您应该像以下一样使用它:
import breeze.linalg._
val v1norm: Double = norm(v1, 2.0)