cosine similarity 코드

syEON·2023년 10월 12일
0

코사인 유사도

  • 두 개의 벡터값에서 코사인 각도를 구하는 방법
  • -1~1 사이의 값을 가진다.

코드

from sklearn.feature_extraction.text import TfidfVectorizer  #한글 to vector
sentence=("오늘도 폭염이 어여졌는데요, 내일은 반가운 비 소식이 있습니다","오늘도 폭염이 어여졌는데요, 내일은 반가운 비 소식이 있습니다","폭염을 피해 놀러왔다가 갑작스런 비로 망연자실하고 있습니다")
vector = TfidfVectorizer(max_features=100)   #vector 100개 뽑기
tfidf_vector = vector.fit_transform(sentence)

print(vector.get_feature_names_out())
print(tfidf_vector.shape) #3개의 문장, 13개의 feacture로 선택된 단어
print(tfidf_vector[0])

from sklearn.metrics.pairwise import cosine_similarity
print(cosine_similarity(tfidf_vector[0], tfidf_vector[1]))  #코사인으로 유사도 비교
print(cosine_similarity(tfidf_vector[1], tfidf_vector[2]))

<결과>

['갑작스런' '내일은' '놀러왔다가' '망연자실하고' '반가운' '비로' '소식이' '어여졌는데요' '오늘도' '있습니다'
'폭염을' '폭염이' '피해']

(3, 13)

(0, 9) 0.3022161829694632
(0, 6) 0.38915836081458494
(0, 4) 0.38915836081458494
(0, 1) 0.38915836081458494
(0, 7) 0.38915836081458494
(0, 11) 0.38915836081458494
(0, 8) 0.38915836081458494

[[1.]]
[[0.07083962]]

0개의 댓글