본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

AI/NLP

단어유사도 측정 방법 : 코사인 유사도 Cosine Similarity 벡터 간 방향이 얼마나 비슷한가


단어유사도 측정 방법  : 코사인 유사도 Cosine Similarity 벡터 간 방향이 얼마나 비슷한가

모든 벡터 기반 NLP에서 공통으로 쓰이는 표준 거리 함수

Word Embedding 계열(Word2Vec, GloVe, FastText), TF-IDF 문서 비교, BERT / GPT 임베딩등에 사용됨. 

K-means BERTTopic 등 클러스터링/토픽 모델링에 간접적으로 사용됨. 

from sklearn.metrics.pairwise import cosine_similarity

v1 = model.wv["밥"].reshape(1, -1)
v2 = model.wv["빵"].reshape(1, -1)

sim = cosine_similarity(v1, v2)
print(sim)

 

 

단어 벡터에 입력된 두 단어의 좌표간 각도를 이용해 유사도를 측정함. 수학적 기하학적 지표

각도가 0 에 가까워 동일한 방향을 가리키면 유사도가 높음 1

각도가 90도로 수직관계이면 서로 무관함. 0, 각도가 180도로 완전히 반대 방향이면 정반대의 의미임. -1

동의어, 반의어를 과학적으로 분류할 수 있음

 

단어가 단순히 가깝게 위치하는 것을 넘어 단어간의 의미적 관계를 수치로 정량화하여 정확한 관련성을 파악하고자한다.

유클리드 거리나 맨해튼 거리등을 사용하여 단어간의 거리를 측정하며 유사도가 0에 가까울 수록 관련성이 없어 0.7이상이면 높은 유사성을 가진 것으로 판단한다 .

https://standout.tistory.com/83

 

절대값과 유클리드 거리

절대값 수직선 위 점과 점 사이의 거리 사이의 거리를 나타내는 수식표현: | p - q | 유클리드 거리 점과 점 사이의 거리를 자로 잰 거리 사이의 거리를 나타내는 수식표현: || p - q || https://ko.wikipedi

standout.tistory.com

 

 

고객문의 텍스트를 벡터화해 카테고리와 코사인 유사도를 계산해 0.7이상일 경우 해당 담당자에게 자동으로 배정하는 등의 사례로 활용할 수 있음. 

"아이폰 - 스마트폰 + 태블릿 = 아이패드"와 같이 활용 할 수 있음.