胡萬(wàn)亭,郭建英,張繼永
(1.河南大學(xué) 濮陽(yáng)工學(xué)院,河南 濮陽(yáng) 457000; 2.西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,四川 成都 610000)
實(shí)體指文本中的專(zhuān)有名詞、時(shí)間、日期等。命名實(shí)體是以名稱(chēng)標(biāo)識(shí)的實(shí)體,主要是人名、地名和組織機(jī)構(gòu)名。命名實(shí)體識(shí)別是自然語(yǔ)言處理的重要環(huán)節(jié),但是不能通過(guò)簡(jiǎn)單的詞典匹配來(lái)識(shí)別,所以具有一定難度。組織機(jī)構(gòu)名主要包括四大類(lèi):民間組織團(tuán)體、體育藝術(shù)專(zhuān)業(yè)團(tuán)隊(duì)、行政事業(yè)單位和企業(yè)公司。一般通用的命名實(shí)體識(shí)別算法中,組織機(jī)構(gòu)名相較于其他實(shí)體名的識(shí)別準(zhǔn)確率最低,研究專(zhuān)門(mén)的組織機(jī)構(gòu)名識(shí)別方法非常有必要。
早期命名實(shí)體識(shí)別主要是基于規(guī)則方法,從分析機(jī)構(gòu)名的構(gòu)詞規(guī)則和語(yǔ)義上下文規(guī)則入手,通過(guò)規(guī)則匹配確定組織機(jī)構(gòu)名[1],這類(lèi)方法的弊端就是花費(fèi)人力制定規(guī)則和詞典,規(guī)則不具有可移植性,識(shí)別效果不理想。隨著技術(shù)的發(fā)展,統(tǒng)計(jì)學(xué)習(xí)的方法逐漸占據(jù)主流,主要有最大熵模型[2]、支持向量機(jī)[3]、隱馬爾可夫模型[4]、條件隨機(jī)場(chǎng)模型等[5]。文獻(xiàn)[6]從分析組織機(jī)構(gòu)名構(gòu)成為出發(fā)點(diǎn),利用大規(guī)模機(jī)構(gòu)名語(yǔ)料計(jì)算機(jī)構(gòu)詞概率,可以快速識(shí)別組織機(jī)構(gòu)名。
近年來(lái),基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)發(fā)展迅速,也被應(yīng)用到了命名實(shí)體識(shí)別領(lǐng)域,取得非常好的效果。神經(jīng)網(wǎng)絡(luò)模型(long short term memory,LSTM)可以將token映射到label,但是沒(méi)有考慮輸出label之間的關(guān)系,條件隨機(jī)場(chǎng)考慮標(biāo)簽的轉(zhuǎn)移概率,可以有更好的標(biāo)記結(jié)果,所以目前主要的識(shí)別方法是神經(jīng)網(wǎng)絡(luò)和條件隨機(jī)場(chǎng)結(jié)合的模型。Huang等人[7]提出雙向LSTM-CRF模型,在CoNLL2003數(shù)據(jù)集上進(jìn)行命名實(shí)體識(shí)別時(shí),F(xiàn)1值達(dá)到了90.10%。Ma等人[8]提出BiLSTM-CNNs-CRF模型,在CoNLL2003的數(shù)據(jù)集上,F(xiàn)1值達(dá)到了91.21%。
張晗等人[9]將生成式對(duì)抗網(wǎng)絡(luò)與BiLSTM-Attention-CRF模型相結(jié)合,對(duì)領(lǐng)域命名實(shí)體進(jìn)行識(shí)別。石春丹等人[10]結(jié)合潛在詞信息和基于字符的BGRU-CRF模型進(jìn)行中文命名實(shí)體識(shí)別,有效避免實(shí)體歧義。武惠等人[11]提出一種基于遷移學(xué)習(xí)和深度學(xué)習(xí)的TrBiLSTM-CRF模型,利用遷移學(xué)習(xí)算法有效解決少量數(shù)據(jù)學(xué)習(xí)能力不足的問(wèn)題。
神經(jīng)網(wǎng)絡(luò)模型的輸入需要將詞表達(dá)為向量,最簡(jiǎn)單的one-hot向量維度太高,容易造成維度災(zāi)難,而且不能有效表達(dá)單詞之間的關(guān)系。2013年,谷歌提出詞嵌入模型Word2Vec,降低了數(shù)據(jù)維度,而且取得了很好的效果。不過(guò)Word2vec詞向量對(duì)每個(gè)詞只能表示成一個(gè)向量,對(duì)于一詞多義的情況無(wú)法表達(dá)。2018年以來(lái),詞嵌入模型迅速發(fā)展,ELMO、BERT、ERNIE等模型快速更迭,特別是基于BERT的各種改進(jìn)模型在自然語(yǔ)言處理各個(gè)領(lǐng)域不斷取得更好的成績(jī),百度也宣稱(chēng)ERNIE模型能更好地適用于中文處理領(lǐng)域。中文的ELMO模型生成的是詞向量,中文的BERT、ERNIE模型生成的是字向量,在自然語(yǔ)言處理的各個(gè)領(lǐng)域里字符向量和詞向量沒(méi)有明顯區(qū)別,甚至字符向量效果更好。文獻(xiàn)[12]提出了預(yù)訓(xùn)練模型BERT。文獻(xiàn)[13-14]將BERT預(yù)訓(xùn)練模型用于中文命名實(shí)體識(shí)別,取得較高的F1值。
組織機(jī)構(gòu)名和其他實(shí)體對(duì)比,文本較長(zhǎng),識(shí)別準(zhǔn)確率相對(duì)較低,所以為了進(jìn)一步提高組織機(jī)構(gòu)名識(shí)別的準(zhǔn)確率,該文提出一種基于改進(jìn)ELMO中文組織機(jī)構(gòu)名識(shí)別方法。主要工作是對(duì)ELMO詞向量的預(yù)訓(xùn)練過(guò)程進(jìn)行改進(jìn),在哈工大ELMO工具的基礎(chǔ)上,重新整理訓(xùn)練字典,融入高頻機(jī)構(gòu)構(gòu)成詞。生成的字詞向量嵌入BiLSTM-CRF進(jìn)行詞性標(biāo)注,提升了組織機(jī)構(gòu)名的標(biāo)注效果。
概率圖模型被廣泛用于自然語(yǔ)言處理的序列標(biāo)注問(wèn)題,包括節(jié)點(diǎn)集合和邊的集合,節(jié)點(diǎn)表示隨機(jī)變量,邊表示變量之間的概率依賴(lài)關(guān)系。概率圖模型主要包括隱馬爾可夫模型(hidden Markov model,HMM)和條件隨機(jī)場(chǎng)模型(conditional random field,CRF)。
條件隨機(jī)場(chǎng)屬于判別式概率模型,是依據(jù)隨機(jī)變量X生成隨機(jī)變量Y的馬爾可夫隨機(jī)場(chǎng)。基于條件概率分布模型P(Y|X),X是輸入變量,表示觀測(cè)序列,Y是輸出變量,表示狀態(tài)序列,在實(shí)體識(shí)別中代表標(biāo)記序列。

