中文分詞演算法筆記

2022-07-18 17:15:13 字數 3526 閱讀 7547

中文分詞基本演算法主要分類

基於詞典的方法、基於統計的方法、基於規則的方法、(傳說中還有基於理解的-神經網路-專家系統,按下不表)

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,分正向和逆向)

對分詞詞典按詞頻大小順序排列,並註明長度,降低時間複雜度。

優點:易於實現

缺點:匹配速度慢。對於未登入詞的補充較難實現。缺乏自學習。

1.2基於統計的分詞(無字典分詞)

主要思想:上下文中,相鄰的字同時出現的次數越多,就越可能構成乙個詞。因此字與字相鄰出現的概率或頻率能較好的反映詞的可信度。

主要統計模型為:n元文法模型(n-gram)、隱馬爾科夫模型(hidden markov model, hmm)

1.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個詞有關。

1.2.2隱馬爾科夫模型思想

1.3基於規則的分詞(基於語義)

通過模擬人對句子的理解,達到識別詞的效果,基本思想是語義分析,句法分析,利用句法資訊和語義資訊對文字進行分詞。自動推理,並完成對未登入詞的補充是其優點。不成熟.

具體概念:有限狀態機\語法約束矩陣\特徵詞庫

1.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

首先需要說明,這裡說到的「字」不只限於漢字。考慮到中文真實文字中不可避免地會包含一定數量的非漢字字元,本文所說的「字」,也包括外文本母、阿拉伯數字和標點符號等字元。所有這些字元都是構詞的基本單元。當然,漢字依然是這個單元集合中數量最多的一類字元。

把分詞過程視為字的標註問題的乙個重要優勢在於,它能夠平衡地看待詞表詞和未登入詞的識別問題。在這種分詞技術中,文字中的詞表詞和未登入詞都是用統一的字標註過程來實現的。在學習架構上,既可以不必專門強調詞表詞資訊,也不用專門設計特定的未登入詞(如人名、地名、機構名)識別模組。這使得分詞系統的設計大大簡化。在字標註過程中,所有的字根據預定義的特徵進行詞位特性的學習,獲得乙個概率模型。然後,在待分字串上,根據字與字之間的結合緊密程度,得到乙個詞位的標註結果。最後,根據詞位定義直接獲得最終的分詞結果。總而言之,在這樣乙個分詞過程中,分詞成為字重組的簡單過程。然而這一簡單處理帶來的分詞結果卻是令人滿意的。

2.1中文分詞的難點

1\歧義問題

最困難\最核心的問題:只用機械匹配進行分詞,其精度不可能高,不能滿足高標準要求.

交集型歧義\組合型歧義\真歧義

依靠上下文\語義來解決.

2\未登入詞識別

by lvpei.cnblogs.com

中文分詞演算法

基於詞的頻度統計的分詞方法 基於知識理解的分詞方法 中文分詞演算法基本上可以分基於詞典的演算法 詞庫匹配以及基於詞頻的方法 將詞典中所有的詞按照從長到短的順序在文章中進行檢索,直至文章結束。效率比較低 漢字欄位與乙個 充分大 的詞典進行匹配,如果匹配成功,則識別出乙個詞。根據掃瞄方向的不同分為正向匹...

中文分詞演算法

中文分詞演算法現在一般分為三類 基於字串匹配,基於理解,基於統計的分詞。基於字串匹配分詞 機械分詞演算法。將待分的字串與乙個充分大的機器詞典中的詞條進行匹配。分為正向匹配和逆向匹配 最大長度匹配和最小長度匹配 單純分詞和分詞與標註過程相結合的一體化方法。所以常用的有 正向最大匹配,逆向最大匹配,最少...

《中文分詞演算法研究》

看完了才發現作者是經濟管理學院的。這是篇08年的 目前國內外對於中文分詞的主要研究成果分為以下幾種 正向最大匹配法 反向最大匹配方法 分詞與詞性標註一體化方法 最佳匹配法 專家系統方法 最少分詞詞頻選擇方法 神經網路方法等。ictclas institute of computing technol...