自然語言處理1-馬爾科夫鏈和隱馬爾科夫模型(HMM)

來源:互聯網
上載者:User

基於統計的語言模型比基於規則的語言模型有著天然的優勢,而(中文)分詞是自然語言處理的基礎,接下來我們將注重介紹基於統計的中文分詞及詞性標註技術。為此做以下安排:首先介紹一下中文處理涉及到基本概念,接著分析開源的一些基於統計的中文分詞原理。

中文分詞涉及的基本概念有馬爾科夫鏈,隱馬爾科夫模型(HMM),Ngram模型,最大熵馬爾科夫模型(MEMM),條件隨機場(CRF)等

1、馬爾科夫鏈

通俗講馬爾科夫鏈是指在某一狀態空間序列中,當前的狀態只與它前面n(n=1,2,……)個狀態相關。

具體定義如下:

馬爾科夫鏈指具有馬爾科夫性質的隨機變數X1, X2, X3,…序列,即將來的狀態只與當前的狀態相關,而與過去的狀態無關。

用數學公式表示如下

Pr (Xn+1=|X1=x1,X2=x2, …, Xn=xn) = Pr (Xn+1=x|Xn=xn)

Xn(n=1,2,3,…)表示所有可能取值的集合,被稱為“狀態空間”,而Xn的值則是在時間n的狀態

馬爾科夫鏈通常被描述成一個有向圖,其中狀態表示圖的頂點,狀態轉移機率表示圖的邊。1所示。

               

圖1-兩個狀態的馬爾科夫鏈

2、隱馬爾科夫模型

HMM定義

一個HMM是一個三元組

初始狀態機率向量

A =(aij): 狀態轉移機率;Pr(xi|xj)

B=(bij) :   混淆矩陣;Pr(yi|xj)

這其中,所有的狀態轉移機率和混淆機率在整個系統中都是一成不變的。這也是HMM中最不切實際的假設。

一個HMM模型主要是由兩類狀態和三組機率來表示的

兩類狀態:觀察狀態,隱藏狀態

三組機率:初始機率,狀態轉移機率及兩態對應機率。

舉例

我們通過一個詞性標註的例子來闡述一下HMM的原理

觀察狀態:他   是     電腦 博士

隱藏狀態:代詞,動詞,名詞   名詞

假設根據語料我們可以得到隱藏狀態兩兩狀態之間的轉換如下所示,我們也叫它狀態轉移機率矩陣。

 

代詞

動詞

名詞

代詞

0.5

0.25

0.25

動詞

0.375

0.125

0.375

名詞

0.125

0.625

0.375

 

根據語料庫,也可以得到兩態對應機率矩陣即混淆矩陣,如下所示:

 

電腦

博士

代詞

0.60

0.20

0.15

0.05

動詞

0.25

0.25

0.25

0.25

名詞

0.05

0.10

0.35

0.50

同時我們假定初始的機率滿足下面所示:

代詞   動詞  名詞

〔0.63  0.17  0.20〕

至此我們根據語料統計並訓練了一個詞性標註的HMM模型。

有了HMM模型,我們可以做什麼呢?

(1)、評估即根據已知的HMM找出一個觀察序列的機率。例如我們可以評估(他 是 電腦 博士)出現的機率。我們可以通過forward  algorithm演算法來得到觀察狀態序列對應於一個HMM的機率。

(2)、根據觀察狀態序列找到產生這一序列的潛在的隱含狀態序列,如根據“他 是 電腦 博士”序列找到其對應的“代詞 動詞 名詞 名詞”狀態序列。我們可以通過viterbialgorithm來解決。

可以根據訓練好的隱馬爾科夫模型來做評估和解碼的問題,那麼隱馬爾科夫模型又是怎麼得到呢?

這是與HMM相關的問題中最難的,根據一個觀察序列(來自於已知的集合),以及與其有關的一個隱藏狀態集,估計一個最合適的隱馬爾科夫模型(HMM),也就是確定對已知序列描述的最合適的(,A,B)三元組。當矩陣A和B不能夠直接被(估計)測量時,前向-後向演算法(forward-backward algorithm)被用來進行學習(參數估計),這也是實際應用中常見的情況。

由於直接用前向-後向演算法(forward-backward  algorithm)進行學習的準確性不是非常高,目前通用的做法是通過人工標註語料庫產生HMM。但需要注意的是人工標註語料庫工作量比較大。

隱馬爾科夫模型的缺點:

HMM模型中存在兩個假設:一是輸出觀察值之間嚴格獨立,二是狀態的轉移過程中目前狀態只與前一狀態有關(一階馬爾可夫模型)。

在下面的例子裡

觀察狀態:他    是     電腦 博士

隱藏狀態:代詞,動詞,名詞   名詞

比如在計算Pr(博士|名詞)機率時不會考慮“博士”的上下文資訊“電腦”;還有第一個“名詞”出現的機率只與前面的“動詞”出現的機率相關,這樣表示上下文資訊的能力就比較有限。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.