圖1 線(xiàn)性鏈條件隨機(jī)場(chǎng)
常用的線(xiàn)性鏈條件隨機(jī)場(chǎng)如圖1所示,X=(X1,X2,…,Xn)為輸入隨機(jī)變量序列,Y=(Y1,Y2,…,Yn)為輸出隨機(jī)變量序列,如果模型滿(mǎn)足馬爾可夫性,即P(Yi|X,Y1,…,Yi-1,Yi+1,…,Yn),則該概率分布模型就構(gòu)成了條件隨機(jī)場(chǎng)。在命名實(shí)體識(shí)別中,X是可觀測(cè)的字符序列,Y是對(duì)應(yīng)的詞性標(biāo)注序列,由X產(chǎn)生Y的概率如式1:
(1)
其中,tk是觀測(cè)序列和位置i、i-1標(biāo)記的轉(zhuǎn)移特征函數(shù),λk是tk的權(quán)值。sl是觀測(cè)值和當(dāng)前位置標(biāo)記的狀態(tài)特征函數(shù),ul是sl的權(quán)值,有效特征權(quán)值變大,無(wú)效特征權(quán)值變小。Z(X)是歸一化因子,將全部標(biāo)記序列概率和歸為一。
模型實(shí)際上相當(dāng)于一個(gè)分類(lèi)模型,最大概率值對(duì)應(yīng)的標(biāo)記序列就是分類(lèi)結(jié)果,如式(2)所示。
(2)
ELMO是一種具有上下文語(yǔ)義的詞表達(dá)方法,由Matthew E.等人[15]在NAACL2018會(huì)議上發(fā)表的論文中提出。該方法利用雙向LSTM模型進(jìn)行詞向量的預(yù)訓(xùn)練,可以靈活運(yùn)用到下游任務(wù),比如文本分類(lèi)、問(wèn)答系統(tǒng)、情感分析等領(lǐng)域,效果顯著。
ELMO模型需要輸入字符文本序列,將每個(gè)單詞字符序列通過(guò)CharCNN轉(zhuǎn)換成單詞向量。將向量分別導(dǎo)入正向LSTM和逆向LSTM,兩個(gè)通道生成的向量做一個(gè)拼接作為每個(gè)單詞的詞向量,就是ELMO模型的輸出結(jié)果。當(dāng)然雙向LSTM也可以設(shè)置多層,每層的輸出經(jīng)過(guò)加權(quán)混合生成的向量作為ELMO模型的輸出結(jié)果。
單層雙向LSTM的中文ELMO模型如圖2所示,雙向LSTM的輸入是n個(gè)token序列(t1,t2,…,tk,…,tn),對(duì)前向LSTM模型,輸出是上下文表征序列,即每個(gè)token的詞表示。參數(shù)通過(guò)求序列出現(xiàn)的概率公式訓(xùn)練,參數(shù)要滿(mǎn)足式(3)概率最大化。反向LSTM模型訓(xùn)練與正向同理,過(guò)程逆序,即由后面tokens計(jì)算當(dāng)前token的概率,序列出現(xiàn)的概率由式(4)確定。
(3)
(4)
結(jié)合式(3)、式(4),可以得到ELMO的目標(biāo)函數(shù),訓(xùn)練參數(shù)就是使得目標(biāo)函數(shù)最大化。為了簡(jiǎn)化計(jì)算,利用最大似然估計(jì)將目標(biāo)函數(shù)定義為式(5)。
(5)
其中,Θx是開(kāi)始輸入的向量,Θs是softmax層參數(shù),ΘLSTM是LSTM的參數(shù)。
組織機(jī)構(gòu)名和其他實(shí)體對(duì)比,文本較長(zhǎng),識(shí)別準(zhǔn)確率相對(duì)較低。為了進(jìn)一步提高組織機(jī)構(gòu)名識(shí)別的準(zhǔn)確率,該文提出一種組織機(jī)構(gòu)名識(shí)別方法。在哈工大ELMO工具的基礎(chǔ)上,重新整理字典,融入高頻機(jī)構(gòu)構(gòu)成詞,對(duì)于中文ELMO預(yù)訓(xùn)練過(guò)程加以改進(jìn),最后將自訓(xùn)練的字詞向量和BiLSTM-CRF模型結(jié)合預(yù)測(cè)字詞標(biāo)簽,從而識(shí)別組織機(jī)構(gòu)名。
機(jī)構(gòu)詞來(lái)源有兩個(gè),一是人工整理機(jī)構(gòu)后綴詞,非單字的后綴詞全部加入機(jī)構(gòu)詞詞表,比如“公司”、“公安局”、“藝術(shù)團(tuán)”等詞。二是根據(jù)《人民日?qǐng)?bào)》語(yǔ)料和百科詞條,統(tǒng)計(jì)高頻機(jī)構(gòu)構(gòu)成詞。首先,從《人民日?qǐng)?bào)》1998年版、2014年版標(biāo)注語(yǔ)料和微軟亞洲研究院MSRA里根據(jù)標(biāo)注抽出組織機(jī)構(gòu)名。為了增加語(yǔ)料的豐富性,加入四百多萬(wàn)個(gè)百度詞條名,百度詞條有類(lèi)別標(biāo)簽,用ICTCLAS、哈工大分詞分別分詞,共同識(shí)別組織機(jī)構(gòu)名,單個(gè)分詞系統(tǒng)識(shí)別的組織機(jī)構(gòu)名,如果詞條名的類(lèi)別是“團(tuán)體”、“組織”、“機(jī)構(gòu)”、“協(xié)會(huì)”的名詞也確認(rèn)為組織機(jī)構(gòu)名。對(duì)于極少數(shù)識(shí)別錯(cuò)誤和漏識(shí)別的組織機(jī)構(gòu)名,對(duì)統(tǒng)計(jì)高頻機(jī)構(gòu)詞影響不大,它們作為噪聲數(shù)據(jù)和低頻機(jī)構(gòu)詞都會(huì)被淘汰。開(kāi)始統(tǒng)計(jì)機(jī)構(gòu)名構(gòu)成詞構(gòu)成機(jī)構(gòu)名的概率值,通過(guò)式(6)確定:
fi=Ii/Ci
(6)
其中,Ii是單詞i在機(jī)構(gòu)名內(nèi)出現(xiàn)的頻數(shù),Ci是單詞i在整個(gè)語(yǔ)料里出現(xiàn)的頻數(shù)。
單詞頻數(shù)過(guò)低的可能是噪聲數(shù)據(jù),取詞頻數(shù)大于5,且f>0.1的詞語(yǔ)。將高頻詞加入機(jī)構(gòu)構(gòu)成詞表,詞表大小約為300左右。
自然語(yǔ)言處理很多領(lǐng)域里字向量比詞向量有更好的效果,主要原因可能包括未登錄詞問(wèn)題和分詞錯(cuò)誤問(wèn)題。顯然字向量(char embedding)與詞向量(word embedding)相比不存在未登錄詞問(wèn)題(這里的未登錄詞不包括正在識(shí)別的實(shí)體),可以直接用char embedding,或者通過(guò)charCNN生成word embedding,而組織機(jī)構(gòu)名有很多不在詞典中的新詞。另外,斷字不存在分詞錯(cuò)誤的問(wèn)題。所以對(duì)于預(yù)訓(xùn)練模型,該文選擇以字向量為基本單位進(jìn)行訓(xùn)練,中文模型的字典里有6 000多個(gè)字符。
但是分詞組織機(jī)構(gòu)名識(shí)別率遠(yuǎn)低于姓名和地名識(shí)別率的原因,主要是數(shù)量多、文本長(zhǎng)、構(gòu)成結(jié)構(gòu)復(fù)雜。將上節(jié)統(tǒng)計(jì)的高頻機(jī)構(gòu)詞加入字典,構(gòu)成的詞典是文本分詞標(biāo)注的基本單位,文本被分成單個(gè)的中文字符和少部分的中文詞,降低了機(jī)構(gòu)名組成的字詞長(zhǎng)度,而且將機(jī)構(gòu)詞內(nèi)字之間語(yǔ)義相關(guān)度提前學(xué)習(xí)到,期待識(shí)別機(jī)構(gòu)名會(huì)有更好的效果。
用自己構(gòu)造的詞典作為ELMO訓(xùn)練文本分詞的基本單位,訓(xùn)練得到的字詞向量作為識(shí)別模型嵌入層的輸入,如圖3中的ELMO嵌入。從圖中可以看到,文本基本被分成字:“我”、“在”、“盛”、“友”,然后高頻的機(jī)構(gòu)詞“股份”和后綴詞“公司”未被分開(kāi)。詞典中“股”、“份”、“公”、“司”、“股份”、“公司”都存在,仍然可以避免未登錄詞問(wèn)題。
模型共有三部分,分別是ELMO詞嵌入、雙向LSTM和CRF,如圖3所示。

