think deeply

[자연어처리] N-gram 본문

rainbow/자연어처리

[자연어처리] N-gram

윌_ 2022. 7. 21. 16:02

 

N-gram

- 가지고 있는 코퍼스에서 n개의 단어 뭉치 단위로 끊어서 이를 하나의 토큰으로 간주

- n-gram에서 n의 의미: n개의 연속적인 단어 나열

- 언어 모델을 설계할 때 활용되는 개념

 

예시

- 문장 An adorable little boy is spreading smiles이 있을 때, 각 n에 대해서 n-gram을 전부 구해보면 다음과 같다

 

unigrams : An, adorable, little, boy, is, spreading, smiles

bigram : An adorable, adorable little, little boy, boy is, is spreading, spreading smiles

trigram : An adorable little, adorable little boy, little boy is, boy is spreading, is spreading smiles

4-gram : An adorable little boy,adorable little boy is, little boy is spreading, boy is spreading smiles

 


 

 n-gram을 통한 언어 모델에서는 다음에 나올 예측은 오직 n-1개의 단어에만 의존

- 'An adorable little boy is spreading' 다음에 나올 단어를 예측하고 싶다고 할 때, 4-gram을 이용한 언어 모델을 사용한다면 spreading 다음에 올 단어를 예측하는 것은 n-1에 해당되는 3개의 단어만을 고려하게 된다.

 

 

 

※ 수식 w : 보통 자연어처리에서는 word, window를 의미, 앞에 살펴보고자 하는 단어의 수

 

예시

IF 가지고 잇는 코퍼스에서 boy is spreading이 1000번 등장,

boy is spreading insults가 500번 등장,

boy is spreading smiles가 200번 등장한다면

boy is spreading 다음에 insults가 등장할 확률은 50%이며,

smiles가 등장할 확률은 20%가 된다.

 

그렇게 되면 확률적 선택에 따라 insults가 더 맞다고 판단하게 되는 것이다.

이와 같이 학습 말뭉치(코퍼스)내에서 수정 방향이 옳을 확률이 높은 후보들 중 확률이 가장 높은 후보로 교정을 수행하게 된다

 

Comments