我有一個字典是這樣的:如何迭代字典鍵以使用值計算餘弦相似度?
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