단어들이나 문장들을 벡터로 표현이 가능할 경우 이 벡터간의 거리를 이용해서 유사성을 알 수 있으며 본 포스팅은 대표적으로 많이 활용하는 코사인 유사도를 설명하고 문장간의 유사도를 Python으로 구현해보도록 한다. 코사인 유사도는 벡터간의 코사인 각도를 이용하여 서로간에 얼마나 유사한지를 산정한다. 각도를 유사도로 판별하기 때문에 거리가 중요하지 않을 경우 사용되는 방식이라 할 수 있겠다. 예를 들어 다음과 같은 문장이 있다고 가정을 해보자 첫번째 문장 : 안녕하세요 저는 자비스 입니다. 두번째 문장 : 안녕하세요 저는 자비스 입니다. 안녕하세요 저는 자비스 입니다. 위 문장에서는 동일한 내용을 다루고 있다. 공백기준으로 벡터화를 한다면, 첫번째 문장은 [안녕하세요, 저는, 자비스, 입니다] 정도로 벡터..
유클리드 거리(Euclidean Distance)와 함께 어떠한 값들이 얼마나 유사한지 가장 많이 사용하는 알고리즘 중 하나로 코사인 유사도가 있다. 그리고 유클리드 거리를 변형하여 실제 도시들의 모양을 감안해서 구하는 맨하탄 거리(Manhattan Distance)와 같은 알고리즘도 꽤 많이 활용하고 있다. 서울시와 수원시의 거리가 얼마나 가까운가? 예를 들어 도시들간의 거리가 얼마나 가까운지를 구하기 위해서는 유클리드 거리와 같은 알고리즘을 많이 활용할 수 있다. 서울시의 위도와 경도값과 수원시의 위도와 경도 값을 기반으로 둘간의 선을 그은 후, 거리를 구한다면 도시간에 거리를 구할 수 있게 된다. 그러나 한번 이런 문제가 있다고 가정을 해보자. 포유류간 키와 몸무게를 기반으로 얼마나 유사한지를 측정..