當前位置:成語大全網 - 新華字典 - Python中文分詞的原理妳知道嗎?

Python中文分詞的原理妳知道嗎?

中文分詞,即 Chinese Word Segmentation,即將壹個漢字序列進行切分,得到壹個個單獨的詞。表面上看,分詞其實就是那麽回事,但分詞效果好不好對信息檢索、實驗結果還是有很大影響的,同時分詞的背後其實是涉及各種各樣的算法的。

中文分詞與英文分詞有很大的不同,對英文而言,壹個單詞就是壹個詞,而漢語是以字為基本的書寫單位,詞語之間沒有明顯的區分標記,需要人為切分。根據其特點,可以把分詞算法分為四大類:

基於規則的分詞方法

基於統計的分詞方法

基於語義的分詞方法

基於理解的分詞方法

下面我們對這幾種方法分別進行總結。

基於規則的分詞方法

這種方法又叫作機械分詞方法、基於字典的分詞方法,它是按照壹定的策略將待分析的漢字串與壹個“充分大的”機器詞典中的詞條進行匹配。若在詞典中找到某個字符串,則匹配成功。該方法有三個要素,即分詞詞典、文本掃描順序和匹配原則。文本的掃描順序有正向掃描、逆向掃描和雙向掃描。匹配原則主要有最大匹配、最小匹配、逐詞匹配和最佳匹配。

最大匹配法(MM)。基本思想是:假設自動分詞詞典中的最長詞條所含漢字的個數為 i,則取被處理材料當前字符串序列中的前 i 個字符作為匹配字段,查找分詞詞典,若詞典中有這樣壹個 i 字詞,則匹配成功,匹配字段作為壹個詞被切分出來;若詞典中找不到這樣的壹個 i 字詞,則匹配失敗,匹配字段去掉最後壹個漢字,剩下的字符作為新的匹配字段,再進行匹配,如此進行下去,直到匹配成功為止。統計結果表明,該方法的錯誤率 為 1/169。

逆向最大匹配法(RMM)。該方法的分詞過程與 MM 法相同,不同的是從句子(或文章)末尾開始處理,每次匹配不成功時去掉的是前面的壹個漢字。統計結果表明,該方法的錯誤率為 1/245。

逐詞遍歷法。把詞典中的詞按照由長到短遞減的順序逐字搜索整個待處理的材料,壹直到把全部的詞切分出來為止。不論分詞詞典多大,被處理的材料多麽小,都得把這個分詞詞典匹配壹遍。

設立切分標誌法。切分標誌有自然和非自然之分。自然切分標誌是指文章中出現的非文字符號,如標點符號等;非自然標誌是利用詞綴和不構成詞的詞(包 括單音詞、復音節詞以及象聲詞等)。設立切分標誌法首先收集眾多的切分標誌,分詞時先找出切分標誌,把句子切分為壹些較短的字段,再用 MM、RMM 或其它的方法進行細加工。這種方法並非真正意義上的分詞方法,只是自動分詞的壹種前處理方式而已,它要額外消耗時間掃描切分標誌,增加存儲空間存放那些非 自然切分標誌。

最佳匹配法(OM)。此法分為正向的最佳匹配法和逆向的最佳匹配法,其出發點是:在詞典中按詞頻的大小順序排列詞條,以求縮短對分詞詞典的檢索時 間,達到最佳效果,從而降低分詞的時間復雜度,加快分詞速度。實質上,這種方法也不是壹種純粹意義上的分詞方法,它只是壹種對分詞詞典的組織方式。OM 法的分詞詞典每條詞的前面必須有指明長度的數據項,所以其空間復雜度有所增加,對提高分詞精度沒有影響,分詞處理的時間復雜度有所降低。

此種方法優點是簡單,易於實現。但缺點有很多:匹配速度慢;存在交集型和組合型歧義切分問題;詞本身沒有壹個標準的定義,沒有統壹標準的詞集;不同詞典產生的歧義也不同;缺乏自學習的智能性。

基於統計的分詞方法

