本發(fā)明涉及信息處理領(lǐng)域,特別涉及一種基于神經(jīng)網(wǎng)絡(luò)的中文分詞方法。
背景技術(shù):
中文分詞是中文自然語(yǔ)言處理中的基礎(chǔ)任務(wù),它的目的在于將中文漢字序列轉(zhuǎn)換為中文詞語(yǔ)的序列。中文詞語(yǔ)是中文語(yǔ)義表達(dá)的基本單元,所以分詞的好壞會(huì)直接影響到中文自然語(yǔ)言處理的上層任務(wù),例如,信息檢索和機(jī)器翻譯。
目前最普遍的分詞方法是把分詞任務(wù)作為一個(gè)有監(jiān)督的序列標(biāo)注任務(wù)來(lái)完成。比較常見(jiàn)的傳統(tǒng)分詞模型有結(jié)構(gòu)化感知器、條件隨機(jī)場(chǎng)(crfs)等。但是這些傳統(tǒng)模型都十分依賴人工設(shè)計(jì)的特征,需要復(fù)雜的特征才能取得較好的分詞效果。最近,由于神經(jīng)網(wǎng)絡(luò)可以自己學(xué)習(xí)特征以代替復(fù)雜的人工設(shè)計(jì)特征,大大減輕特征工程的負(fù)擔(dān),許多工作嘗試將神經(jīng)網(wǎng)絡(luò)應(yīng)用于中文分詞任務(wù)。但是這些工作并沒(méi)有很好地提取和利用句子中的局部特征,也沒(méi)有很好地將局部特征和上下文的信息結(jié)合起來(lái)。而本發(fā)明為了解決上述的問(wèn)題,采用了多卷積核的卷積神經(jīng)網(wǎng)絡(luò),結(jié)合循環(huán)神經(jīng)網(wǎng)絡(luò),得到了較好的分詞效果。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有的技術(shù)問(wèn)題,本發(fā)明提供了一種基于神經(jīng)網(wǎng)絡(luò)的分詞方法。方案如下:
步驟一,我們將輸出句子的每個(gè)字符都映射為字符向量,通過(guò)這一步將句子參數(shù)化,句子映射為一個(gè)數(shù)值矩陣。
步驟二,我們使用一個(gè)多卷積核的卷積神經(jīng)網(wǎng)絡(luò)對(duì)參數(shù)化的句子進(jìn)行卷積操作,不同窗口大小的卷積核從句子中提取到隱多粒度的局部特征。
步驟三,隱多粒度局部特征經(jīng)過(guò)一個(gè)k-max池化層,k-max池化層僅保留局部特征中比較重要的一些,對(duì)局部特征進(jìn)行了一個(gè)篩選。
步驟四,經(jīng)過(guò)篩選的隱多粒度局部特征再送入一個(gè)雙向lstm循環(huán)神經(jīng)網(wǎng)絡(luò)層。雙向的lstm循環(huán)神經(jīng)網(wǎng)絡(luò)再引入字符前后句子中上下文信息,這就使得多粒度的局部信息和上下文信息結(jié)合到了一起。
步驟五,將之前所得到的信息送入一個(gè)前向網(wǎng)絡(luò)中,得到各個(gè)字符序列標(biāo)注的標(biāo)簽概率。
步驟六,在句子層面上,對(duì)整個(gè)句子中各個(gè)字符的標(biāo)簽概率進(jìn)行維特比解碼,得到句子層面的最優(yōu)分詞結(jié)果。
附圖說(shuō)明
圖1是本發(fā)明提供的分詞方法的網(wǎng)絡(luò)結(jié)構(gòu)圖
圖2為lstm循環(huán)神經(jīng)網(wǎng)絡(luò)單元的內(nèi)部結(jié)構(gòu)圖
具體實(shí)施方式
接下來(lái)將對(duì)本發(fā)明的實(shí)施方法作更詳細(xì)的描述。
圖1是本發(fā)明提供的分詞方法的網(wǎng)絡(luò)結(jié)構(gòu)圖,其中包括:
步驟s1:輸入句子的字符向量參數(shù)化;
步驟s2:卷積神經(jīng)網(wǎng)絡(luò)提取隱多粒度局部信息;
步驟s3:k-max池化操作增強(qiáng)非線性,并控制參數(shù)個(gè)數(shù);
步驟s4:雙向循環(huán)神經(jīng)網(wǎng)絡(luò)提取長(zhǎng)距離的上下文信息;
步驟s5:前向神經(jīng)網(wǎng)絡(luò)計(jì)算各個(gè)字符的標(biāo)簽得分;
步驟s6:使用標(biāo)簽推斷方法得到最優(yōu)標(biāo)簽序列;
下面將對(duì)每個(gè)步驟進(jìn)行具體的說(shuō)明:
步驟s1:向量參數(shù)化,為了克服傳統(tǒng)one-hot表示法所帶來(lái)的稀疏性和無(wú)關(guān)性的問(wèn)題,本發(fā)明首先將句子中的各個(gè)字符參數(shù)化,通過(guò)一個(gè)映射字典,將字符映射為不稀疏的向量表示。假設(shè)中文漢字一共有c個(gè)字符,那么整個(gè)映射字典可以表示為一個(gè)c*d維的數(shù)值矩陣,其中每一個(gè)行是一個(gè)字符的數(shù)值表示,一個(gè)d維的數(shù)值向量。那么一個(gè)句子,就可以表示為句子中每一個(gè)字符都映射為向量后組成的數(shù)值矩陣。
其中x為句子的矩陣表示,xi為句子中第i個(gè)字符映射后的向量,
在這一步驟中,借鑒去噪自動(dòng)編碼器的思想,本發(fā)明引入了dropout的機(jī)制,在訓(xùn)練網(wǎng)絡(luò)時(shí),隨機(jī)將一部分參數(shù)置零,使得參數(shù)訓(xùn)練更具有魯棒性,訓(xùn)練過(guò)程更為平滑。
步驟s2:使用卷積神經(jīng)網(wǎng)絡(luò)層提取隱多粒度局部信息。卷積神經(jīng)網(wǎng)絡(luò)擅長(zhǎng)于局部特征的提取,并已經(jīng)被廣泛用于中文自然語(yǔ)言處理任務(wù)中,如:情感分類、文檔分類。不同的卷積核卷積句子,得到不同的局部特征。卷積神經(jīng)網(wǎng)絡(luò)提取到的局部特征比傳統(tǒng)使用的uni-gram、bi-gram有更好的表現(xiàn)。所以本發(fā)明中將多卷積核的卷積神經(jīng)網(wǎng)絡(luò)引入中文分詞中,用于提取更好的局部特征。
對(duì)于文本處理中的卷積神經(jīng)網(wǎng)絡(luò)而言,一個(gè)窗口為w的卷積核可以表示為一個(gè)w*d維的矩陣,其中d是文本參數(shù)化后的向量維度。則卷積核對(duì)窗口內(nèi)的w個(gè)向量的卷積操作,可以表示為:
其中c為提取到的局部特征,
而且中文詞語(yǔ)的成詞規(guī)律有很多種,僅僅用一個(gè)特征是不能表示的,所以我們對(duì)不同的窗口都引入了多個(gè)卷積核。假設(shè)我們對(duì)窗口w引入n個(gè)卷積核,則在句子中一個(gè)字符周圍窗口為w個(gè)字符提取到的局部特征就可以表示為各個(gè)卷積核卷積提取到的特征的組合。
其中c為句子中一個(gè)字符周圍提取到的特征向量,ci表示一個(gè)卷積核提取到的局部特征。
步驟s3:使用k-max池化層對(duì)步驟s2中提取到的隱多粒度特征進(jìn)行池化。池化操作是卷積神經(jīng)網(wǎng)絡(luò)經(jīng)常使用的一種方法,本發(fā)明中所使用的是在特征向量上的k-max池化。k-max池化僅保留特征向量中最大的k個(gè)值,有很強(qiáng)的非線性,能夠幫助卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練出更好的特征,同時(shí)也能夠控制網(wǎng)絡(luò)整體的參數(shù)個(gè)數(shù),防止過(guò)擬合。
步驟s4:使用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)提取長(zhǎng)距離的上下文信息。循環(huán)神經(jīng)網(wǎng)絡(luò)擅長(zhǎng)于抽取長(zhǎng)距離的依賴關(guān)系,也被廣泛用于自然語(yǔ)言處理各個(gè)任務(wù)。但是傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)由于結(jié)構(gòu)比較簡(jiǎn)單,很容易出現(xiàn)梯度爆炸和梯度彌散的問(wèn)題。梯度彌散會(huì)使得網(wǎng)絡(luò)訓(xùn)練變得非常緩慢,梯度爆炸會(huì)使得訓(xùn)練變得困難,甚至導(dǎo)致網(wǎng)絡(luò)發(fā)散。而lstm(長(zhǎng)短期記憶)單元通過(guò)使用類似門電路的方式控制記憶單元的遺忘和更新,使得循環(huán)神經(jīng)網(wǎng)絡(luò)能夠更有效地學(xué)習(xí)到長(zhǎng)距離的依賴關(guān)系。
圖2給出了一種lstm單元的單元結(jié)構(gòu),一個(gè)lstm單元在坐標(biāo)點(diǎn)t可以描述為:
it=σ(wi·xt+ui·ht-1+bi)
ft=σ(wf·xt+uf·ht-1+bf)
ot=σ(wo·xt+uo·ht-1+bo)
ht=ot⊙tanh(ct)
其中x是輸入,c是記憶單元狀態(tài),i、f、o分別是輸入門,遺忘門和輸出門,σ和tanh是logisticsigmoid函數(shù)和hyperbolictangent函數(shù)?!咽菙?shù)值對(duì)位相乘。w、u和b是權(quán)重矩陣和偏置項(xiàng)。
步驟s5:使用前向神經(jīng)網(wǎng)絡(luò)計(jì)算各個(gè)字符的標(biāo)簽得分。在步驟2中,卷積神經(jīng)網(wǎng)絡(luò)得到了隱多粒度局部特征,而步驟s4中l(wèi)stm循環(huán)神經(jīng)網(wǎng)絡(luò)又結(jié)合了上下文的信息,這一步中的前向網(wǎng)絡(luò)就是利用之前提取到的信息對(duì)序列進(jìn)行標(biāo)注生成標(biāo)簽概率。以bies四標(biāo)簽體系為例,則輸出標(biāo)簽共有4個(gè),分別表示字符是一個(gè)詞語(yǔ)的開(kāi)頭、中間、結(jié)尾和當(dāng)前字是一個(gè)單字詞語(yǔ)。這個(gè)前向網(wǎng)絡(luò)是一個(gè)輸入為lstm循環(huán)神經(jīng)網(wǎng)絡(luò)輸出維度,輸出維度是4的全連接網(wǎng)絡(luò)。前向網(wǎng)絡(luò)的輸入是步驟s4中得到的輸出向量,輸入是bies四標(biāo)簽的得分,最后使用softmax函數(shù)對(duì)輸出的標(biāo)簽得分進(jìn)行概率化,得到四個(gè)標(biāo)簽對(duì)應(yīng)的概率。在這一層中,本發(fā)明還使用了dropout策略,提升網(wǎng)絡(luò)的整體性能,防止過(guò)擬合。
步驟s6:使用標(biāo)簽推斷方法得到最優(yōu)標(biāo)簽序列。本發(fā)明將中文分詞作為一個(gè)序列標(biāo)注的問(wèn)題,其中的標(biāo)注標(biāo)簽并不是相互無(wú)關(guān)的,以bies四標(biāo)簽體系為例,b表示字符是一個(gè)詞語(yǔ)的開(kāi)始,i表示字符在一個(gè)詞語(yǔ)的內(nèi)部,e表示字符是一個(gè)詞語(yǔ)的結(jié)尾,s表示字符是一個(gè)單字詞語(yǔ)。存在明確的約束關(guān)系,標(biāo)簽b之后符合約束的只能是標(biāo)簽i或者e,標(biāo)簽e后面符合約束的只能是標(biāo)簽b或者s,標(biāo)簽i之后符合約束的只能是標(biāo)簽e,標(biāo)簽s之后符合約束的只能是標(biāo)簽b或者s。這些約束關(guān)系表明標(biāo)注標(biāo)簽之間有很強(qiáng)的依賴關(guān)系。為了建模這種關(guān)系,本發(fā)明中加入了標(biāo)簽的跳轉(zhuǎn)得分。同時(shí)為了從各個(gè)字符的標(biāo)簽概率分布得到句子的最優(yōu)標(biāo)簽序列。本發(fā)明使用標(biāo)簽推斷來(lái)計(jì)算得到整個(gè)句子層面上的最優(yōu)標(biāo)簽路徑。路徑的得分有兩部分組成,一個(gè)是標(biāo)簽的跳轉(zhuǎn)得分,一個(gè)是標(biāo)簽本身的概率得分。假設(shè)標(biāo)簽轉(zhuǎn)移矩陣是a,其中的第i行第j列的元素表示從標(biāo)簽i跳轉(zhuǎn)到標(biāo)簽j的得分。則一個(gè)句子上某一個(gè)標(biāo)簽路徑的得分為:
其中s(yt)為該標(biāo)簽本身的概率得分,n為句子長(zhǎng)度。本發(fā)明使用維特比算法計(jì)算得到最優(yōu)標(biāo)簽路徑。
以上結(jié)合附圖對(duì)所提出的一種基于隱多粒度局部特征的中文分詞方法及各模塊的具體實(shí)施方式進(jìn)行了闡述。通過(guò)以上實(shí)施方式的描述,所屬領(lǐng)域的一般技術(shù)人員可以清楚的了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件實(shí)現(xiàn),但前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以計(jì)算機(jī)軟件產(chǎn)品的形式體現(xiàn),該軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)或多臺(tái)計(jì)算機(jī)設(shè)備執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處。綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
以上所述的本發(fā)明實(shí)施方式,并不構(gòu)成對(duì)發(fā)明保護(hù)范圍的限定。任何在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。