통계적 추정기법
https://medium.com/@canadaduane/understanding-arpa-and-language-models-115d6cbc3893
https://heiwais25.github.io/nlp/2019/10/06/Language-model-2/
0의 값을 가지는 counting에 대해 작은 값으로 flooring 하는 과정에서 sum-to-one 제한을 만족하지 않게 됨
제한을 만족시키기 위해, 관측된 사건의 수를 discount하여 비관측 사건에 할당. 따라서 언어모델 생성확률은 d(r)을 곱해줌으로 수정됨. 여기서 d(r)을 discount coefficient라 한다.
laplace smoothing(add-one smoothing) // add-k smoothing // good turing smoothing
일반적으로 비관측 이벤트가 관측 가능한 이벤트보다 많음 smoothing은 기본적으로 seen ngram을 깎아먹는 방법이기 때문에 unseen ngram이 너무 많아지면 성능이 떨어진다.
nr이 r번 관측된 이벤트의 개수일 때,
기존의 방식이 count = r이라면, countGT = (r+1) x nr+1 / nr로 바꾸어준다.
확률은 항상 n 개수에 따른 조건부니까 P(wi | wi-1)을 구하면 된다.