中文分詞主要有三種技術,分別為:
基於統計的分詞模型其主要思想是把每個詞看作是由詞的最小單位的各個字組成的,如果相連的字在不同的文本中出現的次數越多,就證明這相連的字很可能就是壹個詞。
其壹般分為兩步:
語言模型中常用的為n元模型,所謂n元模型就是在估算條件概率時,忽略距離大於等於n的上文此的影響,其概率計算公式如下:
壹般使用頻率計數的比例來計算n元條件概率
當n越大時,模型包含的詞序信息越豐富,同時計算量隨之增大。與此同時,長度越長的文本序列出現的次數也會減少。同時為避免出現分母為零的情況,壹般在n元模型中與要配合相應得平滑算法來解決這個問題,例如拉普拉斯平滑等
隱含馬爾可夫模型是將分詞作字在字串中得序列標註任務來實現的,其基本思路是:每個字在構造壹個特定的詞語時都占據著壹個確定的構詞位置。
用數學抽象表示如下: 用 代表輸入的句子,n為句子長度, 代表輸出的標簽,理想輸出為:
我麽們假設每個字的輸出僅僅與當前字有關,就可以得到:
通過貝葉斯公式我們可以把最大化 轉化為最大化
針對 作馬爾可夫假設,得到:
對 有:
作齊次馬爾可夫假設的計算公式如下(這個公示表示,每個輸出僅僅與上壹個輸出有關):
於是得到:
~
在HMM中,求解 的常用方法是Veterbi算法,這個算法的核心思想是: 如果最終的最優化路徑經過某個 ,那麽從初始節點到 點的路徑必然也是壹個最優路徑。
最常用的就是先基於詞典的方式進行分詞,然後再用統計分詞方法進行輔助。
jieba分詞結合了基於規則和基於統計這兩類方法。
jieba提供了三種分詞模式:
除了可以進行分詞外,還可以進行詞性標註。
下面是各種分詞工具比較:
圖片 來自
還有 NLPIR漢語分詞系統 ,主要功能包括中文分詞;英文分詞;詞性標註;命名實體識別;新詞識別;關鍵詞提取;支持用戶專業詞典與微博分析。NLPIR系統支持多種編碼、多種操作系統、多種開發語言與平臺