gpt4 book ai didi

java - 在java中使用Jama进行LSA的问题

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:33 24 4
gpt4 key购买 nike

我正在使用 jama 包来查找 lsa 。我被告知要减少维度,因此在这种情况下我将其减少到 3,并重建了矩阵。但生成的矩阵与我提供给系统的矩阵非常不同

这是代码

    a = new Matrix(termdoc); // get the matrix here 
a = a.transpose() ; // since the matrix is in the form of doc * terms i transpose it
SingularValueDecomposition sv =new SingularValueDecomposition(a) ;
u = sv.getU();
v = sv.getV();
s = sv.getS();
uarray = u.getArray();
sarray = s.getArray();
varray = v.getArray();
sarray_mod = new double[3][3]; //reducing dimension
uarray_mod = new double[uarray.length][3];
varray_mod = new double[3][varray.length];
move(sarray,3,3,sarray_mod); // my method to move the contents
move(uarray,uarray.length,3,uarray_mod);
move(varray,3,varray.length,varray_mod);
e = new Matrix(uarray_mod);
f = new Matrix(sarray_mod);
g = new Matrix(varray_mod);
Matrix temp =e.times(f);
result = temp.times(g);
result = result.transpose();
results = result.getArray() ;
System.out.println(" The array after svd : \n");
print(results);// my method to print the array

private static void move(double[][] sarray2, int r, int c,
double[][] sarrayMod) {
// TODO Auto-generated method stub
for(int i=0;i<r;i++)
for(int t=0;t<c;t++)
sarrayMod[i][t]=sarray2[i][t];

}

仅包含 3 个文件的示例输出,其中两个文件相似

0.25 0 0 0 0 0 0 0 0.25 0 0.25 0.25 0 

0 0.083 0.083 0.083 0.083 0.083 0.083 0.083 0 0.083 0.083 0.167 0.083

0.25 0 0 0 0 0 0 0 0.25 0 0.25 0.25 0

svd 之后的数组:

0.225 0.029 0.029 0.029 0.029 0.029 0.029 0.029 0.225 0.029 0.253 0.282 0.029 

-0.121 0.077 0.077 0.077 0.077 0.077 0.077 0.077 -0.121 0.077 -0.044 0.033 0.077

0.245 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.245 0.012 0.257 0.269 0.012

最佳答案

查看示例 Here

在示例中,我们从 U,S 和 V 中获取前 2 列。然后我们将它们相乘。它不会给你相同的矩阵,但会提高相似度的性能。

如果你看过这个例子,你会发现用户和人类之间的相似度在 -ve 中。但在我们执行 SVD 后,相似度增加到接近 1 的 +ve 值。

我认为你的移动方式是正确的。只需浏览一次示例即可。

关于java - 在java中使用Jama进行LSA的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9060168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com