中文分詞技術

2022-09-13 18:57:09 字數 4348 閱讀 8887

中文分詞技術(chinese word segmentation) 指將乙個漢字序列切分成乙個個單獨的詞。分詞就是將連續的字序列按照一定的規則重新組合成詞序列的過程

目前中文分詞演算法有以下5類:

在業務中,可以使用多種演算法進行比較選擇,其中比較選擇的原則有以下幾點:

其基本原理是按照一定的步長對文件取詞,把結果和詞典進行匹配,匹配成功則分詞成功,否則不予切分。這種方法實現簡單,實用性強,最大的缺點就是識別的成功率極大程度受限於詞庫的完整度

取詞的規則和演算法有許多,如:

其原理是以詞庫的最大長度為初始長度,視窗為1,從左到右對字串進行掃瞄匹配,匹配不成功則減小視窗

其步驟是:

取得詞庫中最長的詞的長度

從左到右擷取1得到的長度的字串

到詞典中進行匹配

匹配成功,則把該字串切分,餘下字串繼續進行2操作

匹配不成功,則將該字串去掉最後乙個字,餘下字串繼續進行3操作

重複上述過程,直到切分出所有詞為止

以「研究生命的起源」為例,假定詞典中的詞包含有:,切分步驟如下:

研究生  #第乙個詞匹配成功

命的起命的

命 #第二個詞匹配成功

的起源的起

的 #第三個詞匹配成功

起源 #第四個詞匹配成功

匹配結果為:「研究生 命 的 起源」mm在每次匹配過程中都要進行一次二分搜尋,演算法複雜度太高

nm則是在取到詞典中匹配的第乙個詞後,往詞後拼接下乙個字,拼接後的新詞在從詞典中尋找,如果詞典中有這個詞,則該詞一定會在鄰近位置

其步驟是:

取字串第乙個字

到詞典中進行匹配

匹配不成功,則拼接下乙個字,繼續進行2過程

匹配成功,則打乙個標記,拼接下乙個字,繼續到詞典中匹配,直到拼接後的字串不在詞典中,或者長度大於詞典詞的最大長度,則終止匹配,取被標記且字串最多的詞

重複上述過程,直到切分出所有詞為止

繼續以「研究生命的起源」進行分詞作為例子,切分步驟如下:

研究 #第乙個詞第一次匹配成功並標記

研究生 #第乙個詞第二次匹配成功並標記

研究生命 #超過詞典中最大長度3,則取詞:研究生

命 #第二個詞第一次匹配成功,並標記

命的 #第二個詞第二次匹配失敗,則取詞:命

的 #第三個詞第一次匹配成功,並標記

的起 #第三個詞第二次匹配失敗,則取詞:的

起源 #第四個詞匹配成功

匹配結果為:「研究生 命 的 起源」其原理與mm基本相同,只是掃瞄方向相反,是從右向左掃瞄,其步驟差不多,不再贅述。

繼續以「研究生命的起源」進行分詞作為例子,切分步驟如下:

的起源

起源   #第乙個詞匹配成功

生命的命的

的    #第二個詞匹配成功

究生命生命   #第三個詞匹配成功

研究   #第四個詞匹配成功

匹配結果為:「研究生 命 的 起源」該方法實際上是乙個比較演算法,使用mm和rmm切分後再對結果進行比較,按照上文說的比較原則選擇其中乙個最為結果。

例子「研究生命的起源」中

mm的結果為: 研究生 命 的 起源

rmm的結果為: 研究 生命 的 起源

詞數均為4,單字較少的為rmm,則

匹配結果為:研究 生命 的 起源該方法實際上也是乙個比較演算法,先找出字串中所有可能的詞,每個詞有乙個座標,相鄰兩個詞形成一條邊,根據座標既可以得到距離,找出從起點到終點中所有距離加起來最小的路徑,該路徑下所包含的詞就是切分結果

例子「研究生命的起源」中

所有可以切分的詞為:

可能的路徑有:「研究 生命 的 起源」、「研究生 命 的 起源」

若按照詞典排序後的索引值為座標,(只是舉例,可以根據場景設計座標方法)

排序後的詞典為:

則座標分別為:和,記錄分別為:6、9,

選擇距離為6的匹配結果

匹配結果為:研究 生命 的 起源

實際上座標有很多種演算法,可以是二維座標,並把每個詞生成乙個特徵向量,通過計算向量值達到比較的目的

該方法是沒有詞典的,主要思想是通過計算相鄰的字同時出現的次數來決定是否構成詞,次數越多越越有可能構成詞。

