信息檢索——分詞處理


在全文檢索中,分詞處理對性能的影響很大,包括索引大小、檢索速度、准確度等方面。

一個好的分詞處理應該具備哪些特性呢?

1)速度、准確度

2)自定義詞典

3)對英文、數字符號、日期、繁簡轉換等的優化

 

中文分詞算法大概分為兩大類

1、字符串匹配(基於詞典)

  這一算法其實就是使用字典,與字典中的詞想匹配,來達到分詞效果,時間復雜度O(N),但對沒有登記的詞需要其他算法處理,主要用到Trie樹來保存詞典,而具體分詞算法有很多種:  

1.1正向最大匹配思想MM

1)從左向右取待切分漢語句的m個字符作為匹配字段,m為大機器詞典中最長詞條個數。

2)查找大機器詞典並進行匹配。若匹配成功,則將這個匹配字段作為一個詞切分出來。

若匹配不成功,則將這個匹配字段的最后一個字去掉,剩下的字符串作為新的匹配字段,進行再次匹配,重復以上過程,直到切分出所有詞為止。

1.2鄰近匹配算法

鄰近匹配算法是正向最大匹配算法的改進,因為正向正向最大匹配算法對每個不存在的長字符串都要進行一次二分搜索,算法復雜度太高,可以利用同一個首字符下的詞條按升序排列這一條件,在找到某個字符串后,在其后增加一個字得到一個新字串,如果新字串在詞典中出現,那么新詞一定在原字串的后面,且相隔位置不會太遠。這樣就可以加快匹配進程。

1.3逆向最大匹配算法RMM

該算法是正向最大匹配的逆向思維(最大匹配的順序不是從首字母開始,而是從末尾開始),匹配不成功,將匹配字段的最前一個字去掉,實驗表明,逆向最大匹配算法要優於正向最大匹配算法。

1.4雙向最大匹配法(Bi-directction Matching method,BM)

雙向最大匹配法是將正向最大匹配法得到的分詞結果和逆向最大匹配法的到的結果進行比較,從而決定正確的分詞方法。據SunM.S. 和 Benjamin K.T.(1995)的研究表明,中文中90.0%左右的句子,正向最大匹配法和逆向最大匹配法完全重合且正確,只有大概9.0%的句子兩種切分方法得到的結果不一樣,但其中必有一個是正確的(歧義檢測成功),只有不到1.0%的句子,或者正向最大匹配法和逆向最大匹配法的切分雖重合卻是錯的,或者正向最大匹配法和逆向最大匹配法切分不同但兩個都不對(歧義檢測失敗)。這正是雙向最大匹配法在實用中文信息處理系統中得以廣泛使用的原因所在。

1.5最短路徑匹配算法(Shortest path match)

最短路徑匹配算法是根據詞典,找出字串中所有可能的詞(也稱全分詞),然后構造詞語切分有向無環圖。這樣,每一個詞對應圖中的一條有向邊。若賦給相應的邊長一個權值(該權值可以是常數,也可以是構成的詞的屬性值),然后針對該切分圖,在起點到終點的所有路徑中,求出最短路徑,該最短路徑上包含的詞就是該句子的切分結果。最短路徑匹配算法的規則是使切分處理的詞數最少,符合漢語自身的語言規律。但是,同樣發現在實際應用中,同樣不能正確切分出許多不完全符合規則的句子。如果有多條最短路徑,往往只能保留其中一個結果,這樣對其他同樣符合要求的結果是不公平的,也缺乏理論依據。

1.6基於統計的最短路徑分詞算法

為進一步提供切分精度,可以在詞表中增加詞的屬性值,即為每一個詞給出一個權重,這樣每個詞在字符串的權重就不同。最簡單的詞權重可以用詞的詞頻表示,具體權重值可以通過該規模語料庫獲得。

 

2、基於統計的分詞方式

主要思想:上下文中,相鄰的字同時出現的次數越多,就越可能構成一個詞。因此字與字相鄰出現的概率或頻率能較好的反映詞的可信度。
主要統計模型為:N元文法模型(N-gram)、隱馬爾科夫模型(Hidden Markov Model, HMM)

2.1N-gram模型思想

  模型基於這樣一種假設,第n個詞的出現只與前面N-1個詞相關,而與其它任何詞都不相關,整句的概率就是各個詞出現概率的乘積 .我們給定一個詞,然后猜測下一個詞是什么。當我說“艷照門”這個詞時,你想到下一個詞是什么呢?我想大家很有可能會想到“***”,基本上不會有人會想到“陳志傑”吧。N-gram模型的主要思想就是這樣的。  
  對於一個句子T,我們怎么算它出現的概率呢?假設T是由詞序列W1,W2,W3,…Wn組成的,那么P(T)=P(W1W2W3…Wn)=P(W1)P(W2|W1)P(W3|W1W2)…P(Wn|W1W2…Wn-1)
但是這種方法存在兩個致命的缺陷:一個缺陷是參數空間過大,不可能實用化;另外一個缺陷是數據稀疏嚴重。
  為了解決這個問題,我們引入了馬爾科夫假設:一個詞的出現僅僅依賴於它前面出現的有限的一個或者幾個詞。
  如果一個詞的出現僅依賴於它前面出現的一個詞,那么我們就稱之為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)
  如果一個詞的出現僅依賴於它前面出現的兩個詞,那么我們就稱之為trigram。
  在實踐中用的最多的就是bigram和trigram了,而且效果很不錯。高於四元的用的很少,因為訓練它需要更龐大的語料,而且數據稀疏嚴重,時間復雜度高,精度卻提高的不多。設w1,w2,w3,...,wn是長度為n的字符串,規定任意詞wi 只與它的前兩個相關,得到三元概率模型,以此類推,N元模型就是假設當前詞的出現概率只同它前面的N-1個詞有關。


2.2隱馬爾科夫模型思想

  一文搞懂HMM(隱馬爾科夫模型)

  條件隨機場(CRF) 就是基於遵循馬爾可夫性的概率圖模型,CRF優於HMM的地方在於,它可以引入更多的特征,包括詞語本身特征和詞語所在上下文的特征,而非單詞本身。從某種角度講,它結合了HMM和最大熵方法

3 神經網絡

 

 參考資料

中文分詞基本算法介紹 http://dsqiu.iteye.com/blog/1704960


免責聲明!

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



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