圖3 組織機(jī)構(gòu)名識(shí)別模型
模型輸入的是自訓(xùn)練的ELMO詞向量,輸出的是每個(gè)詞對(duì)應(yīng)的標(biāo)注。詞嵌入層主要是以字為單位,融入了少部分機(jī)構(gòu)名后綴詞和高頻機(jī)構(gòu)詞。對(duì)詞典來(lái)說(shuō)的少部分詞對(duì)組織機(jī)構(gòu)名卻是高頻詞,詞內(nèi)各個(gè)字的語(yǔ)義相關(guān)性不用再通過(guò)學(xué)習(xí)得到。主體以字為單位的好處可以通過(guò)上面例子分析。比如“盛友”對(duì)于分詞詞典來(lái)說(shuō)是未登錄詞,機(jī)構(gòu)名“盛大”、“盛安”、“盛天”、“全友”、“雙友”都是詞典里的詞,這些機(jī)構(gòu)名對(duì)于“盛友”的機(jī)構(gòu)名特征作用有限。但是以字為單位的時(shí)候,“盛”、“友”這些字的機(jī)構(gòu)名特征都可以學(xué)習(xí)到,對(duì)于識(shí)別機(jī)構(gòu)名是有幫助的。
通過(guò)雙向LSTM網(wǎng)絡(luò)可以獲取序列的上下文語(yǔ)義特征。但是如果用它直接進(jìn)行標(biāo)簽預(yù)測(cè),會(huì)出現(xiàn)一些錯(cuò)誤,比如預(yù)測(cè)結(jié)果里連續(xù)出現(xiàn)兩個(gè)“E-ORG”標(biāo)簽,這顯然是一種預(yù)測(cè)錯(cuò)誤。所以一般都是在RNN層后接上CRF層。CRF具有轉(zhuǎn)移概率矩陣,能夠考慮標(biāo)簽之間的轉(zhuǎn)移概率,預(yù)測(cè)標(biāo)簽依賴(lài)序列的最優(yōu)聯(lián)合概率。比如會(huì)學(xué)習(xí)到“E-ORG”前面應(yīng)該是“B-ORG”或者“I-ORG”。
實(shí)驗(yàn)數(shù)據(jù)來(lái)源于《人民日?qǐng)?bào)》1998版、2014版標(biāo)注數(shù)據(jù)和微軟亞洲研究院的MSRA數(shù)據(jù)集,將它們經(jīng)過(guò)預(yù)處理后融合在一起。
命名實(shí)體標(biāo)注采用BIOE策略,B表示實(shí)體開(kāi)始詞,I表示實(shí)體內(nèi)部詞,O表示非實(shí)體詞,E表示實(shí)體結(jié)束詞。人民日?qǐng)?bào)標(biāo)注語(yǔ)料,標(biāo)注了所有詞的詞性,包括動(dòng)詞、名詞、形容詞、時(shí)間詞等各種詞性,也包括“nr”、“nt”、“ns”等命名實(shí)體;MSRA標(biāo)注了所有實(shí)體詞,比如用“ns”標(biāo)注地址,用“nt”標(biāo)注組織機(jī)構(gòu)名,其他非實(shí)體詞語(yǔ)詞語(yǔ)用“O”表示。通過(guò)輸入預(yù)處理,將數(shù)據(jù)標(biāo)簽“nt”轉(zhuǎn)化成“B-ORG”、“I-ORG”、“E-ORG”,將其他非實(shí)體詞轉(zhuǎn)化成“O”。
實(shí)驗(yàn)用標(biāo)注模型對(duì)處理過(guò)的數(shù)據(jù)進(jìn)行詞性標(biāo)注的訓(xùn)練和預(yù)測(cè),80%的數(shù)據(jù)作為訓(xùn)練集,20%的數(shù)據(jù)作為測(cè)試集。第一步用改進(jìn)的ELMO模型進(jìn)行字詞向量的預(yù)訓(xùn)練,將文本分成機(jī)構(gòu)詞和字的序列,然后經(jīng)過(guò)模型生成字詞向量序列;第二步將ELMO字詞向量嵌入BiLSTM-CRF的輸入層,對(duì)參數(shù)變量進(jìn)行訓(xùn)練,生成標(biāo)注模型;第三步將測(cè)試數(shù)據(jù)輸入模型,輸出層輸出測(cè)試數(shù)據(jù)字詞序列被預(yù)測(cè)出的標(biāo)注序列,進(jìn)一步抽取出組織機(jī)構(gòu)名。用準(zhǔn)確率(P)、召回率(R)和F1值進(jìn)行識(shí)別評(píng)價(jià),P是組織機(jī)構(gòu)名詞性標(biāo)注的準(zhǔn)確率,R是組織機(jī)構(gòu)名詞性標(biāo)注的召回率,F(xiàn)1值見(jiàn)式(7)。
(7)
實(shí)驗(yàn)結(jié)果見(jiàn)表1,其中charELMO代表詞嵌入是字符向量,OrgELMO代表詞嵌入是融入機(jī)構(gòu)詞的字詞向量。

