计算语言学课程笔记(三)

本周的内容主题是另一个计算语言学领域非常重要的基础概念: n元语法模型(n-gram, 也有翻译为文法模型的)
本部分也非常基础,但是确实统计自然语言处理这一方法论的核心与重中之重。
概念较多,有些容易混淆,但是多多接触之后自然会有更加深刻的理解。

在n元语法模型学习完之后还讲解了对应的数据平滑技术,里面涉及到了一些简单的公式推导
-------------------------------------------------------------------------------------------------------------------
# 语言建模(Language Modeling)
     给定自然语言L,对于服从某个未知概率分布的语言L,根据给定的语言样本估计P的过程被称为语言建模

因为从统计角度看,自然语言中的任何句子都可以由任何词串组成。不过所组成的句子概率大小有区别:
S 1: 我刚吃过晚饭
S 2: 刚我过晚饭吃

显然 P(S 1) > P(S 2)

根据语言样本估计出的概率分布  P  就称为语言  L 的语言模 型。



应用:语音识别,OCR,手写体识别,机器翻译,信息检索,切分歧义消解等。

P(s)可有不同的形式,一般写成  其中每个Θ都是模型参数
链式法则:
计算语言学课程笔记(三)_第1张图片


要估计  pw  i w 1  w 2  w  i-1  )  ,需要考虑词串 w 1  w 2  w  i  )   (w  1  w 2  w  i-1  )  的出现频次。 若不限制词串的长度,参数估计存在困难 为了便于估计参数,限定只考虑  n  个词组成的 词串  (w  i-n+1  w  ,该词串被称作  n  元组。基于   元组统计得到的语言模型,称为  n  元语言模型。

n 元模型是一种近似模型, n 的选择需要平衡模型的准确性和可计算性。也即可以通过词频来估计概率

# n元语言模型
 unigram (n=1) p(wi) 若语言中有20000个词,则需要估计20000个参数
 bigram (n=2) p(wi|wi-1) 若语言中有20000个词,则需要估计200002个参数
 trigram (n=3) p(wi|wi-2wi-1) 若语言中有20000个词,则需要估计200003个参数
 four-gram(n=4) (有时也称为digram或quadrigram)

在谷歌的机器翻译系统中使用了n=7
较大时
     n 提供了更多的语境信息,语境更具区别性
     n 但是,参数个数多、计算代价大、训练语料 需要多、参数估计不可靠。
较小时
     n 语境信息少,不具区别性
     n 但是,参数个数少、计算代价小、训练语料 无需太多、参数估计可靠。

# 最大似然估计
选择一组参数,使得训练样本的概率最大。
选择能使训练样本取得最大概率值的分布作为总体分布。
令  c(w  1  ,..,w  n 表示  n-gram w  1  ,..,w   在训练语料中出 现的次数。则:
                                        

# 数据稀疏问题  (Data Sparsness)
考虑计算句子  CHER READ A BOOK  的概率。
     cCHER READ)=0
 à  p(READ |CHER)   0
 à  p(CHER READ A BOOK )=0 ( 有问题  )
MLE  给训练样本中未观察到的事件赋以  0  概率。 若某  n-gram  在训练语料中没有出现  ,  则该  n-gram 的概率必 定是  0  。
由于训练样本不足而导致所估计的分布不可靠的问题,称 为数据稀疏问题。
解决的办法是扩大训练语料的规模。但是无论怎样扩大训 练语料,都不可能保证所有的词在训练语料中均出现。

Balh  等人的工作
     n  150  万词的训练语料训练  trigram  模型
     n  测试语料(同样来源)中  23%  的 trigram  没有在训练语料中出 现过 对语言而言,由于数据稀疏的存在,  MLE  不是一种很 好的参数估计办法
解决办法  平滑技术
     n  把在训练样本中出现过的事件的概率适当减小
     n  把减小得到的概率密度分配给训练语料中没有出现过的事件
     n  这个过程有时也称为  discounting( 减值  )

Zipf 定律
在 NLP中,数据稀疏问题永远存在,不太可能有一个足够 大的训练语料,因为语言中的大部分词都属于低频词。

Zipf 定律描述了词频以及词在词频表中的位置间的关系。

针对某个语料库,若某个词 w 的词频是 f,并且该词在词频
表中的序号为 r( 即 w是所统计的语料中第 r 常用词) ,则 ×  (   k 是一个常数   )

若 w i在词频表中排名 50 , wj 在词频表中排名 150,则 w i的出
现频率大约是 w j的频率的 3 倍。

例:马克吐温的小说 Tom Sawyer
     n 共 71,370 词 (word tokens)
     n 出现了 8,018 个不同的词 (word types)
注意词型 (word type) 和词例(word token) 的区别。
计算语言学课程笔记(三)_第2张图片
 Zipf 定律可以看出
     n  语言中只有很少的常用词
     n  语言中大部分词都是低频词  (  不常用的词  )
Zipf  的解释是  Principle of Least effort ,是说话人和听话 人都想省力的结果
     n  说话人只想使用少量的常用词进行交流
     n  听话人只想使用没有歧义的词  (  量大低频 )  进行交流
Zipf  定律告诉我们
     n  对于语言中的大多数词,它们在语料中的出现是稀疏的
     n  只有少量常用词,语料库可以提供它们规律的可靠样本


# 平滑技术
Add-one    Add-delta  平滑
规定任何一个  n  元组在训练语料中至少出现 一次  (  即规定没有出现过的  n 元组在训练语料 中出现了一次  )
     new_countn-gram) = old_count (n-gram) + 1

