쫑알bot 2025. 7. 27. 15:56
728x90

문자열에 대해 N개의 토큰으로 나누어 처리하는 것이다.

 

 

문자열에 대해 단어로 나눈다면 저렇게 3개가 나누어지고

[ 1-gram ] 방식으로는 f,i,n,e,... 이렇게 한 글자씩 나누어서 레벨을 나눌 수 있다.

 

2-gram 방식

len(sentence) - 2 만큼 i를 돌리면서

[ i : i+2 ] 를 토큰으로 갖는 것이다.

 

 

📌N-gram의 특징

 

 

1) Bag of Word의 한계인 '단어 순서 무시' 를 해결할 수 있다

 

Bag of word에서는 Machine learning이라는 단어를 알 수도 없고, 

not이 fun에 가는지, boring에 가는지 알 수 없다.

 

하지만 Bi-gram에서는 그런 한계를 해결할 수 있다.

 

 

 

2) 다음 단어 예측이 가능

위와 같이 how are 만 쳤을 때, 그 뒤에 어떤 단어가 올 지 예측할 수도 있으며

 

 

스펠링을 중간까지만 쳤을 때도, 그 이후에 어떤 단어가 올자 알 수 있다.

 

 

 

3) 오타 찾기

 

'qw' 는 데이터에 있지 않다.

'wa' 도 없기 때문에 그 칸에 대신 들어갈만한 것들을 데이터에서 찾은 뒤에 교체할 수도 있다.

 


(출처) 유튜브 허민석 - 딥러닝 자연어처리