該方法的主要思想:詞是穩定的組合,因此在上下文中,相鄰的字同時出現的次數越多,就越有可能構成壹個詞。因此字與字相鄰出現的概率或頻率能較好地反映成詞的可信度。可以對訓練文本中相鄰出現的各個字的組合的頻度進行統計,計算它們之間的互現信息。互現信息體現了漢字之間結合關系的緊密程度。當緊密程 度高於某壹個閾值時,便可以認為此字組可能構成了壹個詞。該方法又稱為無字典分詞。

該方法所應用的主要的統計模型有:N 元文法模型(N-gram)、隱馬爾可夫模型(Hiden Markov Model,HMM)、最大熵模型(ME)、條件隨機場模型(Conditional Random Fields,CRF)等。

在實際應用中此類分詞算法壹般是將其與基於詞典的分詞方法結合起來,既發揮匹配分詞切分速度快、效率高的特點,又利用了無詞典分詞結合上下文識別生詞、自動消除歧義的優點。

基於語義的分詞方法

語義分詞法引入了語義分析,對自然語言自身的語言信息進行更多的處理,如擴充轉移網絡法、知識分詞語義分析法、鄰接約束法、綜合匹配法、後綴分詞法、特征詞庫法、矩陣約束法、語法分析法等。

擴充轉移網絡法

該方法以有限狀態機概念為基礎。有限狀態機只能識別正則語言,對有限狀態機作的第壹次擴充使其具有遞歸能力,形成遞歸轉移網絡 (RTN)。在RTN 中,弧線上的標誌不僅可以是終極符(語言中的單詞)或非終極符(詞類),還可以調用另外的子網絡名字分非終極符(如字或字串的成詞條件)。這樣,計算機在 運行某個子網絡時,就可以調用另外的子網絡,還可以遞歸調用。詞法擴充轉移網絡的使用, 使分詞處理和語言理解的句法處理階段交互成為可能,並且有效地解決了漢語分詞的歧義。

矩陣約束法

其基本思想是:先建立壹個語法約束矩陣和壹個語義約束矩陣, 其中元素分別表明具有某詞性的詞和具有另壹詞性的詞相鄰是否符合語法規則, 屬於某語義類的詞和屬於另壹詞義類的詞相鄰是否符合邏輯,機器在切分時以之約束分詞結果。

基於理解的分詞方法

基於理解的分詞方法是通過讓計算機模擬人對句子的理解,達到識別詞的效果。其基本思想就是在分詞的同時進行句法、語義分析,利用句法信息和語義信息來處理歧義現象。它通常包括三個部分:分詞子系統、句法語義子系統、總控部分。在總控部分的協調下,分詞子系統可以獲得有關詞、句子等的句法和語義信息來對分詞歧義進行判斷,即它模擬了人對句子的理解過程。這種分詞方法需要使用大量的語言知識和信息。目前基於理解的分詞方法主要有專家系統分詞法和神經網絡分詞法等。

專家系統分詞法

從專家系統角度把分詞的知識(包括常識性分詞知識與消除歧義切分的啟發性知識即歧義切分規則)從實現分詞過程的推理機中獨立出來,使知識庫的維護與推理機的實現互不幹擾,從而使知識庫易於維護和管理。它還具有發現交集歧義字段和多義組合歧義字段的能力和壹定的自學習功能。

神經網絡分詞法

該方法是模擬人腦並行,分布處理和建立數值計算模型工作的。它將分詞知識所分散隱式的方法存入神經網絡內部,通過自學習和訓練修改內部權值,以達到正確的分詞結果,最後給出神經網絡自動分詞結果,如使用 LSTM、GRU 等神經網絡模型等。

神經網絡專家系統集成式分詞法

該方法首先啟動神經網絡進行分詞,當神經網絡對新出現的詞不能給出準確切分時,激活專家系統進行分析判斷,依據知識庫進行推理,得出初步分析,並啟動學習機制對神經網絡進行訓練。該方法可以較充分發揮神經網絡與專家系統二者優勢,進壹步提高分詞效率。

以上便是對分詞算法的基本介紹。