pbj0812의 코딩 일기

[수학] python을 이용한 코사인 유사도 구현 본문

Science/수학

[수학] python을 이용한 코사인 유사도 구현

pbj0812 2020. 11. 17. 00:28

0. 목표

 - python을 통한 코사인 유사도 구현

1. 실습

 1) library 호출

from numpy import dot
import numpy as np

 2) 데이터 생성

data1 = np.array([1, 1])
data2 = np.array([-1, -1])
data3 = np.array([1, -1])

 3) L2 계산 모듈 구현

# inp 은 array 형태
def L2(inp):
    result = 0
    for i in inp:
        result += i ** 2
    return np.sqrt(result)

 4) 코사인 유사도 계산 모듈 구현

def cos_sim(inp1, inp2):
    return dot(inp1, inp2)/(L2(inp1) * L2(inp2))

2. 테스트

 1) 코사인 유사도 1

cos_sim(data1, data1)

  - 결과 : 0.9999999999999998

 2) 코사인 유사도 0

cos_sim(data1, data3)

  - 결과 : 0.0

 3) 코사인 유사도 -1

cos_sim(data1, data2)

  - 결과 : -0.9999999999999998

2. 참고

 - 1) 코사인 유사도(Cosine Similarity)

Comments