自然語言處理中“中文分詞”技術(shù)中“自動(dòng)切分”的幾點(diǎn)理解
本文主要針對(duì)其中最常用的一套《北大規(guī)范》為依據(jù),來講解中文詞匯自動(dòng)切分的幾個(gè)重點(diǎn)流程。enjoy~
概述
在人工智能中,自然語言處理是一門極其深?yuàn)W的領(lǐng)域,自然語言處理在廣義上分為兩部分,第一部分自然語言理解,是指讓電腦“聽懂”人類的語言;第二部分為自然語言生成,是指把計(jì)算機(jī)數(shù)據(jù)轉(zhuǎn)化成人類可以聽懂的語言;而自然語言理解和產(chǎn)生的前提是對(duì)語言能夠做出全面的解析,而在中文中,漢語詞匯是語言獨(dú)立運(yùn)用的最小語言單位,因此對(duì)漢語中詞匯的切分顯得尤為的重要,隨著自然語言的應(yīng)用逐漸發(fā)展,一套完整而標(biāo)準(zhǔn)的漢語分詞規(guī)范就顯得特別重要,隨著近幾十年的發(fā)展,已經(jīng)逐漸形成兩套常用且較為規(guī)范的語言處理規(guī)范,本文主要針對(duì)其中最常用的一套《北大規(guī)范》為依據(jù),來講解中文詞匯自動(dòng)切分的幾個(gè)重點(diǎn)流程。
在《北大規(guī)范》中一共含有40個(gè)詞類,其中包括名詞、動(dòng)詞、代詞、形容詞、數(shù)詞、量詞、副詞、介詞、連詞、助詞、語氣詞、嘆詞、象聲詞、時(shí)間詞、處所詞、方位詞、區(qū)別詞、狀態(tài)詞、副動(dòng)詞、名動(dòng)詞、副形詞、名形詞、前綴、后綴、成語、簡(jiǎn)稱、習(xí)用語、標(biāo)點(diǎn)。所有的句子都是通過不同的詞類組成,下面就為大家講解一下中文分詞的幾個(gè)流程
歧義
現(xiàn)代漢語的復(fù)音詞結(jié)構(gòu),使少量的的字符通過排列組合來表示大量的詞匯,最容易出現(xiàn)的問題是歧義問題,歧義問題在漢語中普遍存在,因此在中文如何消除歧義問題是中文分詞重點(diǎn)解決的問題,簡(jiǎn)單給大家大家舉個(gè)例子:“結(jié)合成”這個(gè)詞,在分詞過程中就有多種分詞情況,如:“結(jié)合”“成”或“結(jié)”“合成”兩種,這只是其中一種情況,通常情況下,在一個(gè)句子中多個(gè)詞匯存在這種問題,這樣就無形中給分詞造成了很多麻煩,這只是一個(gè)小插曲,大家不要認(rèn)為這樣的情況嚇到了,下邊我就給大家重點(diǎn)介紹一下中分分詞中的幾個(gè)步驟:
分詞流程
先來個(gè)圖理解一下:
1. 句子切分
在中文分詞是,有時(shí)輸入的不單單是一句話,有可能是一整篇文章或一整段話,所以先要進(jìn)行預(yù)處理,句子切分是中分分詞的一個(gè)預(yù)處理階段,主要是對(duì)輸入的整篇文章或整段句子進(jìn)行句子切分,一篇文章是被一些特殊的標(biāo)點(diǎn)符號(hào)分隔的字符串,這些標(biāo)點(diǎn)符號(hào)包括“省略號(hào)”“單引號(hào)”“單引號(hào)”“多引號(hào)”“逗號(hào)”“冒號(hào)”“感嘆號(hào)”“問號(hào)”“換行”等,句子切分就是依靠這些分隔的標(biāo)點(diǎn)符號(hào),將整段或整篇文章分隔成一個(gè)個(gè)的字符串,存儲(chǔ)起來,為后續(xù)中文分詞做準(zhǔn)備。
2. 分詞詞典
在詞匯切分中,中文詞庫提供了相應(yīng)的詞匯的詞典,其中包括一元語言詞匯詞典、二元語言詞匯詞典、人名和地名詞典、組織機(jī)構(gòu)詞典、專有名詞機(jī)構(gòu)詞典,這些在詞匯詞典在切分過程起到重要作用,大家可以在相應(yīng)的地方下載。
給大家簡(jiǎn)單介紹一下詞典的結(jié)構(gòu),一元詞典結(jié)構(gòu)如下,一元詞典的第一列是詞,第二列是第一詞性,第二列為第一次性的出現(xiàn)的詞頻(次數(shù)),第三列為第二次性,第四列為第二詞性的詞頻,以此類推,關(guān)于詞性可參照詞性對(duì)照表,此處不做注釋。
二元詞典的結(jié)構(gòu)如圖,二元詞典的第一列是相鄰詞中間用@隔開,例如:“像@跳梁小丑”,表示前一個(gè)詞是像,后邊的一個(gè)詞是跳梁小丑,第二列是該相鄰詞在預(yù)料庫中出現(xiàn)的次數(shù),
人名詞典的機(jī)構(gòu)如圖:詞典的第一列是詞匯,第二列為第一個(gè)元模式的標(biāo)簽,第三列為第二個(gè)元模式的標(biāo)簽,第四列為第二個(gè)元模式的標(biāo)簽,以此類推,具體的元模式標(biāo)簽表可參照元模式表,例如:B代表姓氏,C代表名1,D代表名2,E是單名,F(xiàn)為名前綴等,張三的組成為BC,周潤(rùn)發(fā)的名字的組合是BCD,老李的組合為FB。具體
3. 粗分
(1)字符切分
將上文句子切分得到的句子字符串?dāng)?shù)組再次切分,將每個(gè)句子字符串轉(zhuǎn)化為成單個(gè)字符,包括單個(gè)漢語字符,單個(gè)英文字符、單個(gè)數(shù)字字符,例如,我是中華人民共和國(guó)13億人民中的一員,變成一個(gè)數(shù)組,如:我/是/中/華/人/民/共/和/國(guó)/1/3/億/人/民/中/的/一/員/,存儲(chǔ)到一個(gè)新的數(shù)組中。
(2)構(gòu)建初級(jí)一元詞網(wǎng)
構(gòu)建一元詞網(wǎng),是將得到的字符數(shù)組進(jìn)行一元詞典查詢,將獲得的字符結(jié)果進(jìn)行一元詞典最大匹配,查找詞匯,將查到的所有詞匯和帶有詞性、詞頻等信息存儲(chǔ)到一個(gè)數(shù)組中,構(gòu)建一個(gè)初級(jí)的一元詞網(wǎng)。
查詢?cè)~典的過程就是最大匹配的過程,具體的匹配方式如:中華人民共和國(guó),從“中”字開始查詞典,找到與“中”字成詞的詞,全部取出,如:“中”“中華”單個(gè)字也算一個(gè)詞,然后在從“華”字開始查詢?cè)~典找到與華字成詞的詞如:“華人”;依次往下查,然后把整個(gè)句子中所有的字符全部查詢一遍,將所有的成詞全部返回,同時(shí)需要記錄每個(gè)詞的詞性、詞頻、在詞典的位置(行和列的位置),形成初級(jí)一元詞網(wǎng)。
(3)原子切分
原子切分的目的是,將初級(jí)一元詞網(wǎng)中的非漢字字符,如英文字符或數(shù)字字符進(jìn)行合并,形成一個(gè)新的詞匯,并為其賦予詞性,構(gòu)成原子詞,如:3,.,1,4,1,5,9,合并成3.14159,如i,p,h,o,n,e,合并成iphone,將處理后的結(jié)果,重新變成一個(gè)一元詞網(wǎng),形成一級(jí)詞網(wǎng)。
(4)二元詞網(wǎng)
用一元分詞的結(jié)果查詢二元詞典,最大匹配查找到二元詞典(此處匹配的方式和一元匹配相同),生成二元詞圖,同時(shí)需要返回該詞的詞頻。二元詞圖為像@跳梁小丑
4. 消歧
通過計(jì)算整個(gè)句子所需要的最小權(quán)重獲取最有結(jié)果,整個(gè)句子所需要的權(quán)重是所有詞匯詞頻之和的倒數(shù)(權(quán)重是詞頻的倒數(shù))舉個(gè)例子:
“中華人民共和國(guó)”根據(jù)二元詞典的匹配結(jié)果是
中@華 ???15
華@人 ???14 ????華@民 ???13
民@國(guó) ????12 ????民@人
人@民 ???19
民@國(guó),將這些詞拼成完整句子的權(quán)重最小的一個(gè)。輸出句子結(jié)果。
5. 識(shí)別實(shí)體名詞
在消歧后獲得的結(jié)果有時(shí)候仍然不是我們想要的結(jié)果,因?yàn)樵诰渥又腥匀挥胁糠衷~匯我們是無法理解的,因?yàn)樵谏鲜鰩撞街形醋R(shí)別出來的詞匯我們已經(jīng)做了標(biāo)記,此時(shí)需要對(duì)消歧后獲得的結(jié)果與人名詞典、地名詞典、專有名詞詞典進(jìn)行匹配,匹配的方式與查詢一元詞典的方式相同,識(shí)別結(jié)果中人名、地名、專有名詞,將識(shí)別出的名詞結(jié)果加入到詞圖中,形成最后結(jié)果進(jìn)行輸出。
6. 輸出結(jié)果
根據(jù)以上幾部處理,會(huì)將整個(gè)結(jié)果切分出來,同時(shí)會(huì)返回相應(yīng)詞性信息,最終結(jié)果示例:
石國(guó)祥/nr, 會(huì)見/v, 喬布斯/nrf, 說/v, iPhone/nx, 是/vshi, 最好/d, 用/p, 的/udel, 手機(jī)/n 。/w
以上就是整個(gè)中文分詞的過程,寫的比較粗淺,僅供大家參考,如果大家有何見解可以一起討論。
本文由 @成就夢(mèng)想就去拼 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來源于網(wǎng)絡(luò)
相應(yīng)的地方是哪里呀??
看完,腦瓜子,嗡嗡的
寫的比較粗淺,讀起來是有點(diǎn)懵,見諒