Fut*_*ure 10 javascript trigonometry similarity
我正在尝试创建一个余弦相似度函数,然后在 HTML 元素中显示结果。我写了以下内容:
function cosinesim(A,B){
var dotproduct=0;
var mA=0;
var mB=0;
for(i = 0; i < A.length;){
dotproduct += (A[i] * B[i]);
mA += (A[i]*A[i]);
mB += (B[i]*B[i]);
}
mA = Math.sqrt(mA);
mB = Math.sqrt(mB);
var similarity = (dotproduct)/(mA)*(mB)
return similarity;
}
//.....
var array1 = [1,0,0,1];
var array2 = [1,0,0,0];
var p = cosinesim(array1,array2);
document.getElementById("sim").innerHTML = String(p);Run Code Online (Sandbox Code Playgroud)
我已经测试过,我输入的两个数组的长度相同,但是当我的代码运行到这个位时,它崩溃了,我似乎找不到问题所在。
如有任何帮助,我们将不胜感激,谢谢。
小智 11
function cosinesim(A, B) {
var dotproduct = 0;
var mA = 0;
var mB = 0;
for(var i = 0; i < A.length; i++) {
dotproduct += A[i] * B[i];
mA += A[i] * A[i];
mB += B[i] * B[i];
}
mA = Math.sqrt(mA);
mB = Math.sqrt(mB);
var similarity = dotproduct / (mA * mB);
return similarity;
}
var array1 = [1, 0, 0, 1];
var array2 = [1, 0, 0, 0];
var p = cosinesim(array1, array2);
console.log(p);
Run Code Online (Sandbox Code Playgroud)
这应该给出实际的余弦相似度。你失踪了:
var i中i++的and 。for(mA * mB)此行周围有额外的括号:var similarity = dotproduct / (mA * mB);如果没有它们,除法将在乘法之前完成。| 归档时间: |
|
| 查看次数: |
10456 次 |
| 最近记录: |