본문 바로가기
머신러닝/NLP

LM ( 언어모델 )

by su0a 2024. 5. 14.

LM

단어 시퀀스(문장)에 확률을 할당하는 모델

 

문장에 확률 할당이 필요한 경우

 

1. 기계 번역 (Machine Translation)

P(나는 버스를 탔다) > P(나는 버스를 태운다)

 

2. 오타 교정 (Spell Correction)

선생님이 교실로 부리나케

P(달려갔다) > P(잘려갔다)

 

3. 음성인식 (Speech Recognition)

P(나는 메롱을 먹는다) < P(나는 메론을 먹는다)

 

 

n-gram LM

한번의 n개의 단어를 묶어 생각하는 것

 

1. uni - gram

P("I was student") = P("I") x P("was") x P("student")

1. 각 단어가 나타날 확률은 단어 별 빈도수를 계산해서 전체 단어 수로 나누어준다.
2. 문장 전체의 확률은 간단하게 곱해준다.

*단어의 순서를 전혀 고려할 수 없음*

 

=> 순서를 고려해보자 !

 

2. bi - gram

P("I was student") = P("I" | <start>) x P("was" | "I") x P("student" | "was")

이전 단어가 주어졌을 때 다음 단어 Wn이 나올 확률을 계산

 

P( was | I ), P( student | I was )처럼 이전 단어로부터 다음 단어에 대한 확률을 계산하는 방법

학습 corpas에 'I was' 가 10번 등장했다고 가정할 때, I was 뒤에 student가 등장한 경우가 3번이면

P( student | I was ) = 30%

 

3. n - gram (n >=3)

W1,...,Wn-1 이 나왔을 때 그 다음 단어로 Wn 이 나올 확률을 계산

 

희소 문제

세상에는 만들 수 있는 문장의 경우의 수가 무한대이다. 

예를 들어, P("자연어 처리를 공부하며 커피도 먹고 빵도 먹고 과자도 먹고..") 

이런 문장을 만들었다고 가정했을 때 P( "커피도" | "자연어 처리를 공부하며" ) 의 확률을 계산해보자.

훈련한 corpus 내에 "커피도" 라는 단어가 없다면 위의 확률은 0이 되며 "자연어 처리를 공부하며" 라는 단어가 없었다면 위의 확률은 정의되지 않는다.

 

언어모델 평가 방법

PPL (perplexity) : 헷갈리는 정도를 의미

PPL 수치가 낮을수록 모델의 성능이 좋음

 

'머신러닝 > NLP' 카테고리의 다른 글

tf - idf vector  (0) 2024.05.14
단어의 표현 방법  (0) 2024.05.14
데이터 분리  (0) 2024.05.14
Keras(케라스)의 텍스트 전처리  (0) 2024.05.14
padding & one-hot-encoding  (0) 2024.05.14