我有一本这样的字典:
dict = {in : [0.01, -0.07, 0.09, -0.02], and : [0.2, 0.3, 0.5, 0.6], to : [0.87, 0.98, 0.54, 0.4]}
我想计算每个单词之间的余弦相似度,我为此编写了一个带有两个向量的函数。首先,它将为 'in' 和 'and' 取值,然后它应该为 'in' 和 'to' 取值等等。
我希望它将结果存储在另一个字典中,其中“in”应该是键,值应该是计算余弦相似度后返回的值。同样,我也想要字典。
这是我计算余弦相似度的函数:
import math
def cosine_similarity(vec1,vec2):
sum11, sum12, sum22 = 0, 0, 0
for i in range(len(vec1)):
x = vec1[i]; y = vec2[i]
sum11 += x*x
sum22 += y*y
sum12 += x*y
return sum12/math.sqrt(sum11*sum22)
vec1 和 vec2 可以是两个列表,例如:[0.01, -0.07, 0.09, -0.02]
和[0.2, 0.3, 0.5, 0.6]
,它返回的结果如下:0.14
如何以这种方式为每个键计算它并以这种方式将结果存储在字典中?:
{in : {and : 0.4321, to : 0.218}, and : {in : 0.1245, to : 0.9876}, to : { in : 0.8764, and : 0.123}}