(武漢船舶職業(yè)技術(shù)學(xué)院,湖北武漢 430000)
在中文語言中,單獨的詞是具有最小意義的表達形式,而很多獨立語和關(guān)聯(lián)語的文本不同于英語,單詞之間有空格,中文最具有意義的詞與詞之間沒有任何分隔符之類的顯示切分詞的特征標(biāo)志[1],中文分詞在我們語言實驗中,具有極其重要的地位,是諸多應(yīng)用系統(tǒng)不可或缺的一個重要環(huán)節(jié)。中文分詞是自然語言理解中舉足輕重的知識點之一,也是目前在做中文文本處理[12],信息檢索,情感文本分類,知識問答等知識的基礎(chǔ)問題[3]。分詞的好壞將直接影響到后期的分析結(jié)果,如命名實體識別[4],句法分析,篇章分析等。傳統(tǒng)的中文分詞主要包含三大類:①基于理解的中文分詞:也稱作人工智能的方法。通過讓電腦,仿效人對文本中某句話的理解,達到識別詞語的意義,然后進行分詞。②基于字符串匹配的中文分詞,將文本中的一句話以正向或者逆向或者雙向最大匹配的方式,和字典進行匹配,按照優(yōu)先的匹配方式,達到最大或者最小的匹配方式。③基于概率統(tǒng)計的中文分詞,此方法只需要對文本中的字詞進行統(tǒng)計,而不需要利用詞典切分,其主要的技術(shù)含有馬爾可夫模型[5](Hidden Markov Model,HMM)、基于最大熵模型(Maximum Entropy Models)、基于條件隨機場模型[6](conditional random fields, CRF)等。
前面兩者依托于各行業(yè)高頻率詞匯[7],沒有著重考慮未登錄詞的識別過程,因而這類方法不能有效的解決歧義詞在中文信息處理方面的問題。利用統(tǒng)計的中文分詞方法,是后來大多數(shù)學(xué)者優(yōu)先考慮的,也是中文信息處理領(lǐng)域常用的算法之一,常用于在知識問答[9]、實體連接[10]、機器翻譯[11]等領(lǐng)域常常使用到。條件隨機場和隱馬爾科夫模型都屬于基于統(tǒng)計的模型。而條件隨機場和隱馬爾科夫模型2好比互反的過程。上面兩種統(tǒng)計方法模型都依托于馬爾科夫鏈[8]作為背景,把其中的隱含變量作為概率轉(zhuǎn)移模型[9]。
因此,本文提出了運用deep learning[18]中的詞向量來有效的解決CRF中對上下意詞的不足,并且利用對條件隨機場優(yōu)化之后的方法能夠更好的解決未登錄詞和新詞的識別。
條件隨機場(Conditional Random Fields, CRF):它是一個無向圖構(gòu)成。在條件隨機場中,其中最簡便的條件隨機場就是鏈?zhǔn)浇Y(jié)構(gòu),本文第三章會詳細談?wù)?,主要利用鏈?zhǔn)降腃RF模型進行中文分詞,在這種特殊的條件隨機場中,圖中形成的鏈,是由若干個字符標(biāo)記構(gòu)成。在只有一階鏈?zhǔn)降腃RF模型中,全連通子圖涵蓋了當(dāng)前的標(biāo)記,和在它之前的一個標(biāo)記的集合,和觀測序列的任一子集的最大連通圖。如下圖所示,各頂點的集合就可以看成最大連通子圖。[19]
圖1 鏈?zhǔn)綏l件隨機場
在序列標(biāo)注任務(wù)中,隨機變量X={a1,a2,a3,…,an}表示可觀測序列;隨機變量Y={b1,b2,b3,…,bn}表示觀測序列對應(yīng)的標(biāo)記序列,隨機變量Y的鏈?zhǔn)綏l件概率分布為:[18]
Zx是只依賴于觀測序列的歸一化函數(shù)(normalizing factor)
在序列標(biāo)注任務(wù)中,給定訓(xùn)練D=(X,Y),觀測數(shù)據(jù)X={X1,X2,……,XN},標(biāo)記數(shù)據(jù)Y={Y1,Y2,…,YN}。[16]
在中文分詞的方法中,我們運用適當(dāng)?shù)膮?shù)模型,對其語料進行訓(xùn)練,從而得到條件隨機場的模型。基于最大似然原則[12](maximum-likelihood principle)對條件隨機場進行訓(xùn)練,使得條件概率的log似然值[13](log-likelihood)最大:
條件隨機場的推理是指在給定一個觀測序列X={X1,X2,…,XN}的條件下,找到一個對應(yīng)于最可能的標(biāo)記序列Y={Y1,Y2,…,YN}。[14]
從式(1)可以看到,在條件隨機場的分布函數(shù),歸一化因子完全獨立于標(biāo)記序列。所以,給定模型參數(shù)條件下,求得最可能的標(biāo)記序列可以表示為:
Y*=argmaxyP(y|x)=argmaxyexp
在當(dāng)前序列位置為i,當(dāng)前標(biāo)記為y的時候,Viterbi算法[15]可以求得至當(dāng)前位置的最優(yōu)標(biāo)記序列的未歸一化概率值。其遞歸形式為:
本文分詞算法中的神經(jīng)網(wǎng)絡(luò)包含三個層:輸入層,隱藏層,輸出層[16]
圖2 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
2.2模型方法
訓(xùn)練語料庫:本文算法中提到的字向量是通過Word2Vec工具包訓(xùn)練得到的,對北京大學(xué)語料庫中的訓(xùn)練語句進行格式調(diào)整為符合word2Vec輸入格式的文本數(shù)據(jù)。
字向量:訓(xùn)練語料中的所有字構(gòu)成一個字典,字典中的每個字對應(yīng)一個固定長度的字向量,他們通過word2Vec中的Skip-Gram算法訓(xùn)練得到。[17]
Skip-gram的目標(biāo)是尋找集合來最大化如下條件概率的乘積[17]:
等同于下式:
本文使用條件隨機場的擴展Softmax對θ進行形式化處理,使得條件概率轉(zhuǎn)化為下式:
其中vc和vw分別表示是c和w的列向量,維度為d。c是所有語境中的單詞構(gòu)成的集合,等同于詞匯表V.參數(shù)θ就是vc和vw中每一維度的具體取值。
條件隨機場中條件概率公式:
由上述所示公式可得到:
圖4 改進過后的詞向量示意圖
本文試驗利用的語料庫來自SIGHAN CWS BAKEOFF2006中的PKU和MSR corpora進行訓(xùn)練,訓(xùn)練得到的統(tǒng)計分詞模型分別在PKU test corpus和MSR test corpus進行測試。先通過PKU訓(xùn)練語料得到模型,然后利用模型對PKU的測試語料進行測試,我們的評價指標(biāo)采用了標(biāo)準(zhǔn)的精確率,召回率和F值。實驗結(jié)果有了明顯的提升。
本文算法中提到的字向量是通過Word2Vec工具包訓(xùn)練得到的,對北京大學(xué)語料庫中的訓(xùn)練語句進行格式調(diào)整為符合word2Vec輸入格式的文本數(shù)據(jù)。訓(xùn)練得到的字向量訓(xùn)練語料中的所有字構(gòu)成一個字典,字典中的每個字對應(yīng)一個固定長度的字向量,他們通過word2Vec中的Skip-Gram算法訓(xùn)練得到。
圖5 PKU(北京大學(xué)語料庫)實驗對比圖
在北京大學(xué)語料庫上面的分詞效果,本文相比CRF的精確率要高出0.5%,召回率高出了0.8%,F(xiàn)值也高出了0.6%;和單獨使用word2Vec運用到分詞中的效果相比,精確率要高出6.1%,召回率高出了3.2%, F值也高出了4.6%.
圖6 MSR(微軟語料庫)實驗對比圖
在微軟語料庫上面的分詞效果,我們的方法相比CRF的精確率要高出0.4%,召回率高出了0.1%, F值也高出了0.2%;和單獨使用word2Vec運用到分詞中的效果相比,精確率要高出8.3%,召回率高出了12.1%, F值也高出了15.3%.
圖7 PKU,MSR的P, R,F(xiàn)1值在不同模型下的對比
在中文分詞中,數(shù)據(jù)集采用的是BAKEOff-2005,PKU、MSR分別為北京大學(xué)語料庫和微軟語料庫考慮一個系統(tǒng)的好壞,主要由精確率(P),召回率(R),兩者的調(diào)和均值(F)決定的。
準(zhǔn)確率(P)=系統(tǒng)輸出正確的結(jié)果個數(shù)/系統(tǒng)輸出全部的結(jié)果個數(shù)
召回率(R)=系統(tǒng)輸出正確的結(jié)果個數(shù)/測試集中正確的答案個數(shù)
F-測度值(F)=2*召回率*正確率/(召回率+正確率)
在試驗中,通過bakeoff 2005的PKU和MSR兩個語料庫的training語料庫進行實驗,利用word2vec進行字向量的訓(xùn)練,根據(jù)詞義相關(guān)性生成自己的一個詞典,再然后利用自己的詞典進行對語料庫中的test語料庫中的測試文件進行實驗。
在做本實驗的優(yōu)化上,相對傳統(tǒng)的條件隨機場的模型而言,在我們的召回率和兩者的調(diào)和均值上面都有明顯的優(yōu)勢。我們在使用CRF模型的時候,在對傳統(tǒng)的CRF模型進行了改造優(yōu)化,再利用Google的word2Vec工具進行對數(shù)據(jù)文本進行詞向量的生成,然后利用對隱藏層的激活函數(shù)Softmax進行公式的線性變化,使分詞效果達到優(yōu)化。
本次試驗,提高F值的同時,在基本的CRF模型上進行優(yōu)化,然后利用深度學(xué)習(xí)的方法,對字向量的激活函數(shù)加入線性變化,與條件隨機場聯(lián)合,對文本具有更高的分詞精準(zhǔn)率,然后對算法中融入動態(tài)規(guī)劃算法進行優(yōu)化,使得效率和分詞F值上面都有所提高。我們接下來的工作是在原有的基礎(chǔ)上,來對中文分詞進行更深的研究。
本文的分詞語料庫都是新聞方面的,下一步我們將用于其他更多廣闊的領(lǐng)域中。例如我們在微博或者朋友圈里面,短小的文本,該如何做到中文分詞,更好的識別未登錄詞等相關(guān)問題。