我有一个字典是这样的:如何迭代字典键以使用值计算余弦相似度?
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)
VEC 1及VEC 2可以是两个列表,如:[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}}
是否要将三个结果存储在同一个字典或不同的字典中?另外,列表的顺序是不是[[0.4321,0.218]](可以是[0.218,0.4321]')? – 2014-11-04 17:57:10
你确定你的计算? 给定矢量的余弦模拟应该是'0.14'。 – axiom 2014-11-04 17:58:23
@ajcr:我想将三个结果存储到同一个字典中,顺序无关紧要。 – 2014-11-04 18:02:00