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

来源:互联网 发布:freecad for mac 编辑:程序博客网 时间:2024/05/22 00:45
本周的内容主题是另一个计算语言学领域非常重要的基础概念: n元语法模型(n-gram, 也有翻译为文法模型的)
本部分也非常基础,但是确实统计自然语言处理这一方法论的核心与重中之重。
概念较多,有些容易混淆,但是多多接触之后自然会有更加深刻的理解。

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

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

显然 P(S1) > P(S2)

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



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

P(s)可有不同的形式,一般写成 其中每个Θ都是模型参数
链式法则:



要估计 pw iw1 w2 w i-1 ) ,需要考虑词串w1 w2 w i ) (w 1 w2 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) 的区别。

 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 元组 w1 ...w n 计算 :
     n C trw1 ...w nw1 ...w 在训练语料中出现的频率
     n C how1 ...w nw1 ...w 在留存数据中出现的频率

 :
w某个 n元组在训练语料中出现的频率
wN 在训练语料中出现了 r次的不同的 n 元组的个数 (type)
wT 所有在训练语料中出现了 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.



























0 0