---恢復內容開始---
1.分詞:
基於規則的分詞方法
- 1)正向最大匹配法(由左到右的方向)
- 2)逆向最大匹配法(由右到左的方向)
- 3)最少切分(使每一句中切出的詞數最小)
- 4)雙向最大匹配法(進行由左到右、由右到左兩次掃描)
基於統計的分詞方法中的互信息的運用:反應了字與字之間的緊密程度
深度學習下:雙向LSTM+ CRF
基於機器學習的方法介紹:HMM & CRF
HMM介紹:
圖:隱馬爾可夫模型圖解
圖中的箭頭表示了變量間的依賴關系。在任一時刻,觀測變量的取值僅依賴於狀態變量,即xi由yi決定,與其他狀態變量及觀測變量的取值無關。同時,i時刻的狀態yi僅依賴於i-1時刻的狀態yi-1,與其余n-2個狀態無關。這就是所謂的“馬爾可夫鏈”,即:系統下一時刻的狀態僅由當前狀態決定,不依賴於以往的任何狀態。
隱馬爾可夫的求解
一般的,一個HMM可以記作一個五元組u=(S, K, A, B, π), 其中S是狀態集合,K是輸出符號也就是觀察集合,A是狀態轉移概率,B是符號發射概率,π是初始狀態的概率分布。HMM主要解決三個基本問題:
- 觀測估計問題,給定一個觀察序列O=O1,O2,O3,... ,Ot和模型u=(A,B,π),計算觀察序列的概率;
- 狀態序列問題,給定一個觀察序列O=O1,O2,O3... Ot和模型μ=(A, B, π),計算最優的狀態序列Q=q1,q2,q3...qt;
- 參數估計問題,給定一個觀察序列O=O1,O2,O3... Ot,如何調節模型μ=(A,B, π)的參數,使得P(O|μ)最大。
隱馬爾可夫的估計問題可以通過前向/后向的動態規划算法來求解;序列問題可以通過viterbi算法求解;參數估計問題可以通過EM算法求解。通過海量的語料數據,可以方便快速地學習出HMM圖模型。
HMM分詞方法:
隱馬爾可夫的三大問題分別對應了分詞中的幾個步驟。
- 參數估計問題即是分詞的學習階段,通過海量的語料數據來學習歸納出分詞模型的各個參數。
- 狀態序列問題是分詞的執行階段,通過觀察變量(即待分詞句子的序列)來預測出最優的狀態序列(分詞結構)。
我們設定狀態值集合S =(B, M, E, S),分別代表每個狀態代表的是該字在詞語中的位置,B代表該字是詞語中的起始字,M代表是詞語中的中間字,E代表是詞語中的結束字,S則代表是單字成詞;觀察值集合K =(所有的漢字);則中文分詞的問題就是通過觀察序列來預測出最優的狀態序列。
比如觀察序列為:
O = 小紅就職於達觀數據
預測的狀態序列為:
Q = BEBESBMME
根據這個狀態序列我們可以進行切詞:
BE/BE/S/BMME/
所以切詞結果如下:
小紅/就職/於/達觀數據/
因為HMM分詞算法是基於字的狀態(BEMS)來進行分詞的,因此很適合用於新詞發現,某一個新詞只要標記為如“BMME”,就算它沒有在歷史詞典中出現過,HMM分詞算法也能將它識別出來。
基於條件隨機場的分詞算法
條件隨機場(Conditional Random Field,簡稱CRF)是一種判別式無向圖模型,它是隨機場的一種,常用於標注或分析序列語料,如自然語言文字或是生物序列。
跟隱馬爾可夫模型通過聯合分布進行建模不同,條件隨機場試圖對多個變量在給定觀測值后的條件概率進行建模。
具體來說,若令x = {x1, x2, …, xn}為觀測序列,y = {y1, y2, …, yn}為與之對應的標記序列,則條件隨機場的目標是構建條件概率模型P(y | x)。令圖G = 表示結點與標記變量y中元素一一對應的無向圖,yv表示與結點v對應的標記變量,n(v)表示結點v的鄰接結點,如果圖G的每個變量yv都滿足馬爾可夫性,即:
則(y, x)構成一個條件隨機場。也就是說, 條件概率只與x和y的鄰接結點有關,與其他的y結點沒有關系。
圖3:條件隨機場模型圖解
理論上來說,圖G可具有任意結構,只要能表示標記變量之間的條件獨立性關系即可。但在現實應用中,尤其是對標記序列建模時,最常用的仍然是上圖所示的鏈式結構,即“鏈式條件隨機場”。
(2) 條件隨機場的求解方法
條件隨機場使用勢函數和圖結構上的團來定義條件概率P(y | x)。給定觀測序列x,鏈式條件隨機場主要包含兩種關於標記變量的團,即單個標記變量{yi}以及相鄰的標記變量{yi-1,yi}。在條件隨機場中,通過選用合適的勢函數,並引入特征函數,可以得到條件概率的定義:
其中:
其中tk(yi - 1, yi, x, i)是定義在觀測序列的兩個相鄰標記位置上的轉移特征函數,用於刻畫相鄰標記變量之間的相關關系以及觀測序列對它們的影響,
sj(yi, x, i)是定義在觀測序列的標記位置i上的狀態特征函數,用於刻畫觀測序列對標記變量的影響,λk和 為參數,Z為規范化因子。
可以將tk(yi - 1, yi, x, i)和sl(yi, x, i)兩個特征函數統一為:fk(yi-1, yi, x, i),則有:
其中:
已知訓練數據集,由此可知經驗概率分布 ,可以通過極大化訓練數據的對數似然函數來求模型參數。加入懲罰項后,訓練數據的對數似然函數為:
其中的σ是可以調節的懲罰權重。對似然函數L(w)中的w求偏導,令:
可以依次求出wi。
(3) 條件隨機場分詞方法
條件隨機場和隱馬爾可夫一樣,也是使用BMES四個狀態位來進行分詞。以如下句子為例:
中 國 是 泱 泱 大 國
B B B B B B B
M M M M M M M
E E E E E E E
S S S S S S S
條件隨機場解碼就是在以上由標記組成的數組中搜索一條最優的路徑。
我們要把每一個字(即觀察變量)對應的每一個狀態BMES(即標記變量)的概率都求出來。例如對於觀察變量“國”,當前標記變量為E,前一個觀察變量為“中”,前一個標記變量為B,則:
t(B, E, ‘國’) 對應到條件隨機場里相鄰標記變量{yi-1, yi}的勢函數:
s(E, ‘國’) 對應到條件隨機場里單個標記變量{yi}對應的勢函數sl(yi, x, i):
t(B, E, ‘國’), s(E, ‘國’)相應的權值λ、k, 都是由條件隨機場用大量的標注語料訓練出來。因此分詞的標記識別就是求對於各個觀察變量,它們的標記變量(BMES)狀態序列的概率最大值,即求:
的概率組合最大值。這個解法與隱馬爾可夫類似,都是可以用viterbi算法求解。
(4) 條件隨機場分詞的優缺點
條件隨機場分詞是一種精度很高的分詞方法,它比隱馬爾可夫的精度要高,是因為隱馬爾可夫假設觀察變量xi只與當前狀態yi有關,而與其它狀態yi-1,yi+1無關;而條件隨機場假設了當前觀察變量xi與上下文相關,如 ,就是考慮到上一個字標記狀態為B時,當前標記狀態為E並且輸出“國”字的概率。因此通過上下文的分析,條件隨機場分詞會提升到更高的精度。但因為復雜度比較高,條件隨機場一般訓練代價都比較大。
---恢復內容結束---