我们使用EuclideanDistanceSimilarity类通过Hadoop计算一组项目的相似度。不幸的是,尽管与项目高度相似,但某些项目得到的结果为零或很少。我想我已经追踪到EuclideanDistanceSimilarity类中的这一行:doubleeuclideanDistance=Math.sqrt(normA-2*dots+normB);传递给sqrt的值有时是负数,在这种情况下返回NaN。我想也许某处应该有一个Math.abs,但我的数学还不够强大,无法理解欧几里德计算是如何重新排列的,所以不确定会产生什么影响。谁能更好地解释数学并确认是否doubleeuclidea