張文靜,張惠蒙,楊麟兒,荀恩東
(1. 北京語言大學(xué) 語言資源高精尖創(chuàng)新中心,北京 100083;2. 北京語言大學(xué) 信息科學(xué)學(xué)院,北京 100083)
中文分詞任務(wù)是中文信息處理領(lǐng)域中最為經(jīng)典且關(guān)鍵的課題之一。在過去的幾十年中,研究者們對(duì)其進(jìn)行了不斷的探索。早期,基于詞表的最大長(zhǎng)度匹配方法被廣泛用來解決該問題。從2003年起,分詞問題逐漸被視為序列標(biāo)注任務(wù)[1]。最大熵[2]、條件隨機(jī)場(chǎng)[3-5]等模型被用來解決序列標(biāo)注任務(wù)。然而,傳統(tǒng)機(jī)器學(xué)習(xí)方法一般采用特征工程的方式,依賴專家經(jīng)驗(yàn),成本較高。由于神經(jīng)網(wǎng)絡(luò)模型可以自動(dòng)隱式提取特征,因此近年來被廣泛用于解決分詞任務(wù)。Zheng 等[6]提出神經(jīng)網(wǎng)絡(luò)中文分詞的方法,將字向量作為輸入,用一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)模型替代了最大熵模型[2]。Chen等[7]提出用長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(long short-term memory neural networks,LSTM)來對(duì)句子進(jìn)行建模,捕捉字與字之間的長(zhǎng)距離依賴關(guān)系。Zhang等[8]將基于轉(zhuǎn)移的思想應(yīng)用于分詞任務(wù)中并取得了很好的效果。Yang等[9]使用了大量的外部訓(xùn)練語料進(jìn)行預(yù)訓(xùn)練,利用外部知識(shí)提高了分詞效果。
中文分詞任務(wù)在單粒度人工標(biāo)注語料下取得了不錯(cuò)的成績(jī),然而,中文分詞存在分詞標(biāo)準(zhǔn)不統(tǒng)一的問題,比如,對(duì)于不同的人工標(biāo)注語料,如Microsoft Research(MSR)數(shù)據(jù)集[10],Peking University People Daily(PPD)數(shù)據(jù)集[11],Penn Chinese Treebank(CTB)數(shù)據(jù)集[12],分詞標(biāo)準(zhǔn)是有所區(qū)別的。表1給出了三種分詞標(biāo)準(zhǔn)下示例句子的分詞結(jié)果。
表1 三種分詞標(biāo)準(zhǔn)下示例句子的分詞結(jié)果
Sproat等[13]的研究表明以漢語為母語者在未提供明確標(biāo)準(zhǔn)的情況下對(duì)于詞邊界的識(shí)別度約為76%。可見,單粒度中文分詞對(duì)人工數(shù)據(jù)標(biāo)注的工作提出了很大的挑戰(zhàn)。并且,模型在對(duì)單粒度標(biāo)注語料進(jìn)行訓(xùn)練時(shí),會(huì)更多地學(xué)習(xí)標(biāo)注標(biāo)準(zhǔn)的特征,而不是詞語的特征。Gong等[14]構(gòu)建了多粒度中文分詞語料庫,并利用短語句法分析和序列標(biāo)注的思想來解決多粒度中文分詞任務(wù),取得了很好的結(jié)果。這一工作為中文分詞任務(wù)開創(chuàng)了新的思路,為研究者們提供了新的研究方向。多粒度中文分詞的優(yōu)勢(shì)在于其應(yīng)用于信息檢索和機(jī)器翻譯等任務(wù)時(shí)具有一定的容錯(cuò)性,可減少分詞錯(cuò)誤對(duì)后續(xù)任務(wù)的影響。而且不同粒度的分詞結(jié)果可以起到互補(bǔ)作用:一方面,粗粒度詞語可以使模型更準(zhǔn)確地捕獲信息從而進(jìn)行分析;另一方面,細(xì)粒度詞語可以減少數(shù)據(jù)稀疏性并體現(xiàn)出對(duì)語言更深層次的理解,為后續(xù)任務(wù)打下良好基礎(chǔ)。
基于字的多粒度中文分詞模型的缺點(diǎn)之一是沒有充分利用不同粒度的詞語信息。為了彌補(bǔ)這一缺陷,我們把詞語信息作為特征輸入到模型中。由于這些詞語中包含多種粒度,可以為模型提供更多的知識(shí)引導(dǎo),使得模型可以更好地生成多粒度中文分詞結(jié)果。本文在基于字的LSTM模型中加入潛在的粒度多樣化的詞語信息作為特征,并構(gòu)建Lattice-LSTM來對(duì)這些詞語進(jìn)行建模。如圖1所示,我們利用自動(dòng)獲取的詞表來構(gòu)建網(wǎng)格結(jié)構(gòu)。例如,“和平共處”“和平”“共處”表示兩種分詞標(biāo)準(zhǔn)得到的多粒度詞語結(jié)果。Zhang等[15]的工作表明混合詞典信息的網(wǎng)格LSTM結(jié)構(gòu)可以建模句子從開始字到結(jié)束字的信息流動(dòng)過程。我們將本文提出的模型在Gong等[14]構(gòu)建的多粒度標(biāo)注數(shù)據(jù)上進(jìn)行了訓(xùn)練。實(shí)驗(yàn)表明,模型可以從上下文中自動(dòng)尋找到多粒度中文分詞結(jié)果,并取得很好的效果。與基于字的LSTM多粒度中文分詞模型相比,我們的模型利用了多粒度的詞語信息作為模型特征。實(shí)驗(yàn)結(jié)果表明,我們的模型結(jié)果要好于基于字的LSTM多粒度中文分詞模型和基于句法分析的多粒度中文分詞模型,并且在多粒度中文數(shù)據(jù)集上取得了目前最好的結(jié)果。
圖1 網(wǎng)格結(jié)構(gòu)
我們?cè)诨谧值腖STM模型中加入潛在的粒度多樣化的詞語信息并構(gòu)建Lattice-LSTM模型。給定句子s=c1,c2,…,cm作為輸入,其中,cj代表這個(gè)句子中的第j個(gè)字。輸出是粒度從粗到細(xì)的多粒度標(biāo)簽,如表2所示。每個(gè)詞在單粒度上采用BIES標(biāo)簽體系。
表2 多粒度標(biāo)簽
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)利用隱藏狀態(tài)來保存歷史信息,是解決序列標(biāo)注問題的一種有效方法。然而,由于梯度消失的原因,RNN不能很好地學(xué)習(xí)到長(zhǎng)距離依賴關(guān)系。長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)在RNN的基礎(chǔ)上引入記憶單元來記錄狀態(tài)信息,并通過三種名為輸入門、遺忘門和輸出門的門結(jié)構(gòu)來更新隱藏狀態(tài)和記憶單元。
(1)
(2)
圖2 本文提出的模型
? Char+bichar
雙字特征在中文分詞任務(wù)中對(duì)于字特征的表示起到了很好的作用[7,9,16]。于是,通過將單字向量和雙字向量進(jìn)行拼接的方式,在基于字的LSTM-CRF模型中加入雙字特征,如式(3)所示。
(3)
其中,eb表示雙字向量映射表。
模型的全部結(jié)構(gòu)如圖2(b)所示。我們的模型可以看作是在基于字的LSTM-CRF模型基礎(chǔ)上加入詞特征,并利用門結(jié)構(gòu)引導(dǎo)信息的流動(dòng)。
(4)
(5)
(6)
(7)
(8)
(9)
一個(gè)標(biāo)準(zhǔn)的CRF(層)作用在h1,h2,…,hm上。標(biāo)簽序列y=l1,l2,…,lm的生成概率如式(10)所示。
(10)
其中,y′是任意可能的標(biāo)簽。我們采用維特比算法來得到最可能的標(biāo)簽序列。
對(duì)于多粒度中文分詞任務(wù),實(shí)驗(yàn)所用的訓(xùn)練語料和測(cè)試語料來源于Gong等[14]構(gòu)建的多粒度標(biāo)注數(shù)據(jù)集。該數(shù)據(jù)集由MSR,PPD,CTB這三個(gè)分詞標(biāo)準(zhǔn)不一致的數(shù)據(jù)集以及人工標(biāo)注測(cè)試數(shù)據(jù)集構(gòu)成,詳細(xì)信息如表3所示。
表3 訓(xùn)練集、開發(fā)集和測(cè)試集統(tǒng)計(jì)信息
超參數(shù)的選擇對(duì)神經(jīng)網(wǎng)絡(luò)模型有很大的影響。在我們的模型中,超參數(shù)的設(shè)置如表4所示。字向量、雙字向量及網(wǎng)格中的詞向量都采用隨機(jī)初始化的方式,且向量維度都設(shè)為50。LSTM模型的隱藏層維度設(shè)為200,層數(shù)為1。對(duì)于字向量和網(wǎng)格中的詞向量都使用Dropout[17],且值設(shè)為0.5。優(yōu)化算法使用SGD(隨機(jī)梯度下降法)對(duì)模型優(yōu)化,且初始學(xué)習(xí)率設(shè)為0.015并以0.05的速率進(jìn)行衰減。我們選擇在開發(fā)集上效果最好的模型來對(duì)測(cè)試集進(jìn)行評(píng)測(cè)。由于時(shí)間和計(jì)算資源的限制,之后我們將會(huì)繼續(xù)探索預(yù)訓(xùn)練詞向量和詞向量表示對(duì)模型的影響。
表4 超參數(shù)值表
表5給出了本文提出的基于Lattice-LSTM的多粒度中文分詞模型在多粒度中文標(biāo)注數(shù)據(jù)開發(fā)集和測(cè)試集上的實(shí)驗(yàn)結(jié)果,且同Gong等[14]的實(shí)驗(yàn)結(jié)果進(jìn)行了對(duì)比。本文提出的方法是在基于字的LSTM多粒度中文分詞模型基礎(chǔ)上,加入了網(wǎng)格結(jié)構(gòu)。從表5中我們可以看出,我們的模型效果要好于Gong等[14]基于字的LSTM模型的效果,開發(fā)集的F1值從95.41%提高到了96.78%。而且,表5的實(shí)驗(yàn)結(jié)果表明,同Lattice-LSTM模型相比,引入雙字特征之后的Lattice-LSTM模型并沒有使得開發(fā)集的F1值很大的提升。這是因?yàn)殡m然雙字向量在一定程度上可以消除單字歧義,但是雙字向量也是模棱兩可的。
通過對(duì)實(shí)驗(yàn)結(jié)果的對(duì)比與分析,本文提出的Lattice-LSTM多粒度中文分詞模型好于Gong等[14]提出的基于字的LSTM多粒度中文分詞模型和基于句法分析的多粒度中文分詞模型,并且對(duì)于引入雙字特征后的Gong等[14]的模型,本文模型的實(shí)驗(yàn)效果依然顯得更好?;贚attice-LSTM的多粒度中文分詞模型充分利用了蘊(yùn)含著分詞粒度多樣化特征的詞語信息,對(duì)多粒度中文分詞任務(wù)實(shí)驗(yàn)效果的提升起到了一定的幫助作用。
表5 本文模型與Gong等[14]模型實(shí)驗(yàn)結(jié)果對(duì)比
最大長(zhǎng)度匹配方法是中文分詞的經(jīng)典方法,此方法基于合適的搭配詞典就可以取得一定程度上可以使人接受的性能。Xue[1]是最先將分詞問題轉(zhuǎn)化成基于字的序列標(biāo)注問題。Peng等[4]的工作表明將條件隨機(jī)場(chǎng)應(yīng)用于基于字的序列標(biāo)注模型中可以取得不錯(cuò)的效果。研究者們將這些方法用于神經(jīng)網(wǎng)絡(luò)模型中[6-7,18-19]。除了字特征外,詞特征以及將詞特征與字特征相結(jié)合的方法也被應(yīng)用于神經(jīng)網(wǎng)絡(luò)模型[8,20-23]。
研究者們對(duì)樹結(jié)構(gòu)循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行不斷改進(jìn),形成了網(wǎng)格結(jié)構(gòu)循環(huán)神經(jīng)網(wǎng)絡(luò)。網(wǎng)格RNNs被應(yīng)用于解決機(jī)器翻譯[24]、同聲傳譯[25]、命名實(shí)體識(shí)別[15]等問題。Su等[24]提出基于詞網(wǎng)格的RNN編碼器用于解決機(jī)器翻譯問題。Sperber等[25]將樹結(jié)構(gòu)LSTM轉(zhuǎn)化為網(wǎng)格LSTM并融合了語音翻譯的詞典信息,取得了不錯(cuò)的效果。Zhang等[15]提出將詞典特征融入到網(wǎng)格結(jié)構(gòu)RNNs中以解決中文命名實(shí)體識(shí)別問題。此方法在字序列信息的基礎(chǔ)上充分利用了詞的信息,減少了分詞錯(cuò)誤信息的傳遞,同時(shí)取得了很好的結(jié)果。
針對(duì)多粒度中文分詞任務(wù),我們?cè)趥鹘y(tǒng)基于字的LSTM模型基礎(chǔ)上,加入了多種分詞粒度的詞典信息。與傳統(tǒng)模型相比,我們把多種分詞粒度的詞語信息作為特征輸入到模型中。這些詞語中包含多種粒度的詞語,可以在一定程度上為模型提供更多的知識(shí)引導(dǎo)。在網(wǎng)格結(jié)構(gòu)的輔助下,本文提出的模型對(duì)不同粒度的分詞標(biāo)準(zhǔn)都有較強(qiáng)的捕捉能力。
本文針對(duì)多粒度中文分詞任務(wù),提出一種基于Lattice-LSTM的多粒度中文分詞模型。在基于字的LSTM多粒度中文分詞模型的基礎(chǔ)上,融合了多種分詞粒度的詞語信息,取得了更好的效果,可以捕捉到不同粒度的分詞標(biāo)準(zhǔn)。我們會(huì)探索多粒度中文分詞在信息檢索、機(jī)器翻譯等任務(wù)上的應(yīng)用。