본문 바로가기
머신러닝

[머신러닝] 자연어 처리 유사도 분석

by whdgus928 2023. 2. 13.

문장 유사도 분석: 단어와 단어 사이, 문장과 문장 사이에 얼마나 유사성이 있는지

 

벡터 유사도: Cosin Metric

※ 벡터: 크기와 방향이 있는 성분

벡터의 내적과 norm

[1,1,0]

[1,0,-1]
내적: 1*1 + 1*0 + 0*(-1) = 1

norm(제곱해서 합): root(1+1+0), root2

둘의 유사도 : 1=root2 * root2 * cos, cos=0.5

 

Python np linalg norm 함수 있다

 

예제

1. I love apple

2. Apple is delicious which I love too

3. I want a delicious food, but not an apple

4. Deep learning is difficult

 

want, not, difficult 제외하고 단어 빈도수 체크한다

 

    love apple delicious love food Deep learning

1.   1      1            0         0      0            0      

2.   1      1            1         0      0            0      

3.   0      1            1         0      1            0      

4.   0      0            0         0      0            1      

 

norm값 root2, roo3, roo3,1

 

1번과 2번   1등

cos=2/root6

2번과 4번   3등

cos=0/root3

1번과 3번   2등

cos=1/root6

 

벡터 유사도: Euclidean Metric

 

 

Levenshtein Distance: 단어 사이의 거리를 나타내는 대표적인 척도

 - 단어 a를 단어 b로 수정하기 위한 최소 횟수

 - 삽입 1, 삭제 2, 변경 3

 

Jaccard Distance: 교집합/합집합

 - 집합 사이의 원소특징을 파악한다

A={0,1,2,3} B={2,3,4,5} C={6,7,8,9}

A ∩ B={2,3}

A U B={0,1,2,3,4,5}

Jaccard =1/3

 

자료출처

https://www.youtube.com/watch?v=9ea7Ja52ezQ 

반응형

댓글