施寒瑜,曲維光,2,魏庭新,周俊生,顧彥慧
(1.南京師范大學(xué)計算機(jī)與電子信息學(xué)院/人工智能學(xué)院,江蘇 南京 210023) (2.南京師范大學(xué)文學(xué)院,江蘇 南京 210097) (3.南京師范大學(xué)國際文化教育學(xué)院,江蘇 南京 210097)
數(shù)量短語是現(xiàn)代漢語中主要起計數(shù)作用的短語,包括統(tǒng)計數(shù)目多少或計算次序先后等. 數(shù)量短語作為現(xiàn)代漢語中常用的語法結(jié)構(gòu),一般用于修飾名詞短語,并以“數(shù)詞+量詞+名詞”的常規(guī)語序出現(xiàn),然而在真實語境中,語言表達(dá)通常遵循經(jīng)濟(jì)原則,若名詞中心語在上下文有提示,數(shù)量短語通常會以中心語省略的形式出現(xiàn)在日常語言中使用. 如“店家無奈,只好又給武松篩酒…武松前后共吃了十八碗. ”這種數(shù)量短語的特殊用法黎錦熙將其稱之為“替代中心詞”[1],即數(shù)量詞修飾的中心語名詞被省略,由前面的數(shù)量詞替代,省略條件為中心語名詞在上下文至少出現(xiàn)一次;并且該類數(shù)量短語在句法上可獨立充當(dāng)主語、賓語等句子成分.
近年來,有不少關(guān)于數(shù)量短語識別的研究工作. 以往大部分研究是基于知識庫和規(guī)則的方法實現(xiàn)“數(shù)詞+量詞”短語識別. 白曉革等[2]將數(shù)量短語的構(gòu)成模式細(xì)分為數(shù)詞短語、數(shù)量短語、模糊數(shù)詞短語、模糊數(shù)量短語、序數(shù)數(shù)量短語、范圍數(shù)量短語、特殊符合量詞短語和指量短語,并加以概念層次網(wǎng)絡(luò)(hierarchical network of concepts,HNC)世界知識庫以及數(shù)量短語3大詞庫對語料進(jìn)行分析和提取,正確率和召回率達(dá)到90%. 張玲等[3]在探討數(shù)量短語構(gòu)成模型的基礎(chǔ)上構(gòu)建一個為數(shù)量短語識別提供詞匯知識和短語結(jié)構(gòu)知識的數(shù)據(jù)庫,在1萬字人民日報的新聞?wù)Z料中正確率為90.9%,召回率為98.7%. 熊文等[4]在張玲等[2-3]的基礎(chǔ)上又提出一種基于規(guī)則不依賴于分詞的中文數(shù)量短語的識別,該方法在人民日報的未標(biāo)注語料進(jìn)行了識別,召回率達(dá)到98.7%,精度為90.9%. 以上研究都是針對“數(shù)詞+量詞”邊界的識別. 然而僅僅識別數(shù)量短語在實際應(yīng)用中是不夠的,數(shù)量短語是名詞中心語的修飾成分,識別數(shù)量短語只能實現(xiàn)HNC句類分析的前置處理. 本文將數(shù)量名短語作為一個整體進(jìn)行識別,有利于數(shù)量信息的抽取,利于機(jī)器翻譯、問答等相關(guān)工作的實現(xiàn),同時有利于解決中文抽象語義表示(CAMR)模式中數(shù)量短語增補(bǔ)外部概念節(jié)點(名詞性詞匯語類缺省添加),補(bǔ)全數(shù)量短語省略的工作,有助于CAMR語義自動解析工作. 目前對于“數(shù)+量+名”短語的識別研究較少,且使用的是基于統(tǒng)計學(xué)習(xí)模型的識別方法. 方芳等[5]將數(shù)量名短語歸納為“基數(shù)詞+量詞+名詞”“基數(shù)詞+量詞+修飾+名詞”“序數(shù)詞+量詞+名詞”“數(shù)詞+名詞”以及“指示代詞+量詞+名詞”等5類,并基于規(guī)則庫的方法在240萬字的當(dāng)代新聞小說語料上進(jìn)行識別,調(diào)和平均值F1達(dá)到80%. 但該文只針對一種語序的數(shù)量名短語的識別,對于自然語言中出現(xiàn)的其他形式的數(shù)量名短語并未給出解決方案.
本文通過對語料的統(tǒng)計分析,發(fā)現(xiàn)數(shù)量名短語除了上述五類之外,還有3種情況:“名詞+數(shù)詞+量詞(倒裝)”“不定數(shù)詞+(量詞)+(修飾)+名詞”和“數(shù)量名短語省略”這3種情況在自然語料中所占比例有17.44%. 因此為擴(kuò)大識別數(shù)量名短語形式的規(guī)模,涵蓋更全面的具有計數(shù)意義的短語,提升模型泛化性,本文將其均納入研究范圍,實現(xiàn)對如上8種類型數(shù)量名短語的邊界識別.
在自然語言處理中將此類短語結(jié)構(gòu)化識別問題歸于序列標(biāo)注問題,相類似的有詞性標(biāo)注、命名實體識別等任務(wù). 近幾年,序列標(biāo)注問題通過神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法表現(xiàn)出很好的性能. Collobert等[6]首次實現(xiàn)將CNN模型與CRF結(jié)合應(yīng)用于命名實體識別任務(wù),在CoNLL2003的語料集上取得較好效果. 隨后,Huang等[7]采用一個人工設(shè)計語義特征的BLSTM-CRF模型在CoNLL2003語料上將F1值提升到88.83%. Chiu和Nichols[8]將CNN和LSTM結(jié)合,在CoNLL2003語料上將命名實體識別任務(wù)F1值提升至91.62%.
雖然神經(jīng)網(wǎng)絡(luò)在命名實體識別上取得優(yōu)異的效果,但將這些模型遷移到現(xiàn)代漢語數(shù)量名短語的識別領(lǐng)域中還存在若干問題. 相比命名實體識別,數(shù)量名短語識別有以下幾個難點:(1)數(shù)量名詞短語有過多的干擾項,如年月日、度量衡等這些非數(shù)量名短語的專有數(shù)量短語;(2)現(xiàn)代漢語中數(shù)詞千變?nèi)f化,量詞的種類繁多,數(shù)量名短語的組合方式多樣;(3)數(shù)詞或量詞或名詞的省略現(xiàn)象在現(xiàn)代漢語的使用中尤為常見,這導(dǎo)致識別過程中邊界模糊問題成為難點.
本文通過深度學(xué)習(xí)方法,減弱對人工特征設(shè)計和專家知識的依賴,實現(xiàn)數(shù)量名短語的識別. 本文利用中文抽象語義表示(CAMR)的語義表示體系[9]精確辨別數(shù)量名短語的左右邊界,解決手工標(biāo)注時往往遇到邊界模糊的問題. 本文語料采用中文抽象語義表示[10](CAMR)語料,在該語料上識別效果F1值達(dá)到85.07%.
本文BERT-Lattice LSTM-CRF模型一共有3部分組成,如圖1所示:
圖1 BERT-Lattice LSTM-CRF 模型框架Fig.1 BERT-Lattice LSTM-CRF model
(1)BERT預(yù)訓(xùn)練模塊:采用BERT模型進(jìn)行預(yù)訓(xùn)練,對輸入序列中的每個字符生成字符級特征表示,彌補(bǔ)數(shù)據(jù)集較少情況下,特征學(xué)習(xí)不充分的現(xiàn)象;
(2)Lattice LSTM特征獲取模塊:采用Lattice LSTM模塊進(jìn)行特征表示,該模塊融合正確分詞的軟特征. 模塊將BERT模型的輸出和名詞向量融合,解決因分詞錯誤而導(dǎo)致的錯誤傳遞現(xiàn)象并進(jìn)一步豐富特征表示;
(3)CRF解碼模塊:采用線性CRF模塊,該模塊將Lattice LSTM模型的輸出的特征表示解碼,獲取一個最優(yōu)的標(biāo)注序列.
在自然語言處理領(lǐng)域中為了更好地表示文本的特征,解決一詞多義問題,通常使用ELMo(Embedding from Language model)[11],一種基于語境的深度詞表示模型. 而2018年由Devlin等[12]提出BERT(Bidirectional Encoder Representation and Transformers)模型在ELMo模型基礎(chǔ)上改進(jìn),通過超大數(shù)據(jù)、巨大模型、和極大的計算開銷訓(xùn)練而成,并在11個自然語言處理任務(wù)中取得優(yōu)異結(jié)果.
BERT模型的子結(jié)構(gòu)是Transformer[13]雙向編碼器,它摒棄了RNN的循環(huán)網(wǎng)絡(luò)結(jié)構(gòu),把Transformer編碼器當(dāng)作模型的主題結(jié)構(gòu),利用自注意力機(jī)制對句子建模. 本文將語料輸入BERT模型預(yù)處理,可以充分學(xué)習(xí)語料的字符之間、詞語之間以及句子與句子之間關(guān)系特征,為輸入語料的每個字符生成基于當(dāng)前語境上下文的動態(tài)字符級嵌入向量,解決傳統(tǒng)詞嵌入方法將不同語境中的同一單詞映射到相同語義空間的問題,提升字符級嵌入向量的文本特征表示能力.
圖2 BERT預(yù)處理字符向量Fig.2 Pre-trained character vectors by BERT
如圖2所示,為獲取語料預(yù)訓(xùn)練的字符級嵌入向量,將原始語料處理成token嵌入,segment嵌入,position嵌入3部分輸入. BERT層通過聯(lián)合調(diào)節(jié)內(nèi)部的雙向Transformer編碼器,利用自注意力機(jī)制學(xué)習(xí)上下文中其余字符對當(dāng)前字符的貢獻(xiàn)程度,從而增強(qiáng)上下文語義信息的獲取. 最終,編碼生成基于當(dāng)前語境上下文的字符級嵌入向量.
本文將AMR語料輸入BERT模型,預(yù)訓(xùn)練生成融合上下文信息的字符級嵌入向量,并將該字符級嵌入向量輸入Lattice LSTM模型,通過Lattice LSTM模型生成含有詞語信息的字符級特征表示.
LSTM(Long Short-Term Memory)長短時記憶網(wǎng)絡(luò)[14]是RNN(Recurrent Neural Network)的一種. 該模型涉及四種類型的向量,即輸入向量,輸出隱藏向量,單元向量和門向量. 在基于字符級的LSTM模型中,每個字符cj用字符輸入向量來表示:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
圖3 Lattice LSTM 字符和詞的融合模型Fig.3 Lattice LSTM model with Character and word information fusion
(13)
(14)
(15)
(16)
(17)
式中,矩陣A是轉(zhuǎn)移矩陣,例如Aij表示由標(biāo)簽i轉(zhuǎn)移到j(luò)的概率,y0,yn則是預(yù)測句子起始和結(jié)束的標(biāo)注,因此A是一個大小為m+2的方陣.所以在原語句S的條件下產(chǎn)生標(biāo)注序列y的概率為:
(18)
在訓(xùn)練過程中標(biāo)注序列的似然函數(shù):
(19)
其中,Yx表示所有可能的標(biāo)注集合,包括不符合BIOES[17]標(biāo)注規(guī)則的標(biāo)注序列.通過式(19)得到有效合理的輸出序列.預(yù)測時,由式(20)輸出整體概率最大的一組序列:
(20)
訓(xùn)練過程中,使用具有批量大小10和動量0.9的小批量隨機(jī)梯度下降(SGD)執(zhí)行參數(shù)優(yōu)化. 我們選擇學(xué)習(xí)率為0.015. 同時,通過實驗發(fā)現(xiàn)在LSTM的輸入和輸出部分增加Dropout可以減輕模型過擬合的問題,Dropout[18]值選取了0.5.
我們探索了其他更復(fù)雜的優(yōu)化算法,如AdaDelta[19],Adam[20]或RMSProp[21],但它們都沒有在我們的動量和梯度削減中改進(jìn)SGD.
本文采用的語料是小學(xué)1-6年級語文教材(人教版)的抽象語義表示(AMR)語料[10],共8 587個中文句子,其中數(shù)量名短語總計有6 142個. 本文將語料以7∶1的比例分為訓(xùn)練集7 587句,數(shù)量名短語 5 320個;測試集1 000句,數(shù)量名短語822個. 數(shù)量名短語分成如下8種類型:(1)基數(shù)詞+量詞+名詞;(2)基數(shù)詞+量詞+修飾+名詞;(3)序數(shù)詞+量詞+名詞;(4)數(shù)詞+名詞;(5)指示代詞+量詞+名詞;(6)名詞+數(shù)詞+量詞(倒裝);(7)不定數(shù)詞+(量詞)+(修飾)+名詞;(8)數(shù)量名短語省略. 如表1所示:
表1 數(shù)量名短語形式短語分類Table 1 Categories of quantity noun phrases
在語料處理方面,為了能夠清楚地表示語料中待識別的數(shù)量名短語,本文采用序列化標(biāo)注任務(wù)中常用的BIOES[16]標(biāo)注方式. 數(shù)量名短語的左邊界標(biāo)記為B-NUM,右邊界標(biāo)記為E-NUM,中間文本標(biāo)記為 I-NUM,該方式能更清楚的劃分?jǐn)?shù)量名短語的左右邊界. 本文為了消除分詞錯誤造成的錯誤傳遞問題,在處理語料時以中文字符為單位進(jìn)行標(biāo)記. 該方法減少因中文分詞歧義而造成邊界模糊的問題,使得數(shù)量名短語左右邊界更為精確便于深度學(xué)習(xí)模型的訓(xùn)練和測試.
本文通過對比實驗的結(jié)果來分析各個模塊在模型中起到的作用,實驗結(jié)果如表2,3所示. 其中,BLSTM-CRF,CRF,Lattice LSTM-CRF三種模型均采用基于Baidu Encyclopedia預(yù)訓(xùn)練的字向量;BERT-CRF,BERT-BLSTM-CRF,BERT-Lattice LSTM-CRF 3種模型中BERT模型采用BERT-Base,Chinese字符級預(yù)訓(xùn)練模型.
表3 模型精確率、召回率、F1值Table 3 Precision,recall and F1 results
表2 模型結(jié)果對比Table 2 Comparison of model results
本文的基線模型采用傳統(tǒng)的機(jī)器學(xué)習(xí)方法CRF模型. 傳統(tǒng)的機(jī)器學(xué)習(xí)方法在規(guī)則性較強(qiáng)的識別任務(wù)上可取得較好效果. 本文研究的數(shù)量名短語大部分左邊界由具體的數(shù)詞組成,數(shù)詞的表達(dá)方式又明顯有別于漢語其他詞類,加之量詞基本是一個封閉集合,所以CRF模型能夠充分利用相鄰標(biāo)簽關(guān)系實現(xiàn)邊界識別. CRF模型在本文數(shù)量名短語邊界識別任務(wù)中F1值達(dá)到75.02%.
在CRF模型基礎(chǔ)上,本文加入BERT模型,利用BERT自身Transformer模塊,通過自注意力機(jī)制使得CRF獲取具有文本上下文信息的字符級特征表示,豐富CRF模型的特征獲取. 實驗證明,在加入預(yù)訓(xùn)練模型后,BERT-CRF模型F1值為78.62%,比基線CRF模型的F1值高出了3.60%,BERT-CRF模型的召回率也明顯優(yōu)于CRF模型.
BLSTM-CRF深度學(xué)習(xí)模型效果遠(yuǎn)不如統(tǒng)計學(xué)習(xí)CRF模型,原因在于該模型訓(xùn)練數(shù)量名短語此類左邊界相對封閉,右邊界開放的短語結(jié)構(gòu)時,從右往左讀取的右邊界信息的無規(guī)律性,導(dǎo)致右邊界識別效果不佳;同時BLSTM-CRF模型受到訓(xùn)練數(shù)據(jù)集較少的約束而不能充分表示每個字符在文本中的特征信息,從而導(dǎo)致識別效果遠(yuǎn)不如統(tǒng)計學(xué)習(xí)CRF模型. 為彌補(bǔ)小數(shù)據(jù)集帶來的缺陷,本文融合預(yù)訓(xùn)練模型BERT,實驗表明經(jīng)過預(yù)訓(xùn)練處理后識別效果有顯著提升. 相較BERT-CRF模型,BERT-BLSTM-CRF模型中的雙向LSTM模塊能將BERT預(yù)訓(xùn)練獲得的上下文字符向量訓(xùn)練出更符合上下文的特征表示,并將F1值提升3.97%. 由此可見深度學(xué)習(xí)方法在數(shù)量名短語邊界識別的任務(wù)中能發(fā)揮其優(yōu)勢. 相比僅使用字符信息的BLSTM模型,本文認(rèn)為結(jié)合了正確切分的名詞信息的Lattice LSTM模型更適合處理中文語料. 實驗結(jié)果表明,Lattice LSTM-CRF比BLSTM-CRF模型的F1值提升11.37%. Lattice LSTM能夠融入正確分詞軟特征,豐富字符向量的上下文特征,并且能夠減少模型因分詞錯誤而造成的錯誤傳遞問題,從而提升模型效果. 本文最優(yōu)模型BERT-Lattice LSTM-CRF將BERT預(yù)訓(xùn)練、Lattice LSTM字詞融合模型以及線性CRF模型相結(jié)合,將數(shù)量名短語的邊界識別的F1值提升至85.07%.
BERT-Lattice LSTM-CRF模型在本文AMR小學(xué)語料1000句測試集的822個數(shù)量名短語中,按照數(shù)量名短語不同類別,統(tǒng)計不同類別數(shù)量名短語的識別效果,如表4所示.
表4 不同類別數(shù)量名短語精確率、召回率及F1值Table 4 Precision,recall and F1 results of different quantity noun phrases categories
在數(shù)量名短語中,“基數(shù)詞+量詞+名詞”是數(shù)量名短語中短語形式最為常規(guī)的一類,也是最為常見的一類,在測試集中占24.82%,其識別效果F1值為93.21%. “基數(shù)詞+量詞+名詞”“基數(shù)詞+量詞+修飾+名詞”“指示代詞+量詞+名詞”和“不定數(shù)詞+(量詞)+(修飾)+名詞”這四種類別在現(xiàn)代漢語中出現(xiàn)頻率較高,因而深度學(xué)習(xí)模型能夠充分這四種類別的短語特征,取得相對較好的識別效果. “數(shù)詞+名詞”類別的F1值為76.84%,在所有數(shù)量名短語中識別效果較差,原因在于中文常見“數(shù)+名+數(shù)+名”短語的詞語,如“一文一武”“千言萬語”等詞語識別成“一文”“一武”“千言”和“萬語”等非數(shù)量名短語從而導(dǎo)致該類數(shù)量名短語識別的精確率和F1值偏低. “名詞+數(shù)詞+量詞(倒裝)”類別的F1值為72.73%,在數(shù)量名短語識別中識別結(jié)果最低,其主要問題在于該類型數(shù)量名短語在訓(xùn)練語料中出現(xiàn)頻率低,模型無法充分學(xué)習(xí)該類數(shù)量名短語的特征. 在以往數(shù)量短語識別中,僅僅識別未缺省的數(shù)量名短語,無識別“省略數(shù)量名短語”的相關(guān)工作. 本文將“數(shù)量名短語省略”類別納入識別范疇,填補(bǔ)該類短語識別工作的空白,模型取得較優(yōu)越效果,F1值達(dá)到84.51%. 同時,該結(jié)果對于后期“省略數(shù)量名短語”的補(bǔ)全工作具有先導(dǎo)意義.
表5 JLM數(shù)量名短語精確率、召回率和F1值Table 5 Precision,recall and F1 results of JLM quantity nonn phrase
以往工作僅僅針對“基數(shù)詞+量詞+名詞”“基數(shù)詞+量詞+修飾+名詞”“序數(shù)詞+量詞+名詞”“數(shù)詞+名詞”和“指示代詞+量詞+名詞”這五種數(shù)量名短語識別(以符號JLM表示). 本文模型針對這五類數(shù)量名短語的識別效果遠(yuǎn)超方芳[5]等80%的調(diào)和平均值,如表5所示,F1值達(dá)到86.15%. 本文在JLM數(shù)量名短語的基礎(chǔ)上將“名詞+數(shù)詞+量詞(倒裝)”“不定數(shù)詞+(量詞)+(修飾)+名詞”和“數(shù)量名短語省略”三種數(shù)量名短語納入識別范圍,并實現(xiàn)F1值85.07%的識別效果.
綜上,本文工作擴(kuò)大數(shù)量名短語的識別范疇,填補(bǔ)“省略數(shù)量名短語”識別工作的空白,并通過BERT-Lattice LSTM-CRF組合深度模型實現(xiàn)目前最優(yōu)的數(shù)量名短語識別效果.
本文針對現(xiàn)代漢語數(shù)量名短語識別任務(wù),通過BERT預(yù)訓(xùn)練模型獲得具有上下文信息的字符向量表示,并通過Lattice LSTM網(wǎng)絡(luò)將字和詞的信息融合,豐富字符級網(wǎng)絡(luò)的詞語信息,減少分詞錯誤造成的錯誤傳遞,最后通過CRF全局約束完成數(shù)量名短語識別工作,在AMR小學(xué)語料中取得較好性能. 主要結(jié)論如下:
(1)在現(xiàn)代漢語數(shù)量名短語識別任務(wù)中,人工特征和知識庫對于結(jié)果的影響很大,但構(gòu)建合適的人工特征需要大量的特征提取實驗,導(dǎo)致了系統(tǒng)的成本提升、泛化能力下降. 本文采用的深度學(xué)習(xí)方法可以自動獲取數(shù)量名短語的結(jié)構(gòu)特征,大大降低人工獲取特征的工作量并提升模型泛化能力.
(2)本文在JLM數(shù)量名短語的基礎(chǔ)上擴(kuò)大識別范疇,并采用深度學(xué)習(xí)模型,構(gòu)建BERT-Lattice LSTM-CRF組合模型,在不使用任何人工特征的情況下,實現(xiàn)數(shù)量名短語邊界識別F1值達(dá)到85.07%.
(3)實驗表明,BERT模型預(yù)訓(xùn)練字符向量的加入,使得模型實現(xiàn)對于含有不常用數(shù)詞和量詞這類數(shù)量名短語更有效地識別;通過Lattice LSTM網(wǎng)絡(luò)把正確分詞的信息融入字符向量的表示,減少因分詞錯誤導(dǎo)致的邊界偏移問題;最后采用線性CRF算法提升對含有多修飾詞、邊界模糊的現(xiàn)代漢語數(shù)量名短語的識別能力.
綜上,本文研究基于組合神經(jīng)網(wǎng)絡(luò)的數(shù)量名短語識別方法. 通過BERT預(yù)訓(xùn)練模塊學(xué)習(xí)文本字符級上下文特征表示,利用Lattice LSTM字詞融合思想,結(jié)合線性CRF全局約束完成識別任務(wù). 在下一步的研究中,我們將進(jìn)一步擴(kuò)大語料規(guī)模,使得模型學(xué)習(xí)更多更豐富的特征信息以取得更好效果. 隨后,我們在識別數(shù)量名短語的基礎(chǔ)上,解決中文抽象語義表示(CAMR)模式中數(shù)量短語增補(bǔ)外部概念節(jié)點(名詞性詞匯語類缺省添加),補(bǔ)全數(shù)量短語省略的工作并嘗試將補(bǔ)全的省略數(shù)量名短語用于CAMR語義自動解析等工作中.