自然語言處理中“中文分詞”技術中“自動切分”的幾點理解

4 評論 6752 瀏覽 44 收藏 11 分鐘

本文主要針對其中最常用的一套《北大規范》為依據,來講解中文詞匯自動切分的幾個重點流程。enjoy~

概述

在人工智能中,自然語言處理是一門極其深奧的領域,自然語言處理在廣義上分為兩部分,第一部分自然語言理解,是指讓電腦“聽懂”人類的語言;第二部分為自然語言生成,是指把計算機數據轉化成人類可以聽懂的語言;而自然語言理解和產生的前提是對語言能夠做出全面的解析,而在中文中,漢語詞匯是語言獨立運用的最小語言單位,因此對漢語中詞匯的切分顯得尤為的重要,隨著自然語言的應用逐漸發展,一套完整而標準的漢語分詞規范就顯得特別重要,隨著近幾十年的發展,已經逐漸形成兩套常用且較為規范的語言處理規范,本文主要針對其中最常用的一套《北大規范》為依據,來講解中文詞匯自動切分的幾個重點流程。

在《北大規范》中一共含有40個詞類,其中包括名詞、動詞、代詞、形容詞、數詞、量詞、副詞、介詞、連詞、助詞、語氣詞、嘆詞、象聲詞、時間詞、處所詞、方位詞、區別詞、狀態詞、副動詞、名動詞、副形詞、名形詞、前綴、后綴、成語、簡稱、習用語、標點。所有的句子都是通過不同的詞類組成,下面就為大家講解一下中文分詞的幾個流程

歧義

現代漢語的復音詞結構,使少量的的字符通過排列組合來表示大量的詞匯,最容易出現的問題是歧義問題,歧義問題在漢語中普遍存在,因此在中文如何消除歧義問題是中文分詞重點解決的問題,簡單給大家大家舉個例子:“結合成”這個詞,在分詞過程中就有多種分詞情況,如:“結合”“成”或“結”“合成”兩種,這只是其中一種情況,通常情況下,在一個句子中多個詞匯存在這種問題,這樣就無形中給分詞造成了很多麻煩,這只是一個小插曲,大家不要認為這樣的情況嚇到了,下邊我就給大家重點介紹一下中分分詞中的幾個步驟:

分詞流程

先來個圖理解一下:

1. 句子切分

在中文分詞是,有時輸入的不單單是一句話,有可能是一整篇文章或一整段話,所以先要進行預處理,句子切分是中分分詞的一個預處理階段,主要是對輸入的整篇文章或整段句子進行句子切分,一篇文章是被一些特殊的標點符號分隔的字符串,這些標點符號包括“省略號”“單引號”“單引號”“多引號”“逗號”“冒號”“感嘆號”“問號”“換行”等,句子切分就是依靠這些分隔的標點符號,將整段或整篇文章分隔成一個個的字符串,存儲起來,為后續中文分詞做準備。

2. 分詞詞典

在詞匯切分中,中文詞庫提供了相應的詞匯的詞典,其中包括一元語言詞匯詞典、二元語言詞匯詞典、人名和地名詞典、組織機構詞典、專有名詞機構詞典,這些在詞匯詞典在切分過程起到重要作用,大家可以在相應的地方下載。

給大家簡單介紹一下詞典的結構,一元詞典結構如下,一元詞典的第一列是詞,第二列是第一詞性,第二列為第一次性的出現的詞頻(次數),第三列為第二次性,第四列為第二詞性的詞頻,以此類推,關于詞性可參照詞性對照表,此處不做注釋。

二元詞典的結構如圖,二元詞典的第一列是相鄰詞中間用@隔開,例如:“像@跳梁小丑”,表示前一個詞是像,后邊的一個詞是跳梁小丑,第二列是該相鄰詞在預料庫中出現的次數,

人名詞典的機構如圖:詞典的第一列是詞匯,第二列為第一個元模式的標簽,第三列為第二個元模式的標簽,第四列為第二個元模式的標簽,以此類推,具體的元模式標簽表可參照元模式表,例如:B代表姓氏,C代表名1,D代表名2,E是單名,F為名前綴等,張三的組成為BC,周潤發的名字的組合是BCD,老李的組合為FB。具體

3. 粗分

(1)字符切分

將上文句子切分得到的句子字符串數組再次切分,將每個句子字符串轉化為成單個字符,包括單個漢語字符,單個英文字符、單個數字字符,例如,我是中華人民共和國13億人民中的一員,變成一個數組,如:我/是/中/華/人/民/共/和/國/1/3/億/人/民/中/的/一/員/,存儲到一個新的數組中。

(2)構建初級一元詞網

構建一元詞網,是將得到的字符數組進行一元詞典查詢,將獲得的字符結果進行一元詞典最大匹配,查找詞匯,將查到的所有詞匯和帶有詞性、詞頻等信息存儲到一個數組中,構建一個初級的一元詞網。

查詢詞典的過程就是最大匹配的過程,具體的匹配方式如:中華人民共和國,從“中”字開始查詞典,找到與“中”字成詞的詞,全部取出,如:“中”“中華”單個字也算一個詞,然后在從“華”字開始查詢詞典找到與華字成詞的詞如:“華人”;依次往下查,然后把整個句子中所有的字符全部查詢一遍,將所有的成詞全部返回,同時需要記錄每個詞的詞性、詞頻、在詞典的位置(行和列的位置),形成初級一元詞網。

(3)原子切分

原子切分的目的是,將初級一元詞網中的非漢字字符,如英文字符或數字字符進行合并,形成一個新的詞匯,并為其賦予詞性,構成原子詞,如:3,.,1,4,1,5,9,合并成3.14159,如i,p,h,o,n,e,合并成iphone,將處理后的結果,重新變成一個一元詞網,形成一級詞網。

(4)二元詞網

用一元分詞的結果查詢二元詞典,最大匹配查找到二元詞典(此處匹配的方式和一元匹配相同),生成二元詞圖,同時需要返回該詞的詞頻。二元詞圖為像@跳梁小丑

4. 消歧

通過計算整個句子所需要的最小權重獲取最有結果,整個句子所需要的權重是所有詞匯詞頻之和的倒數(權重是詞頻的倒數)舉個例子:

“中華人民共和國”根據二元詞典的匹配結果是

中@華 ???15

華@人 ???14 ????華@民 ???13

民@國 ????12 ????民@人

人@民 ???19

民@國,將這些詞拼成完整句子的權重最小的一個。輸出句子結果。

5. 識別實體名詞

在消歧后獲得的結果有時候仍然不是我們想要的結果,因為在句子中仍然有部分詞匯我們是無法理解的,因為在上述幾步中未識別出來的詞匯我們已經做了標記,此時需要對消歧后獲得的結果與人名詞典、地名詞典、專有名詞詞典進行匹配,匹配的方式與查詢一元詞典的方式相同,識別結果中人名、地名、專有名詞,將識別出的名詞結果加入到詞圖中,形成最后結果進行輸出。

6. 輸出結果

根據以上幾部處理,會將整個結果切分出來,同時會返回相應詞性信息,最終結果示例:

石國祥/nr, 會見/v, 喬布斯/nrf, 說/v, iPhone/nx, 是/vshi, 最好/d, 用/p, 的/udel, 手機/n 。/w

以上就是整個中文分詞的過程,寫的比較粗淺,僅供大家參考,如果大家有何見解可以一起討論。

 

本文由 @成就夢想就去拼 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來源于網絡

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 相應的地方是哪里呀??

    回復
  2. 看完,腦瓜子,嗡嗡的

    回復
    1. 寫的比較粗淺,讀起來是有點懵,見諒

      回復