我试着用dimsum计算余弦相似度,我的数据是电影的类型,我选择喜剧作为例子来获得类型中的相关词。
输出像
funny 0.654
classic 0.321
humor 0.432
fantastic 0.345
我想测量不同值的阈值
val exact = mat.columnSimilarities()
val filename=args(0)
val threshold=args(1).toDouble
// Compute similar columns with estimation using DIMSUM
val approx = mat.columnSimilarities(threshold)
val exactEntries = exact.entries.map { case MatrixEntry(i, j, u) => ((i, j), u) }
val approxEntries = approx.entries.map { case MatrixEntry(i, j, v) => ((i, j), v) }
val MAE = exactEntries.leftOuterJoin(approxEntries).values.map {
case (u, Some(v)) =>
math.abs(u - v)
case (u, None) =>
math.abs(u)
}.mean()
println(s"Average absolute error: $MAE")
但是这个错误出现了
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
暂无答案!
目前还没有任何答案,快来回答吧!