留存平滑
留存数据  (Held-out data)
     n  把训练语料分作两个部分  :
          w  训练语料  (training set):  用于初始的频率估计
          w  留存语料  (held out data):  用于改善最初的频率估计
对于每一个  n  元组  w 1  ...w  n  计算  :
     n  C  tr w 1  ...w  n w 1  ...w  在训练语料中出现的频率
     n  C  ho w 1  ...w  n w 1  ...w  在留存数据中出现的频率

 :
w 某个  n 元组在训练语料中出现的频率
w N   在训练语料中出现了  r 次的不同的  n  元组的个数  (type)
w T   所有在训练语料中出现了  r  次的  n 元组在留存语料中出现 的频率之和
       
w 留存语料中所有的  n 元组个数  (token)
               
Good-Turing 平滑
     利用高频率  n  元组的频率调整低频的  n 元组的 频率。

组合估计
依据
     n  unigram model  数据稀疏问题比  bigram model 
     n  bigram model  数据稀疏问题比  trigram model 
     n 
     高阶  n  元组的概率估计可以参考低阶  n  元组的概率 估计值
     因此可以把不同阶别的  n  元组模型组合起来产生一 个更好的模型。

插值模型
Jelinek-Mercer 平滑
主要参考【1】

回退模型
Katz 平滑
主要参考【2】

回退模型和插值模型的区别

在回退模型和线形插值模型中,当高阶  元组未出现时,使用低阶  n  元组估算高阶  n  元组的概率分布。

在回退模型中,高阶  n  元组一旦出现,就 不再使用低阶  n  元组进行估计。

在线形插值模型中,无论高阶  n  元组是否 出现,低阶  n  元组都会被用来估计高阶  n 元组的概率分布。

Reference
【1】  Frederick Jelinek and Robert L. Mercer.1980. Interpolated estimation of Markov source parameters from sparse data. In Proceedings of the Workshop on Pattern Recognition in Practice, Amsterdam, The Netherlands: North-Holland, May.
【2】  Slava M. Katz. 1987. Estimation of probabilities from sparse data for  the language model component of a speech recognizer. IEEE Transactions  on Acoustics, Speech and Signal Processing, ASSP-35(3):400-401, March.



























你可能感兴趣的:(自然语言处理,计算语言学)