我的目标是对f列表中的每个值计算余弦相似度(
有什么想法吗?非常感谢您的提前帮助。
f=[[3492.6], [13756.2], [22442.1], [22361.9], [26896.4]]
),通过从列表中取一个值并计算其余下值与它的余弦距离有多接近来计算。因此,结果应该是五个不同的相似度分数。然而,出于某种原因,即使在其他数据集上测试代码,我仍然得到1.0作为余弦相似度。显然,[22361.9]
与[22442.1]
比[13756.2]
更相似(就距离而言)。请参见下面的代码;import numpy.linalg as LA
import numpy as np
import sys
f=[[3492.6], [13756.2], [22442.1], [22361.9], [26896.4]]
cx = lambda a, b : round(np.inner(a, b)/(LA.norm(a)*LA.norm(b)), 2)
for c in f:
for i in f:
cosine=cx(c, i)
print cosine
有什么想法吗?非常感谢您的提前帮助。