詞性標註算法之CLAWS算法和VOLSUNGA算法

背景知識

   詞性標註:將句子中兼類詞的詞性根據上下文惟一地肯定下來。

 

1、基於規則的詞性標註方法

1.原理

  利用事先制定好的規則對具備多個詞性的詞進行消歧,最後保留一個正確的詞性。算法

2.步驟

  ①對詞性歧義創建單獨的標註規則庫數據結構

  ②標註時,查詞典,若是某個詞具備多個詞性,則查找規則庫,對具備相同模式的歧義進行排歧,不然保留。ide

  ③程序和規則庫是獨立的兩部分。spa

3.例子

  TAGGIT系統blog

 

2、基於統計的詞性標註方法

一、原理

  先對部分進行手工標註,而後對新的語料使用統計方法進行自動標註。it

二、語言模型

  (1)一個語言句子的信息量

 一個句子s = w1w2……wn的信息量量能夠用熵來表示:H = - ∑p(w1,w2,…,wn) log p(w1,w2,…,wn),機率p(s)的大小反映了這個詞串在該語言中的使用狀況。class

  (2)n元語法模型

①一元語法,wi的出現獨立於歷史效率

  p(w1,w2,…,wn) = p(w1)*p(w2)*p(w3)…p(wn)原理

②二元語法,wi的出現決定於wi-1遍歷

  p(w1,w2,…,wn) = p(w1)*p(w2|w1)*p(w3|w2)…p(wn|wn-1)

③三元語法,wi的出現決定於wi-1,wi-2

  p(w1,w2,…,wn) =p(w1)*p(w2|w1)*p(w3|w2,w1)…p(wn|wn-1,wn-2)

  (3)數據平滑——Laplace法則

三、詞性標註模型

①另W=w1w2….wn是由n個詞組成的詞串,T=t1t2…tn是詞串W對應的標註串,其中tk是wk的詞性標註。

②根據HMM模型,計算使得條件機率p(T|W)值最大的那個T’= argmaxp(T|W)

③根據貝葉斯公式:p(T|W) = P(T)*P(W|T)/P(W)。因爲詞串不變,p(W)不影響總的機率值,所以繼續簡化爲:

      p(T|W) = P(T)*P(W|T),其中p(T) = p(t1|t0)*p(t2|t1,t0)…p(ti|ti-1),

根據一階HMM獨立性假設,可得:p(T) = p(t1|t0)*p(t2|t1)…p(ti|ti-1),

即P(ti|ti-1) = 訓練語料中ti出如今ti-1以後的次數/訓練語料中ti-1出現的總次數。

③根據貝葉斯公式:p(W|T) = p(w1|t1)*p(w2|t2,t1)…p(wi|ti,ti-1,…,t1)。根據一階HMM獨立性假設,可得p(W|T) = p(w1|t1)*p(w2|t2)…p(wi|ti)。因此

四、詞典的預處理

  將已標註好詞性的訓練語料集整理出:①每一個詞在不一樣詞性下出現的次數;②每一個詞性在語料集中出現的總次數。

 

算法介紹

  1、CLAWS算法(Contituent-Likelihood Automatic Word-tagging System 成分似然性自動詞性標註系統) 

一、介紹

  早在60年代,國外學者就開始研究英語文本的自動詞類標註問題,提出了一些消除兼類詞歧義的方法,創建了一些自動詞性標註系統。1983年,裏奇(G. Leech)和加塞德(R. Garside)等人創建了CLAWS系統,用機率統計的方法來進行自動詞性標註,他們使用了133×133的詞類共現機率矩陣,經過統計模型來消除兼類詞歧義,自動標註的正確率達到了96%.

二、主要原理

  先從待標註的LOB語料庫中選出來部分語料,叫作「訓練集」(Training Set), 對訓練集中的語料逐詞進行詞性的人工標註, 而後利用計算機對訓練集中的任意兩個相鄰標記的同現機率進行統計,造成一個相鄰標記的同現機率矩陣。

  進行自動標註時,系統從輸入文本中順序地截取一個有限長度的詞串,這個詞串的首詞和尾詞的詞性應該是惟一的,這樣的詞串叫作跨段(span),記爲W0,W1,W2,…,Wn,Wn+1。其中, W0和Wn+1 都是非兼類詞, W1,W2,…,Wn 是n個兼類詞。

  利用同現機率矩陣提供的數據來計算這個跨段中由各個單詞產生的每一個可能標記的機率積,並選擇機率積最大的標記串做爲選擇路徑(path),以這個路徑做爲最佳結果輸出。

