當前位置:編程學習大全網 - 源碼下載 - 分詞的基本原理

分詞的基本原理

本文只是對NLP知識進行梳理,鞏固及時查漏補缺。

?在對文本處理的時候,首要做的就是分詞。英文可以按空格分詞,但有時候需要把多個單詞作為壹個分詞,比如壹些名詞如“New York”,需要作為壹個詞看待。而中文沒有空格,分詞就是壹個需要專門去解決的問題了。無論是英文還是中文,分詞的原理都是類似的,本文就對文本挖掘時的分詞原理做壹個總結。

三大主流分詞方法:

?現代分詞幾乎都是基於統計的分詞,而統計的樣本內容來自於壹些標準的語料庫。

?假如有壹個句子: “小明來到荔灣區” ,我們期望語料庫統計後分詞的結果是: "小明/來到/荔灣/區" ,而不是 “小明/來到/荔/灣區” 。那麽如何做到這壹點呢?

?從統計的角度,我們期望 "小明/來到/荔灣/區" 這個分詞後句子出現的概率要比 “小明/來到/荔/灣區” 大。數學表示就是:如果有壹個句子S,它有m種分詞選項,

其中下標 代表第 種分詞的詞個數。如果我們從中選擇了最優的第?種分詞方法,那麽這種分詞方法對應的統計分布概率應該最大,即:

但是我們的概率分布 並不好求出來,因為它涉及到 個分詞的聯合分布。在NLP中,為了簡化計算,我們通常使用馬爾科夫假設,即每壹個分詞出現的概率僅僅和前壹個分詞有關,即:

由馬爾科夫假設,則聯合分布為:

而通過我們的標準語料庫,我們可以近似的計算出所有的分詞之間的二元條件概率,比如任意兩個詞 , ,它們的條件概率分布可以近似的表示為:

其中(?1,?2)表示?1,?2在語料庫中相鄰壹起出現的次數,而其中(?1),(?2)分別表示?1,?2在語料庫中出現的統計次數。

?利用語料庫建立的統計概率,對於壹個新的句子,我們就可以通過計算各種分詞方法對應的聯合分布概率,找到最大概率對應的分詞方法,即為最優分詞。

2.1 正向最大匹配思想MM

例: 我們要對 南京市長江大橋 這個句子進行分詞,根據正向最大匹配的原則:

2.2 逆向最大匹配算法RMM

?該算法是正向最大匹配的逆向思維,匹配不成功,將匹配字段的最前壹個字去掉,實驗表明,逆向最大匹配算法要優於正向最大匹配算法。

例:取出 南京市長江大橋 的後四個字“長江大橋”,發現詞典中有匹配,切割下來;對剩余的“南京市”進行分詞,整體結果為:南京市、長江大橋。

2.3 雙向最大匹配法BM

?雙向最大匹配法是將正向最大匹配法得到的分詞結果和逆向最大匹配法的到的結果進行比較,從而決定正確的分詞方法。

例:雙向的最大匹配,即把所有可能的最大詞都分出來,上面的句子可以分為:南京市、南京市長、長江大橋、江、大橋。

2.4 設立切分標誌法

? 收集切分標誌,在自動分詞前處理切分標誌,再用MM、RMM進行細加工。

?隨著大規模語料庫的建立,統計機器學習方法的研究和發展,基於統計的中文分詞方法漸漸成為了主流方法。

主要思想 :把每個詞看做是由詞的最小單位各個字組成的,如果相連的字在不同的文本中出現的次數越多,就證明這相連的字很可能就是壹個詞。因此我們就可以利用字與字相鄰出現的頻率來反應成詞的可靠度,統計語料中相鄰***現的各個字的組合的頻度,當組合頻度高於某壹個臨界值時,我們便可認為此字組可能會構成壹個詞語。

主要統計模型:

N元模型

?只依賴於前壹個詞太武斷了,我們能不能依賴於前兩個詞呢?

?這樣也是可以的,只不過這樣聯合分布的計算量就大大增加了。我們壹般稱只依賴於前壹個詞的模型為二元模型(Bi-Gram model),而依賴於前兩個詞的模型為三元模型。以此類推,我們可以建立四元模型,五元模型,...壹直到通用的N元模型。越往後,概率分布的計算復雜度越高。當然算法的原理是類似的。

在實際應用中,N壹般都較小,壹般都小於4,主要原因是N元模型概率分布的空間復雜度為O( ),其中|V|為語料庫大小,而N為模型的元數,當N增大時,復雜度呈指數級的增長。

?N元模型的分詞方法雖然很好,但是要在實際中應用也有很多問題,

維特比算法與分詞

?為了簡化原理描述,我們的討論都是以二元模型為基礎。

?對於壹個有很多分詞可能的長句子,我們當然可以用暴力方法去計算出所有的分詞可能的概率,再找出最優分詞方法。但是用維特比算法可以大大簡化求出最優分詞的時間。

?大家壹般知道維特比算法是用於隱式馬爾科夫模型HMM解碼算法的,但是它是壹個通用的求序列最短路徑的方法,不光可以用於HMM,也可以用於其他的序列最短路徑算法,比如最優分詞。

?維特比算法采用的是動態規劃來解決這個最優分詞問題的,動態規劃要求局部路徑也是最優路徑的壹部分,很顯然我們的問題是成立的。首先我們看壹個簡單的分詞例子:"人生如夢境"。它的可能分詞可以用下面的概率圖表示:

參考: blogs.com/pinard/p/6677078.html

  • 上一篇:OA辦公系統有哪些功能模塊?
  • 下一篇:如何將通達信平均線指標中的實線改為下面的虛線?
  • copyright 2024編程學習大全網