본문 바로가기
딥러닝 with Python

[개념 정리] N-gram이란? N-gram 언어 모델이란?

by CodeCrafter 2024. 7. 27.
반응형

 

1. N-gram 언어모델 이란?

- N-gram 언어모델은 자연어 처리에서 많이 사용되는 확률 기반 언어 모델을 말합니다.

 * 언어모델(Language Model, LM)이란, 언어를 이루는 구성 요소(글자, 형태소, 단어, 단어열(문장), 문단 등)에 확률값을 부여하여 이를 바탕으로 다음 구성 요소를 예측하거나 생성하는 모델을 말함

 * 이 언어모델은 크게 a) 확률에 기초한 통계적 언어모델(Statistical Language Model / SLM)과 인공 신경망에 기초한 딥러닝 언어 모델(Deep Neural Network Language Model / DNN LM)으로 나뉩니다. 오늘 알아볼 N-gram은 통계적 언어모델, 즉 SLM의 하나 입니다

 

- N-gram은 주어진 텍스트에서 단어의 나열을 분석하여 다음에 올 단어를 예측하는 것을 말합니다.

 

 

 

다음은 n-gram 모델의 주요 특징에 대한 설명입니다.

 

 

- N-gram에서의 n은 n개의 단어 연쇄를 의미하며, n의 값에 따라 단어의 조합을 분석하게 됩니다.

 * 예를 들어, 1-gram 모델은 각 단어가 독립적으로 발생할 확률을 계산하고, 2-gram 모델은 두 단어씩 짝을 지어 그 연쇄의 확률을 계산합니다. 

 * 추가 예시 : I am a student 라는 문장에서 2-gram은 "I am", "am a", "a student"가 됩니다.

 

- N-gram 모델은 주어진 단어 시퀀스에 다음 단어가 나올 확률을 계산하게 됩니다. 예를 들어 위의 예시를 보면 "I am" 다음에 "a" 가 나올 확률을 계산하는 것입니다.

 

- Markov 가정 : n-gram 모델은 현재 단어가 이전 n-1개의 단어에만 의존하다고 가정합니다. 즉, 3-gram 모델에서는 현재 단어가 이전 두 단어에만 영향을 받는다고 가정을 하는 것입니다.

 

- 학습 데이터 : n-gram 모델은 대량의 텍스트 데이터를 통해 학습됩니다. 학습 데이터에서 각 n-gram의 빈도를 계산하여 확률을 추정하는 방식입니다.

 

- 언어 생성 : 학습된 n-gram 모델을 사용하여 새로운 텍스트를 생성할 수 있습니다. 시작 단어를 주고, 그 다음 단어를 예측하는 과정을 반복하여 문장을 만듭니다.

 

반응형

 

- 즉, n-gram 모델에서는 조건부 확률과 연쇄법칙(Chain Rule)을 주로 활용하게 됩니다.

 

* 조건부 확률은 주어진 이전 단어들이 있을 때 다음 단어가 나올 확률을 말합니다.

* 연쇄 법칙은 전체 시퀀스의 확률을 각 단어의 조건부 확률의 곱으로 표현할 수 있다는 원칙을 의미하며, 다음과 같이 계산됩니다.

 

* 이를 n-gram 모델에서 적용해본다면, 앞서 말씀드린 Markov 가정에 따라 각 단어가 오직 이전 n-1개의 단어에만 의존한다기에 n-gram 모델에서의 조건부 확률은 아래와 같습니다.

 

*예를 들어, 2-gram(bigram) 모델에서는 다음과 같이 계산합니다.

 

*따라서, 연속적인 단어의 시퀀스 W1, W2, W3, ......, Wn의 확률은 다음과 같이 계산할 수 있습니다.

 

 

* 예시를 통해서 알아보면, "나는 학교에 간다" 라는 문장이 있다고 가정해보겠습니다. 3-gram 모델을 사용해 이 문장의 확률을 계산해보면

 1) P(나는)

 2) P(학교에 l 나는)

 3) P(간다 l 학교에 l 나는)  

 과 같습니다.

 따라서 이 문장의 전체 확률은 다음과 같이 계산됩니다.

  P(나는 학교에 간다)   P(나는) × P(학교에 l 나는)  × P(간다 l 학교에 l 나는)  

 

 

반응형

댓글