밑바닥부터 시작하는 딥러닝 - 자연어(2)
벡터 간 유사도 이전 글에서 동시발생 행렬을 활용해 단어를 벡터로 표현하는 방법을 알아봤다. 이번 글에서는 벡터 간 유사도에 대해 알아볼 것이다. 벡터 사이의 유사도를 측정하는 방법은 다양하다. 대표적으로 벡터의 내적이나 유클리드 거리가 있다. 그 외에도 단어 벡터의 유사도를 나타낼 때는 코사인 유사도를 자주 사용한다. 위의 식에서 분자는 벡터의 내적, 분모에는 각 벡터의 노름(norm)이 사용된다. 노름이란 벡터의 크기를 나타낸 것으로, 여기에선 L2 노름을 계산한다. 위의 식의 핵심은 벡터를 정규화하고 내적을 구하는 것이다. def cos_similarity(x, y): nx = x / np.sqrt(np.sum(x**2)) # x의 정규화 ny = y / np.sqrt(np.sum(y**2)) # ..