假設識別的文字已經統計好了所有可能的切分詞,那麼串聯這些詞的方式就有多種,從維度上理解,即為選擇第乙個切分詞,則下乙個切分詞也是詞的概率。

主要的統計模型有:

假設字串s分成m詞,則可以簡單描述為:s=w1w2w3...wm

則出現s的概率為:p(s) = p(w1)p(w2|w1)p(w3|w1w2)...p(wm|w1w2...wm-1) = \(\prod_^\)p(wi|w1w2...wi-1)

結合馬爾科夫假設(markov assumption),wi的出現只與之前的n-1個詞有關:p(wi|w1w2...wi-1) = p(wi|wi-n+1wi-n+2...wi-1)

p(s) =\(\prod_^\)p(wi|wi-n+1wi-n+2...wi-1)

根據公式:

在實踐中用的最多的就是bigram和trigram了,而且效果很不錯

高於三元的用的很少,因為訓練它需要更龐大的語料,而且資料稀疏嚴重,時間複雜度高,精度卻提高的不多

其基本思想是針對語義、句法的分析對文字進行分詞

具體方法有:

在2023年之前,自動分詞方法基本上是基於詞(或詞典)的,在此基礎上可進一步分成基於規則和基於統計的兩大類。第一篇基於字標註(character-based tagging)的分詞**發表在2023年第一屆sighan研討會上,當時並未引起學界的重視。一年後,xue在最大熵(maximum entropy,me)模型上實現的基於字的分詞系統參加了bakeoff-2003的評測,在as語料庫的封閉測試專案上獲得第二名),然而其oov 召回率roov(0.729)卻位居榜首。xue還在cityu語料庫的封閉測試中獲得第三名,其roov(0.670)仍然是該項比賽中最高的。儘管在bakeoff2003中各種分詞技術的優劣尚難分仲伯,但既然未登入詞對分詞精度的影響比分詞歧義至少大5倍以上,我們自然看好這種能獲致最高oov召回的分詞方法。這一**果然在bakeoff2005上得到了證實。

基於字標註的分詞系統在bakeoff-2005上嶄露頭角。其中low的系統採用最大熵模型,在四項開放測試中奪得三項冠軍(as,cityu,pku)和一項亞軍(msra)。tseng的系統採用條件隨機場模型,在四項封閉測試中取得兩項冠軍(cityu, msra)、一項亞軍(pku)和一項季軍(as)。到了bakeoff-2006,基於字的分詞系統已遍地開花。其中,筆者用條件隨機場模型實現的基於字標註的分詞系統,在參加的六項分詞評測中,奪得四個第一(cityu開放,as開放,as封閉,ctb封閉)和兩個第三(ctb開放,cityu封閉)。

以往的分詞方法,無論是基於規則的還是基於統計的,一般都依賴於乙個事先編制的詞表(詞典)。自動分詞過程就是通過詞表和相關資訊來做出詞語切分的決策。與此相反,基於字標註的分詞方法實際上是構詞方法。即把分詞過程視為字在字串中的標註問題。由於每個字在構造乙個特定的詞語時都佔據著乙個確定的構詞位置(即詞位),假如規定每個字最多只有四個構詞位置:即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

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

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

中文分詞技術

中文分詞又叫中文切詞,中文劃詞等,是seo必須掌握的乙個基礎知識。現有的中文分詞演算法可分為三大類 基於字串匹配的分詞方法 基於理解的分詞方法和基於統計的分詞方法。1 基於字串匹配的分詞方法 這種方法又叫做機械分詞方法,它是按照一定的策略將待分析的漢字串與乙個充分大的機器詞典中的詞條進行配,若在詞典...

中文分詞技術

中文分詞技術屬於自然語言處理技術範疇,對於一句話,人可以通過自己的知識來明白哪些是詞,哪些不是詞,但如何讓計算機也能理解?其處理過程就是分詞演算法。現有的分詞演算法可分為三大類 基於字串匹配的分詞方法 基於理解的分詞方法和基於統計的分詞方法。1 基於字串匹配的分詞方法 這種方法又叫做機械分詞方法,它...

中文分詞技術

1 正向最大匹配演算法 例項 s1 計算語言學課程是三個課時 設定最大詞長maxlen 5 s2 字典中含有三個詞 計算語言學 課程 課時 1 s2 s1不為空,從s1左邊取出候選子串w 計算語言學 2 查詞表,計算語言學 在詞表中,將w加入到s2中,s2 計算語言學 並將w從s1中去掉,此時s1 ...