表1 組織機(jī)構(gòu)名詞性標(biāo)注結(jié)果
實(shí)驗(yàn)結(jié)果中,OrgELMO-CRF詞性標(biāo)注結(jié)果的F1值比CharELMO高了1.3%。基于字向量的詞嵌入,不存在未登錄詞的問(wèn)題,也不存在分詞錯(cuò)誤的干擾。加入高頻機(jī)構(gòu)詞到字典,既沒(méi)有引入以上問(wèn)題,又利用了組織機(jī)構(gòu)名構(gòu)成詞的語(yǔ)義特征,改善了識(shí)別效果。
前文分析過(guò)組織機(jī)構(gòu)名識(shí)別率低的原因主要是數(shù)量多、文本長(zhǎng)、構(gòu)成復(fù)雜。通過(guò)統(tǒng)計(jì)高頻機(jī)構(gòu)構(gòu)成詞發(fā)掘語(yǔ)義特征,將機(jī)構(gòu)詞加入到詞典中,一方面因?yàn)闇p少了詞向量數(shù)從而縮短了運(yùn)算時(shí)間,另一方面提前學(xué)習(xí)了構(gòu)成詞內(nèi)字與字的語(yǔ)義關(guān)系,向量矩陣可以更好地表達(dá)組織機(jī)構(gòu)名。
該預(yù)訓(xùn)練模型使用的數(shù)據(jù)規(guī)模相對(duì)較小,預(yù)訓(xùn)練模型選擇百度用大規(guī)模數(shù)據(jù)訓(xùn)練出的ERNIE,或者哈工大訓(xùn)練好的中文BERT模型,應(yīng)該會(huì)有更好的效果。為了減少訓(xùn)練時(shí)間,可以去掉BiLSTM層,同時(shí)不固定ELMO參數(shù)讓預(yù)訓(xùn)練ELMO參數(shù)繼續(xù)參與訓(xùn)練,也可以保證訓(xùn)練效果。以上不是該文的研究重點(diǎn),不再贅述。實(shí)驗(yàn)選擇固定ELMO參數(shù)只訓(xùn)練BiLSTM-CRF參數(shù),改進(jìn)預(yù)訓(xùn)練模型,驗(yàn)證了詞嵌入層用融入機(jī)構(gòu)詞的字詞向量比字向量在組織機(jī)構(gòu)名識(shí)別上有更好的效果。
隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,深度學(xué)習(xí)結(jié)合CRF的命名實(shí)體識(shí)別效果不斷提升。但是命名實(shí)體識(shí)別中組織機(jī)構(gòu)名識(shí)別效果相對(duì)較差,該文基于字向量構(gòu)建詞嵌入預(yù)訓(xùn)練模型,又將高頻機(jī)構(gòu)詞當(dāng)作一種特殊的“字”加入到字典進(jìn)行預(yù)訓(xùn)練,結(jié)合LSTM、CRF進(jìn)行組織機(jī)構(gòu)名識(shí)別,比普通字詞向量做詞嵌入的識(shí)別效果更好。
組織機(jī)構(gòu)名識(shí)別仍有很大的提升空間,通過(guò)采用更適合的詞嵌入技術(shù)或者更好的機(jī)器學(xué)習(xí)方法作詞性標(biāo)注,以期進(jìn)一步提高識(shí)別效果。