목록DL/NLP (28)
rueki

본문은 https://wikidocs.net/21681 을 참고해서 작성한 글입니다. 앞에서 보았던 언어모델에서 다음으로 오는 단어를 예측하는 확률을 구할 때, 조건부 확률이 많이 나왔다. 그래서 조건부 확률을 이해해보자. A = 학생이 남학생인 사건 B = 학생이 여학생인 사건 C = 학생이 중학생인 사건 D = 학생이 고등학생인 사건 1. 학생을 뽑았을 때 남학생일 확률 P(A) = 180/360 = 0.5 2. 학생을 뽑았을 때 고등학생이면서 남학생일 확률 P(A n D) 80/360 3. 고등학생 중 한명을 뽑았을 때 남학생일 확률 P(A|D) = 80/200 = P(AnD) / P(D) = (80/360) / (200/360) = 0.4
한국어는 다른 언어보다 다음 언어를 예측하기가 힘들다. 언어 모델에서는 토큰화가 필수적인데, 한국어는 토큰화부터 까다로운 사항이 많기때문이다. 영어는 문장의 구조가 확실해서 어순이 중요하지만, 한국어는 어순이 중요하지가 않다. ① 나는 운동을 합니다 체육관에서. ② 나는 체육관에서 운동을 합니다. ③ 체육관에서 운동을 합니다. ④ 나는 운동을 체육관에서 합니다. 위의 예시를 보면 주어를 생략하든, 문장 순서를 바꾸든 ,의미가 전부 통한다. 그래서 확률에 기반한 언어모델이 제대로 예측하기는 힘들 것이다. 그리고 한국어는 교착어이다. 띄어쓰기 단위로 토큰화를 할 경우에, 발생가능한 단어의 수가 몇 배로 늘어나게 되는데 조사때문이다. 그 -> 그는, 그를, 그가, 그의... '그'라는 하나의 단어가 다양한 단..

N-gram 언어 모델은 카운트에 기반한 SLM의 일종이다. 그러나 차이점은 일부 단어만 고려하는 접근 방법으로써, 일부 단어를 몇 개 보느냐를 결정해야 한다. 이에 대한 변수를 n이라고 일컫는다. SLM에서 훈련 코퍼스에 확률을 계산하고 싶은 문장이나 단어가 없을 수 있다. 그래서 확률을 계산하고 싶은 문장이 길어질수록 갖고있는 코퍼스에서 그 문장이 존재하지 않을 수 있다. 마르코프의 가정을 사용해서 카운트를 해보자 P(is|An adorable little boy)≈ P(is|little boy) is라는 단어가 An adorable little boy 다음에 나올 확률을 임의로 little boy 뒤에 나오게, 즉, 앞 단어 중 전체가 아니라 임의의 개수만 포함해서 Count를 해보자는 것이다. 그..

앞의 글에서 언급했듯이 조건부 확률은 다음 언어의 예측에 있어서 중요하다. p(B|A)=P(A,B)/P(A) P(A,B)=P(A)P(B|A) P(A,B,C,D)=P(A)P(B|A)P(C|A,B)P(D|A,B,C) -> 연쇄 법칙 => P(x1,x2,x3...xn)=P(x1)P(x2|x1)P(x3|x1,x2)...P(xn|x1...xn−1) 쉽게 말하자면 x1과 x2가 있는데 그 다음 단어 x3의 확률을 알려면 x1과 x2가 조건으로 일어났을 때 x3의 조건부 확률을 구하면 되는 것이다. 전체 문장의 확률은 각 단어들이 이전 단어가 주어졌을 때 다음 단어로 등장할 확률의 곱으로 구성된다. An adorable little boy is spreading smiles 라는 문장이 있을 때, 쉽게 말해서, 전체..