三、算法描述

①一個句子首先用全分割法或Viterbi算法分割成N個詞;

②這N個詞,首先查詞典,標上全部可能的詞類;

③N個相鄰的詞每一種詞類的排列叫作一條路徑;

④求出具備最大似然估計值的那條路徑,即最佳路徑;

⑤最佳路徑上所對應的標註爲這N個詞的標註。

四、舉例分析

句子:一把青菜

①用全分割法或Viterbi法將句子分割成: 一,把,青菜

②找出每一個詞包含的詞性:一/s  把/n/v/l  青菜/n

③計算每一條路徑的機率:

  P(s,n,n|一,把,青菜) =P(一|s)* P(把|n)*P(青菜|n)

  P(s,v,n|一,把,青菜) =P(一|s)* P(把|v)*P(青菜|n)

  P(s,l,n|一,把,青菜) =P(一|s)* P(把|l)*P(青菜|n)

其中:

④取機率最大的那條路徑爲結果。

五、優勢分析

  經過統計模型來消除兼類詞歧義,自動標註的正確率達到了96%.

六、缺點分析

      須要複雜的數據結構來存儲路徑,保存機率結果,空間複雜度和時間複雜度都很是高,路徑數是一個句子中的全部詞包含的詞性個數相乘的結果。

七、改良方向

      1988年,德洛斯(S. J. DeRose)對CLAWS系統做了一些改進,利用線性規劃的方法來下降系統的複雜性,提出了VOLSUNGA算法,大大地提升了處理效率,使自動詞性標註的正確率達到了實用的水平。

 

  2、VOLSUNGA 詞性標註算法 

一、主要原理

  VOLSUNGA算法從左到右,對於當前考慮的詞,只保留通往該詞的每一個詞類的最佳路徑,而後繼續將這些路徑與下個詞的全部詞類標記進行匹配,分別找出通往這個詞的每一個標記的最佳路徑,後面的詞依次重複。本質上至關於貪心算法中的單源最短路徑Dijkstra算法。

二、算法描述

①一個句子首先用全分割法或Viterbi算法分割成N個詞

②這N個詞,首先查詞典,標上全部可能的詞類

③N個相鄰的詞中每一種詞類的排列叫作一條路徑

④遍歷全部詞,每一個詞都計算各個詞性下的一階HMM值,取值最大的爲最終詞性,保存該詞性和機率,捨棄其餘詞性。

三、優勢分析

①對CLAWS算法的改進主要有兩個方面:

(a)在最佳路徑的選擇方面,不是最後纔來計算機率積最大的標記串,而是沿着從左至右的方向,採用「步步爲營」的策略,對於當前考慮的詞,只保留通往該詞的最佳路徑,捨棄其餘路徑,而後再從這個詞出發,將這個路徑同下一個詞的全部標記進行匹配,繼續找出最佳的路徑,捨棄其餘路徑,這樣一步一步地前進,直到整個跨段走完,得出整個跨段的最佳路徑做爲結果輸出。

(b)根據語料庫統計出每一個詞的相對標註機率(Relative Tag Probability),並用這種相對標註機率來輔助最佳路徑的選擇。

②VOLSUNGA算法大大地下降了CLAWS算法的時間複雜度和空間複雜度,提升了自動詞性標註的準確率。

四、缺點分析

  CLAWS算法和VOLSUNGA算法都是基於統計的自動標註方法,僅僅根據同現機率來標註詞性。可是,同現機率僅只是最大的可能而不是惟一的可能,以同現機率來斷定兼類詞,是以捨棄同現機率低的可能性前提的。

五、改進方向

  爲了提升自動詞性標註的正確率,還必須輔之以基於規則的方法,根據語言規則來斷定兼類詞。

相關文章
相關標籤/搜索