https://www.cnblogs.com/ysherlock/p/7822304.html
基於詞典的方法、基於統計的方法、基於規則的方法
1、基於詞典的方法(字符串匹配,機械分詞方法)
定義:按照一定策略將待分析的漢字串與一個大機器詞典中的詞條進行匹配,若在詞典中找到某個字符串,則匹配成功。
按照掃描方向的不同:正向匹配和逆向匹配
按照長度的不同:最大匹配和最小匹配
1.1正向最大匹配思想MM
1》從左向右取待切分漢語句的m個字符作為匹配字段,m為大機器詞典中最長詞條個數。
2》查找大機器詞典並進行匹配。若匹配成功,則將這個匹配字段作為一個詞切分出來。
若匹配不成功,則將這個匹配字段的最后一個字去掉,剩下的字符串作為新的匹配字段,進行再次匹配,重復以上過程,直到切分出所有詞為止。
1.2逆向最大匹配算法RMM
該算法是正向最大匹配的逆向思維,匹配不成功,將匹配字段的最前一個字去掉,實驗表明,逆向最大匹配算法要優於正向最大匹配算法。
1.3 雙向最大匹配法(Bi-directction Matching method,BM)
雙向最大匹配法是將正向最大匹配法得到的分詞結果和逆向最大匹配法的到的結果進行比較,從而決定正確的分詞方法。據SunM.S. 和 Benjamin K.T.(1995)的研究表明,中文中90.0%左右的句子,正向最大匹配法和逆向最大匹配法完全重合且正確,只有大概9.0%的句子兩種切分方法得到 的結果不一樣,但其中必有一個是正確的(歧義檢測成功),只有不到1.0%的句子,或者正向最大匹配法和逆向最大匹配法的切分雖重合卻是錯的,或者正向最 大匹配法和逆向最大匹配法切分不同但兩個都不對(歧義檢測失敗)。這正是雙向最大匹配法在實用中文信息處理系統中得以廣泛使用的原因所在。
1.3設立切分標志法
收集切分標志,在自動分詞前處理切分標志,再用MM、RMM進行細加工。
1.4最佳匹配(OM,分正向和逆向)
對分詞詞典按詞頻大小順序排列,並注明長度,降低時間復雜度。
優點:易於實現
缺點:匹配速度慢。對於未登錄詞的補充較難實現。缺乏自學習。
2、基於統計的分詞(無字典分詞)
主要思想:上下文中,相鄰的字同時出現的次數越多,就越可能構成一個詞。因此字與字相鄰出現的概率或頻率能較好的反映詞的可信度。
主要統計模型為:N元文法模型(N-gram)、隱馬爾科夫模型(Hidden Markov Model, HMM)
2.1N-gram模型思想
模型基於這樣一種假設,第n個詞的出現只與前面N-1個詞相關,而與其它任何詞都不相關,整句的概率就是各個詞出現概率的乘積 .
在實踐中用的最多的就是bigram和trigram了,而且效果很不錯。高於四元的用的很少,因為訓練它需要更龐大的語料,而且數據稀疏嚴重,時間復雜度高,精度卻提高的不多。
2.2隱馬爾科夫模型思想
3、基於規則的分詞(基於語義)
通過模擬人對句子的理解,達到識別詞的效果,基本思想是語義分析,句法分析,利用句法信息和語義信息對文本進行分詞。自動推理,並完成對未登錄詞的補充是其優點。不成熟.
具體概念:有限狀態機\語法約束矩陣\特征詞庫
4、基於字標注的中文分詞方法
以往的分詞方法,無論是基於規則的還是基於統計的,一般都依賴於一個事先編制的詞表(詞典)。自動分詞過程就是通過詞表和相關信息來做出詞語切分的決策。與此相反,基於字標注的分詞方法實際上是構詞方法。即把分詞過程視為字在字串中的標注問題。由於每個字在構造一個特定的詞語時都占據着一個確定的構詞位置(即詞位),假如規定每個字最多只有四個構詞位置:即B(詞首),M (詞中),E(詞尾)和S(單獨成詞),那么下面句子(甲)的分詞結果就可以直接表示成如(乙)所示的逐字標注形式:
(甲)分詞結果:/上海/計划/N/本/世紀/末/實現/人均/國內/生產/總值/五千美元/
(乙)字標注形式:上/B海/E計/B划/E N/S 本/s世/B 紀/E 末/S 實/B 現/E 人/B 均/E 國/B 內/E生/B產/E總/B值/E 五/B千/M 美/M 元/E 。/S
首先需要說明,這里說到的字不只限於漢字。考慮到中文真實文本中不可避免地會包含一定數量的非漢字字符,本文所說的字,也包括外文字母、阿拉伯數 字和標點符號等字符。所有這些字符都是構詞的基本單元。當然,漢字依然是這個單元集合中數量最多的一類字符。
把分詞過程視為字的標注問題的一個重要優勢在於,它能夠平衡地看待詞表詞和未登錄詞的識別問題。在這種分詞技術中,文本中的詞表詞和未登錄詞都是用統一的字標注過程來實現的。在學習架構上,既可以不必專門強調詞表詞信息,也不用專門設計特定的未登錄詞(如人名、地名、機構名)識別模塊。這使得分詞系統的設計大大簡化。在字標注過程中,所有的字根據預定義的特征進行詞位特性的學習,獲得一個概率模型。然后,在待分字串上,根據字與字之間的結合緊密程度,得到一個詞位的標注結果。最后,根據詞位定義直接獲得最終的分詞結果。總而言之,在這樣一個分詞過程中,分詞成為字重組的簡單過程。然而這一簡單處理帶來的分 詞結果卻是令人滿意的。
https://www.jianshu.com/p/6c085bf1086f
中文分詞
將一句話分解成一個個詞,英文中可以用空格來做,而中文需要用一些技術來處理。
三類分詞算法:
1. 基於字符串匹配:
將漢字串與詞典中的詞進行匹配,如果在詞典中找到某個字符串,則識別出一個詞。
優點,速度快,都是O(n)時間復雜度,實現簡單。
缺點,對歧義和未登錄詞處理不好。
此類型中常用的幾種分詞方法有:
①正向最大匹配法:
假設詞典中最大詞條所含的漢字個數為n個,取待處理字符串的前n個字作為匹配字段。若詞典中含有該詞,則匹配成功,分出該詞,然后從被比較字符串的n+1處開始再取n個字組成的字段重新在詞典中匹配;如果沒有匹配成功,則將這n個字組成的字段的最后一位剔除,用剩下的n一1個字組成的字段在詞典中進行匹配,如此進行下去,直到切分成功為止。(鏈接:http://www.jianshu.com/p/e978053b0b95)
②逆向最大匹配法:
與正向的區別在於如果匹配不成功則減去最前面的一個字。
③最少切分
使每一句中切出的詞數最少。
2. 基於理解:
通常包括三個部分:分詞(用來獲得有關詞)、句法語義(利用句法和語義信息來對分詞歧義進行判斷)、總控。
3. 基於統計:
對語料中相鄰共現的各個字的組合的頻度進行統計,將概率最大的分詞結果作為最終結果。常見的模型有HMM和CRF。
優點,能很好處理歧義和未登錄詞問題。
缺點,需要大量的人工標注數據,以及較慢的分詞速度。