中文分詞算法筆記
中文分詞基本算法主要分類
基于詞典的方法、基于統(tǒng)計的方法、基于規(guī)則的方法、(傳說中還有基于理解的-神經(jīng)網(wǎng)絡(luò)-專家系統(tǒng),按下不表)
1、基于詞典的方法(字符串匹配,機械分詞方法)
定義:按照一定策略將待分析的漢字串與一個“大機器詞典”中的詞條進行匹配,若在詞典中找到某個字符串,則匹配成功。
按照掃描方向的不同:正向匹配和逆向匹配
按照長度的不同:最大匹配和最小匹配
1.1正向最大匹配思想MM
1》從左向右取待切分漢語句的m個字符作為匹配字段,m為大機器詞典中最長詞條個數(shù)。
2》查找大機器詞典并進行匹配。若匹配成功,則將這個匹配字段作為一個詞切分出來。
若匹配不成功,則將這個匹配字段的最后一個字去掉,剩下的字符串作為新的匹配字段,進行再次匹配,重復以上過程,直到切分出所有詞為止。
1.2逆向最大匹配算法RMM
該算法是正向最大匹配的逆向思維,匹配不成功,將匹配字段的最前一個字去掉,實驗表明,逆向最大匹配算法要優(yōu)于正向最大匹配算法。
1.3 雙向最大匹配法(Bi-directction Matching method,BM)
雙向最大匹配法是將正向最大匹配法得到的分詞結(jié)果和逆向最大匹配法的到的結(jié)果進行比較,從而決定正確的分詞方法。據(jù)SunM.S. 和 Benjamin K.T.(1995)的研究表明,中文中90.0%左右的句子,正向最大匹配法和逆向最大匹配法完全重合且正確,只有大概9.0%的句子兩種切分方法得到的結(jié)果不一樣,但其中必有一個是正確的(歧義檢測成功),只有不到1.0%的句子,或者正向最大匹配法和逆向最大匹配法的切分雖重合卻是錯的,或者正向最大匹配法和逆向最大匹配法切分不同但兩個都不對(歧義檢測失敗)。這正是雙向最大匹配法在實用中文信息處理系統(tǒng)中得以廣泛使用的原因所在。
1.3設(shè)立切分標志法
收集切分標志,在自動分詞前處理切分標志,再用MM、RMM進行細加工。
1.4最佳匹配(OM,分正向和逆向)
對分詞詞典按詞頻大小順序排列,并注明長度,降低時間復雜度。
優(yōu)點:易于實現(xiàn)
缺點:匹配速度慢。對于未登錄詞的補充較難實現(xiàn)。缺乏自學習。
1.2基于統(tǒng)計的分詞(無字典分詞)
主要思想:上下文中,相鄰的字同時出現(xiàn)的次數(shù)越多,就越可能構(gòu)成一個詞。因此字與字相鄰出現(xiàn)的概率或頻率能較好的反映詞的可信度。
主要統(tǒng)計模型為:N元文法模型(N-gram)、隱馬爾科夫模型(Hidden Markov Model, HMM)
1.2.1N-gram模型思想
模型基于這樣一種假設(shè),第n個詞的出現(xiàn)只與前面N-1個詞相關(guān),而與其它任何詞都不相關(guān),整句的概率就是各個詞出現(xiàn)概率的乘積 .
我們給定一個詞,然后猜測下一個詞是什么。當我說“艷照門”這個詞時,你想到下一個詞是什么呢?我想大家很有可能會想到“陳冠希”,基本上不會有人會想到“陳志杰”吧。N-gram模型的主要思想就是這樣的。
對于一個句子T,我們怎么算它出現(xiàn)的概率呢?假設(shè)T是由詞序列W1,W2,W3,…Wn組成的,那么P(T)=P(W1W2W3…Wn)=P(W1)P(W2|W1)P(W3|W1W2)…P(Wn|W1W2…Wn-1)
但是這種方法存在兩個致命的缺陷:一個缺陷是參數(shù)空間過大,不可能實用化;另外一個缺陷是數(shù)據(jù)稀疏嚴重。
為了解決這個問題,我們引入了馬爾科夫假設(shè):一個詞的出現(xiàn)僅僅依賴于它前面出現(xiàn)的有限的一個或者幾個詞。
如果一個詞的出現(xiàn)僅依賴于它前面出現(xiàn)的一個詞,那么我們就稱之為bigram。即
P(T) = P(W1W2W3…Wn)=P(W1)P(W2|W1)P(W3|W1W2)…P(Wn|W1W2…Wn-1)
≈P(W1)P(W2|W1)P(W3|W2)…P(Wn|Wn-1)
如果一個詞的出現(xiàn)僅依賴于它前面出現(xiàn)的兩個詞,那么我們就稱之為trigram。
在實踐中用的最多的就是bigram和trigram了,而且效果很不錯。高于四元的用的很少,因為訓練它需要更龐大的語料,而且數(shù)據(jù)稀疏嚴重,時間復雜度高,精度卻提高的不多。
設(shè)w1,w2,w3,...,wn是長度為n的字符串,規(guī)定任意詞wi 只與它的前兩個相關(guān),得到三元概率模型
以此類推,N元模型就是假設(shè)當前詞的出現(xiàn)概率只同它前面的N-1個詞有關(guān)。
1.2.2隱馬爾科夫模型思想
1.3基于規(guī)則的分詞(基于語義)
通過模擬人對句子的理解,達到識別詞的效果,基本思想是語義分析,句法分析,利用句法信息和語義信息對文本進行分詞。自動推理,并完成對未登錄詞的補充是其優(yōu)點。不成熟.
具體概念:有限狀態(tài)機\語法約束矩陣\特征詞庫
1.4基于字標注的中文分詞方法
以往的分詞方法,無論是基于規(guī)則的還是基于統(tǒng)計的,一般都依賴于一個事先編制的詞表(詞典)。自動分詞過程就是通過詞表和相關(guān)信息來做出詞語切分的決策。與此相反,基于字標注的分詞方法實際上是構(gòu)詞方法。即把分詞過程視為字在字串中的標注問題。由于每個字在構(gòu)造一個特定的詞語時都占據(jù)著一個確定的構(gòu)詞位置(即詞位),假如規(guī)定每個字最多只有四個構(gòu)詞位置:即B(詞首),M (詞中),E(詞尾)和S(單獨成詞),那么下面句子(甲)的分詞結(jié)果就可以直接表示成如(乙)所示的逐字標注形式:
(甲)分詞結(jié)果:/上海/計劃/N/本/世紀/末/實現(xiàn)/人均/國內(nèi)/生產(chǎn)/總值/五千美元/
(乙)字標注形式:上/B海/E計/B劃/E N/S 本/s世/B 紀/E 末/S 實/B 現(xiàn)/E 人/B 均/E 國/B 內(nèi)/E生/B產(chǎn)/E總/B值/E 五/B千/M 美/M 元/E 。/S
首先需要說明,這里說到的“字”不只限于漢字。考慮到中文真實文本中不可避免地會包含一定數(shù)量的非漢字字符,本文所說的“字”,也包括外文字母、阿拉伯數(shù)字和標點符號等字符。所有這些字符都是構(gòu)詞的基本單元。當然,漢字依然是這個單元集合中數(shù)量最多的一類字符。
把分詞過程視為字的標注問題的一個重要優(yōu)勢在于,它能夠平衡地看待詞表詞和未登錄詞的識別問題。在這種分詞技術(shù)中,文本中的詞表詞和未登錄詞都是用統(tǒng)一的字標注過程來實現(xiàn)的。在學習架構(gòu)上,既可以不必專門強調(diào)詞表詞信息,也不用專門設(shè)計特定的未登錄詞(如人名、地名、機構(gòu)名)識別模塊。這使得分詞系統(tǒng)的設(shè)計大大簡化。在字標注過程中,所有的字根據(jù)預定義的特征進行詞位特性的學習,獲得一個概率模型。然后,在待分字串上,根據(jù)字與字之間的結(jié)合緊密程度,得到一個詞位的標注結(jié)果。最后,根據(jù)詞位定義直接獲得最終的分詞結(jié)果。總而言之,在這樣一個分詞過程中,分詞成為字重組的簡單過程。然而這一簡單處理帶來的分詞結(jié)果卻是令人滿意的。
2.1中文分詞的難點
1\歧義問題
最困難\最核心的問題:只用機械匹配進行分詞,其精度不可能高,不能滿足高標準要求.
交集型歧義\組合型歧義\真歧義
依靠上下文\語義來解決.
2\未登錄詞識別
By lvpei.cnblogs.com

浙公網(wǎng)安備 33010602011771號