基於統計的自動分詞算法


   簡介:利用字與字間、詞與詞間的同現頻率作為分詞的依據,不一定需要建立好的詞典。需要大規模的訓練文本用來訓練模型參數。
優缺點:不受應用領域的限制;但訓練文本的選擇將影響分詞結果。 

概率最大統計分詞算法

一、主要原理  

  對於任意一個語句,首先按語句中詞組的出現順序列出所有在語料庫中出現過的詞組;將上述詞組集中的每一個詞作為一個頂點,加上開始與結束頂點,按構成語句的順序組織成有向圖;再為有向圖中每兩個直接相連的頂點間的路徑賦上權值,如 A→B,則 AB 間的路徑權值為 B 的費用(若 B 為結束頂點,則權值為 0);此時原問題就轉化成了單源最短路徑問題,通過動態規划解出最優解即可。

 

二、思路說明

(1)獲取候選詞

   獲取句子中可能出現的所有詞作為候選詞,但要滿足下列條件:如果是長度大於 1 的詞,則必須在詞典中出現;如果是長度等於 1,即為單字,可以不在詞典中出現。

(2)構造前趨詞

  假定字符串從左到右進行掃描,可以得到 w1,w2,…,wi-1,wi,….等若干候選詞,如果 wi-1 的尾字根 wi 的首字鄰接,就稱 wi-1 為 wi 的前趨詞。比如上面例中,候選詞“有”就是候選詞“意見”的前趨詞,“意見”和“見”都是“分歧”的前趨詞。字串最左邊的詞沒有前趨詞。

(3)尋找最佳前趨詞

  如果某個候選詞 wi 有若干個前趨詞 wj,wk,…..等等,其中累計概率最大的候選詞稱為 wi 的最佳前趨詞。比如候選詞“意見”只有一個前趨詞“有”,因此“有”同時也就是“意見”的最佳前趨詞;候選詞“分歧”有兩個前趨詞“意見”和“見”,其中“意見”的累計概率大於“見”累計概率,因此“意見”是“分歧”的最佳前趨詞。

(4)確定最優路徑

  回溯,從字符串的尾部按照最佳前趨詞的指引,向前搜索最優路徑。

 

 

三、算法描述

① 對一個待分詞的子串S,按照從左到右的順序取出全部候選詞w1,w2,…,wi,…,wn;

②到詞典中查出每個候選詞的概率值 P(wi),並記錄每個候選詞的全部左鄰詞;

③按照公式 1 計算每個候選詞的累計概率,同時比較得到每個候選詞的最佳左鄰詞;

④如果當前詞 wn 是字串 S 的尾詞,且累計概率 P(wn)最大,則 wn 就是 S 的終點詞;

⑤從 wn 開始,按照從右到左順序,依次將每個詞的最佳左鄰詞輸出,即 S 的分詞結果。 

 

四、舉例演示

①對“有意見分歧”,從左到右進行一遍掃描,得到全部候選詞:“有”,“有意”,“意見”,“見”,“分歧”;

②對每個候選詞,記錄下它的概率值,並將累計概率賦初值為 0;

③順次計算各個候選詞的累計概率值,同時記錄每個候選詞的最佳左鄰詞;

  P’(有) =P(有),

  P’(有意) = P(有意) ,

  P’(意見) = P’(有) * P(意見) ,(“意見”的最佳左鄰詞為“有” )

  P’(見) = P’(有意) * P(見) , (“見”的最佳左鄰詞為“有意” )

  P’(意見) >P’(見)

“分歧”是尾詞,“意見”是“分歧”的最佳左鄰詞,分詞過程結束,輸出結果:有/ 意見/ 分歧/ 

 

五、算法缺點

①最大概率分詞法不能解決所有的交集型歧義問題:“這事的確定不下來”:

  W1=這/ 事/ 的確/ 定/ 不/ 下來/

  W2=這/ 事/ 的/ 確定/ 不/ 下來/

  P(W1)<P(W2)


②無法解決組合型歧義問題:“做完作業才能看電視”

  W1=做/ 完/ 作業/ 才能/ 看/ 電視/

  W2=做/ 完/ 作業/ 才/ 能/ 看/ 電視/

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM