以数学的方法描述语言规律:
假定S表示一个有意义的句子,由一连串特定顺序排列的词w1、w2......wn组成。那么句子S在文本中出现的概率是P(S)。
P(S)= P(w1,w2,......,wn)=P(w1)• P(w1| w2)• P(w3| w1,w2)...... P(wn| w1,w2,......,wn-1)
马尔可夫假设:假设任意一个词wi出现的概率只同他前面的词wi-1有关。
二元模型:P(S)= P(w1、w2......wn)=P(w1)• P(w1| w2)• P(w3| w2)...... P(wn| wn-1)
P(wi | wi-1)= P(wi,wi-1)/ P(wi-1)
f(wi , wi-1)=#(wi , wi-1)/ #,f(wi-1)=#(wi-1)/ #
其中f表示词或词组的相对频度,#表示语料库的大小,#(wi ,wi-1)表示wi , wi-1这对词在语料库中出现了多少次,#(wi-1)表示wi-1本身在语料库中出现了多少次。
根据大数定律,只要统计量足够,相对频度等于概率。
P(wi , wi-1)= f(wi , wi-1),P(wi-1)= f(wi-1)
因此, P(wi | wi-1)= f(wi , wi-1)/ f(wi-1)。
N-1阶马尔可夫假设:
假定文本中的每个词和前面的N-1个词有关,而与更前面的词无关
N元模型: P(wi,w2,...,wi-1)=P(wi-N+1,wi-N+2,...,wi-1)
当N=1时,为上下文无关模型。
当N=2时,为二元模型。
实际中应用最多的是N=3的三元模型,更高阶的时间复杂度高,但提升效果不够显著。
模型训练的问题:零概率问题。
古德——图灵估计:
对于没有看见的事件,我们不能认为它发生的概率为0,因此我们从概率的总量中,分配一个很小的比例给予那些没有看见的事件。至于小多少,要根据”越是不可信的统计折扣越多“的方法进行。
假定语料库中出现r次的词有Nr个,特别地,未出现词的数量为N0,语料库的大小为N
dr=(r+1)·Nr+1/Nr,N=∑dr·Nr
Zipf定律:一般来说,出现一次的词比出现两次的词多,出现两次的词比出现三次的词多。
卡茨退避法(Katz backoff):
对于频率超过一定阈值的词,它们的概率估计就是它们在语料库中的相对频度,对于频率小于这个阈值的词,它们的概率估计就小于他们的相对频度,出现次数越少,频率下调越多。对于未看见的词,也给予一个比较小的概率(即下调得到的频率总和),这样所有词的概率估计都平滑了。
本文涉及到的人物及其著作:
图灵、古德、卡茨、内伊