我正在尝试创建一个余弦相似度函数,然后在 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)
我已经测试过,我输入的两个数组的长度相同,但是当我的代码运行到这个位时,它崩溃了,我似乎找不到问题所在。
如有任何帮助,我们将不胜感激,谢谢。
我的功能和循环有问题,不知道为什么.
var a = ['1,0,1', '0,1,0', '1,1,1'];
var b = [1, 1, 1];
function myFunction() {
for (i = 0; i < a.length; i++) {
var user = a[i].split(',');
var cs = cosinesim(user, b);
document.getElementById("cs").innerHTML += String(user) + ' ' + String(cs) + '<br>';
cs = 0;
user = '';
}
}
function cosinesim(A, B) {
var dotproduct = 0;
var mA = 0;
var mB = 0;
for (i = 0; i < A.length; i++) {
dotproduct += (parseInt(A[i]) …Run Code Online (Sandbox Code Playgroud)