단어 리스트 코사인 유사도 구하기

kinghong97·2022년 2월 3일
0

단어 하나의 벡터를 구한다
model.wv['단어']로 단어하나의 벡터 값을 구한다

단어 리스트 마다 벡터 평균을 구한다
def l2_norm(x):
return np.sqrt(np.sum(x**2))

def div_norm(x):
norm_value = l2_norm(x)
if norm_value > 0:
return x * ( 1.0 / norm_value)
else:
return x

one_two_avg = (div_norm(one) + div_norm(two)) / 2
로 단어 리스트의 벡터 평균을 구한다

df 마다 벡터값을 넣는다

비교한다

import numpy as np
from numpy import dot
from numpy.linalg import norm

def cos_sim(A, B):
return dot(A, B)/(norm(A)*norm(B))

doc1 = np.array([0,1,1,1])
doc2 = np.array([1,0,1,1])
doc3 = np.array([2,0,2,2])

print('문서 1과 문서2의 유사도 :',cos_sim(doc1, doc2))
print('문서 1과 문서3의 유사도 :',cos_sim(doc1, doc3))
print('문서 2와 문서3의 유사도 :',cos_sim(doc2, doc3))

코사인 유사도를 구한다

0개의 댓글