《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第五章 n-gram语言模型
視頻列表:
31 n-gram語言模型(一)
32 n-gram語言模型(二)
33 n-gram語言模型(三)
34 n-gram語言模型(四)
35 n-gram語言模型(五)
36 n-gram語言模型(六)
37 n-gram語言模型(七)
31 n-gram語言模型(一)
第五章 n-gram語言模型
噪聲信道模型
I=argmaxIP(I∣O))=argmaxIP(O∣I)P(I)P(O))=argmaxIP(O∣I)P(I)I=\underset{I}{argmax}P(I|O))=\underset{I}{argmax}\frac{P(O|I)P(I)}{P(O)})=\underset{I}{argmax}P(O|I)P(I)I=Iargmax?P(I∣O))=Iargmax?P(O)P(O∣I)P(I)?)=Iargmax?P(O∣I)P(I)
目標:通過有噪聲的輸出信號試圖恢復輸入信號
噪聲信道模型的應用
噪聲信道模型是一種普適性的模型,通過修改噪聲信道的定義,可以將如下應用納入到這一模型的框架之中
語音識別
一個聲學信號對應于一個語句,一個語音識別器需找到其對應的可能性最大的語言文本
T=argmaxTP(T∣A))T=\underset{T}{argmax}P(T|A))T=Targmax?P(T∣A))
根據(jù)貝葉斯公式 :
T=argmaxTP(A∣T)P(T)P(A))=argmaxIP(A∣T)P(T)T=\underset{T}{argmax}\frac{P(A|T)P(T)}{P(A)})=\underset{I}{argmax}P(A|T)P(T)T=Targmax?P(A)P(A∣T)P(T)?)=Iargmax?P(A∣T)P(T)
信息源對應于以概率 P(T)P(T)P(T)生成語句文本,噪聲信道對應于以概率分布 P(A∣T)P(A|T)P(A∣T)將語句文本轉換成聲音信號。語音識別的目的就是由通過噪聲信道而輸出的聲音信號恢復其原始的語句文本。
其他應用
信源以概率 P(T)P(T)P(T)生成語句文本,信道為P(O∣T)P(O|T)P(O∣T),語音/圖像/翻譯文本/字音轉換模型
- 手寫體漢字識別
文本-〉書寫(或者打印、掃描)-〉圖像 - 文本校錯
文本-〉輸入編輯-〉帶有錯誤的文本 - 機器翻譯
目標語言的文本-〉翻譯-〉源語言文本 - 音字轉換
文本-〉字音轉換-〉漢字(拼音)編碼 - 詞性標注
詞性標注序列-〉詞性詞串轉換-〉詞串
香農(nóng)游戲1
給定前n-1個詞(或者字母),預測下一個詞(字母)
32 n-gram語言模型(二)
語言模型
- P(T)P(T)P(T)語言模型,如何計算P(T)?
根據(jù)鏈規(guī)則:
P(T)=P(S)=P(w1w2...w3)=P(w1)P(w2∣w1)P(w3∣w1w2)...P(wn∣w1w2...wn?1)P(T)=P(S)=P(w_{1}w_{2}...w_{3})=P(w_{1})P(w_{2}|w_{1})P(w_{3}|w_{1}w_{2})...P(w_{n}|w_{1}w_{2}...w_{n-1})P(T)=P(S)=P(w1?w2?...w3?)=P(w1?)P(w2?∣w1?)P(w3?∣w1?w2?)...P(wn?∣w1?w2?...wn?1?)
問題:
1、參數(shù)空間過大,無法實用!
2、數(shù)據(jù)稀疏問題
馬爾科夫假設
P(T)=P(S)=P(w1w2...w3)=P(w1)P(w2∣w1)P(w3∣w1w2)...P(wn∣w1w2...wn?1)P(T)=P(S)=P(w_{1}w_{2}...w_{3})=P(w_{1})P(w_{2}|w_{1})P(w_{3}|w_{1}w_{2})...P(w_{n}|w_{1}w_{2}...w_{n-1})P(T)=P(S)=P(w1?w2?...w3?)=P(w1?)P(w2?∣w1?)P(w3?∣w1?w2?)...P(wn?∣w1?w2?...wn?1?)
- biigram
假設下一個詞的出現(xiàn)依賴于它前面的一個詞
≈P(w1)P(w2∣w1)P(w3∣w2)...P(wn∣wn?1)\approx P(w_{1})P(w_{2}|w_{1})P(w_{3}|w_{2})...P(w_{n}|w_{n-1})≈P(w1?)P(w2?∣w1?)P(w3?∣w2?)...P(wn?∣wn?1?) - trigram
假設下一下一個詞的出現(xiàn)依賴于它前面的兩個詞
≈P(w1)P(w2∣w1)P(w3∣w1w2)...P(wn∣wn?2wn?1)\approx P(w_{1})P(w_{2}|w_{1})P(w_{3}|w_{1}w_{2})...P(w_{n}|w_{n-2}w_{n-1})≈P(w1?)P(w2?∣w1?)P(w3?∣w1?w2?)...P(wn?∣wn?2?wn?1?)
N-gram語言模型
- 最大相似度估計( Maximum Likelihood Estimate )
P(wn∣w1w2...wn?1)=C(w1w2...wn)C(w1w2...wn?1)P(w_{n}|w_{1}w_{2}...w_{n-1})=\frac{C(w_{1}w_{2}...w_{n})}{C(w_{1}w_{2}...w_{n-1})}P(wn?∣w1?w2?...wn?1?)=C(w1?w2?...wn?1?)C(w1?w2?...wn?)? - “n-gram” = n個詞構成的序列
unigram
bigram
trigram
four-gram(quadgram 4-gram)
…… - N元文法對下一個單詞的條件概率逼近的通用等式是:
P(wn∣w1n?1)≈P(wn∣wn?N+1n?1)P(w_{n}|w_{1}^{n-1})\approx P(w_{n}|w_{n-N+1}^{n-1})P(wn?∣w1n?1?)≈P(wn?∣wn?N+1n?1?)
構造(訓練)N-gram語言模型:在訓練語料庫中統(tǒng)計獲得n-gram的頻度信息
舉例
| want | 1215 |
| to | 3256 |
| eat | 938 |
| Chinese | 213 |
| food | 1506 |
| lunch | 459 |
| I | 8 | 1087 | 0 | 13 | 0 | 0 | 0 |
| want | 3 | 0 | 786 | 0 | 6 | 8 | 6 |
| to | 3 | 0 | 10 | 860 | 3 | 0 | 12 |
| eat | 0 | 0 | 2 | 0 | 19 | 2 | 52 |
| Chinese | 2 | 0 | 0 | 0 | 0 | 120 | 1 |
| food | 19 | 0 | 17 | 0 | 0 | 0 | 0 |
| lunch | 4 | 0 | 0 | 0 | 0 | 1 | 0 |
P(I want to eat Chinese food)
=P(I)P(want|I)P(to|want)P(eat|to)P(Chinese|eat)P(food|Chinese)
=0.251087/3437786/1215860/325619/938120/213
= 0.000154171
- N的選擇:可靠性 vs. 辨別力
“我 正在 ________ ”
講課?圖書館?聽課?學習?借書?……
“我 正在 圖書館 ________”
學習? 借書?……
更大的 n: 對下一個詞出現(xiàn)的約束性信息更多,更大的辨別力
更小的n: 在訓練語料庫中出現(xiàn)的次數(shù)更多,更可靠的統(tǒng)計結果,更高的可靠性
- N的選擇方法
詞表中詞的個數(shù) |V| = 20,000 詞
| 2 (bigrams) | 400,000,000 |
| 3 (trigrams) | 8,000,000,000,000 |
| 4 (4-grams) | 1.6x10171.6 x 10^{17}1.6x1017 |
數(shù)據(jù)稀疏問題
假設我們使用trigram模型
P(S)=P(w1)P(w2∣w1)P(w3∣w1w2)...P(wn∣wn?2wn?1)P(S) = P(w_{1})P(w_{2}|w_{1})P(w_{3}|w_{1}w_{2})...P(w_{n}|w_{n-2}w_{n-1})P(S)=P(w1?)P(w2?∣w1?)P(w3?∣w1?w2?)...P(wn?∣wn?2?wn?1?)
如果某個P(wi∣wi?2wi?1)=C(wi?2wi?1wi)C(wi?2wi?1)=0P(w_{i}|w_{i-2}w_{i-1})=\frac{C(w_{i-2}w_{i-1}w_{i})}{C(w_{i-2}w_{i-1})}=0P(wi?∣wi?2?wi?1?)=C(wi?2?wi?1?)C(wi?2?wi?1?wi?)?=0
那么P(S)=0P(S)=0P(S)=0
數(shù)據(jù)稀疏問題
必須保證 C≠0C\neq 0C??=0從而使 P≠0P\neq 0P??=0
假設某語料庫詞匯分布如下:
最大相似度估計
期望概率分布
33 n-gram語言模型(三)
數(shù)據(jù)平滑技術
- 降低已出現(xiàn)的n-gram條件概率分布,以使未出現(xiàn)n-gram條件概率分布非0
- 又可稱為“折扣方法” (Discounting methods)
- (確認)“Validation” –特指使用兩個不同的訓練語料庫的平滑方法
拉普拉斯定律
- 加一平滑法
- Jeffreys-Perks Law
- Good-Turing估計
- Good-Turing估計示例
建立頻度bigram個數(shù)表(詞表中詞數(shù)14585,語料庫中出現(xiàn)的各不相同的bigram總數(shù)199252個,bigram總數(shù)為617091個)
對于未出現(xiàn)的bigram
假設語料庫中,某bigram 出現(xiàn)了1次,
P=0.3663/617091=5.94E-7 - 簡單 Good-Turing
對于比較大的 r,Nr=arb (b < -1) 用線性回歸的方法估算 a 和 b :log Nr= log a + b log r, 對于比較小的 r, 直接使用Nr - 關于Good-Turing平滑的兩個問題2
1、Good-Turing 估計的理論依據(jù)是什么?
2、Good-Turing 估計是完備的嗎?
其他常用平滑方法
- Back-off 平滑
- 線性插值平滑
- Witten-Bell平滑
平滑的效果
- 數(shù)據(jù)平滑的效果與訓練語料庫的規(guī)模有關
- 數(shù)據(jù)平滑技術是構造高魯棒性語言模型的重要手段
- 訓練語料庫規(guī)模越小,數(shù)據(jù)平滑的效果越顯著,
- 訓練語料庫規(guī)模越大,數(shù)據(jù)平滑的效果越不顯著,甚至可以忽略不計
34 n-gram語言模型(四)
一元模型,N-gram模型與N-pos模型之間的關系
考察N-pos模型的極端情況,即當整個模型只有一個詞類,與每一個詞都有一個各自不同的詞類的情況:如果N-pos模型只有一個詞類,那么前N-1個詞類沒有提供任何上下文信息,于是N-pos模型退化為Unigram模型;如果每一個詞都有一個各不相同的詞類,那么這樣的N-pos模型等價于N-gram模型
統(tǒng)計語言模型的評價
- 實用方法
通過查看該模型在實際應用中的表現(xiàn)來評價統(tǒng)計語言模型
優(yōu)點: 直觀,實用
缺點:缺乏針對性,不夠客觀 - 理論方法
交叉熵與迷惑度
Kullback-Leibler (KL)距離
Kullback-Leibler (KL)距離(相關熵)
兩個概率密度函數(shù)p(x)與q(x)它們的相關熵由下式給出:
描述了兩個概率分布之間的差異
(D(p||q)==0 iff p=q)
非量度(不滿足交換率和三角不等式)
語言與其模型的交叉熵
我們構造的語言模型為q(x),如何評價它的好壞?
Idea:如果q(x)與正確的語言模型p(x)的相關熵越小,模型越好
問題是我們并不知道p(x)
可以借助交叉熵
某語言L,其真實的概率分布為p(x),我們構造的該語言的概率模型為q(x),那么該語言與其模型的交叉熵為:
如果我們將語言視為平穩(wěn)各態(tài)可遍歷的隨機過程:
那么
迷惑度
舉例:150萬詞WSJ語料庫得到的不同n-gram語言模型的迷惑度:
Unigram:962
Bigram:170
Trigram:109
35 n-gram語言模型(五)
- 音字轉換系統(tǒng)
附錄1 語言模型構造實例
N-gram語言模型構造舉例
36 n-gram語言模型(六)
附錄2 最大熵模型基礎
- 最大熵模型
一種基于最大熵原理的統(tǒng)計預測模型。 - 最大熵原理
在一定的限制條件下,盡可能地選擇熵最大的概率分布(均勻分布)作為預測結果
對不知道(限制條件以外)的情形,不做任何假設
舉例-1
拋一枚硬幣: p(H)=p1, p(T)=p2.
限制條件: p1 + p2 = 1
問題:如何估計概率分布 p=(p1, p2)?
基于最大熵原理的答案: 選擇使H§最大的那個p
舉例-2
最大熵模型
- 目的:估計在限定條件下的概率p
選擇滿足限定條件的p,使H§為最大
H(x)=?∑x∈Xp(x)log?p(x)H(x)=-{\sum_{}^{x\in X}}p(x)\log p(x)H(x)=?∑x∈X?p(x)logp(x)
x=(a,b),a∈A∧b∈Bx=(a,b),a\in A\wedge b\in Bx=(a,b),a∈A∧b∈B
AAA 為上下文特征集合, 為待預測標記的集合
37 n-gram語言模型(七)
- 如何獲得這樣的模型 從訓練數(shù)據(jù)中統(tǒng)計 (a, b) 對: a: 上下文 b:預測標記(觀察值) (a,b)稱為一個事件 舉例: 詞性標注 a=在某個文本窗口中的詞 b=NN - 學習得到每個 (a, b)的概率值:p(a, b) - 問題:如何表示限制條件 - 特征 - 在最大熵模型中,特征是一個關于事件二值函數(shù)fj:X→{0,1},X=A×Bf_{j}:X\rightarrow \left \{ 0, 1\right \},X=A\times Bfj?:X→{0,1},X=A×B
舉例:
特征(事件)舉例
(title caps, NNP): Citibank, Mr.
(sufix -ing, VBG): running, cooking
(POS tag DT, I-NP): the bank, a thief
(current word from, I-PP): from the bank
(next word Inc., I-ORG): Lotus Inc.
(previous word said, I-PER): said Mr. Vinken
復雜特征
- 文檔級特征
(document category = 籃球& current word = “火箭”, I-ORG)
可能將“火箭”標為 I-ORG 而非普通名詞 - 原子級(詞)特征
(current word = “李寧” & next word = 公司, I-ORG)
可能將“李寧”標為 I-ORG而非I-PER
限制條件
最大熵模型的使用
根據(jù)局部概率值直接標注
計算全局最優(yōu)解
- Viterbi search
- Beam search
最大熵模型總結
原理:找到滿足所有限制的熵最大的概率分布
訓練:通過 GIS 或者 IIS,收斂速度可能較慢
對交叉性的特征也能很好的處理
對自然語言處理的許多問題都能提供很好的解決方案
致謝
關毅老師,現(xiàn)為哈工大計算機學院語言技術中心教授,博士生導師。通過認真學習了《自然語言處理(哈工大 關毅 64集視頻)》3(來自互聯(lián)網(wǎng))的課程,受益良多,在此感謝關毅老師的辛勤工作!為進一步深入理解課程內(nèi)容,對部分內(nèi)容進行了延伸學習4 5 612,在此分享,期待對大家有所幫助,歡迎加我微信(驗證:NLP),一起學習討論,不足之處,歡迎指正。
參考文獻
Claude E. Shannon. “Prediction and Entropy of Printed English”, Bell System Technical Journal 30:50-64. 195 ?? ??
An Empirical Study of Smoothing Techniques for Language Modeling, Stanley F. Chen ?? ??
《自然語言處理(哈工大 關毅 64集視頻)》(來自互聯(lián)網(wǎng)) ??
王曉龍、關毅 《計算機自然語言處理》 清華大學出版社 2005年 ??
哈工大語言技術平臺云官網(wǎng):http://ltp.ai/ ??
Steven Bird,Natural Language Processing with Python,2015 ??
總結
以上是生活随笔為你收集整理的《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第五章 n-gram语言模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: R回归分析-三种不同数据类型
- 下一篇: 有CISAW证书能拿到多少工资?