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 |