난 사전 같이 가지고값을 사용하여 코사인 유사성을 계산하기 위해 사전 키를 반복하는 방법은 무엇입니까?
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}}
3 개의 결과를 같은 사전 또는 다른 사전에 저장 하시겠습니까? 또한,리스트 [0.4321, 0.218]의 순서가 중요합니까 ([0.218, 0.4321]'일 수 있습니까)? –
계산이 확실합니까? 주어진 벡터의 코사인 시뮬레이션은 '0.14'이어야합니다. – axiom
@ajcr : 세 가지 결과를 같은 사전에 저장하고 순서는 중요하지 않습니다. –