楊 飄,董文永
(武漢大學(xué) 計(jì)算機(jī)學(xué)院,武漢 430072)
命名實(shí)體識(shí)別(Named Entity Recognition,NER)技術(shù)可用于識(shí)別文本中的特定實(shí)體信息,如人名、地名、機(jī)構(gòu)名等,在信息抽取、信息檢索、智能問答、機(jī)器翻譯等方面都有廣泛應(yīng)用,是自然語言處理的基礎(chǔ)方法之一。一般將命名實(shí)體識(shí)別任務(wù)形式化為序列標(biāo)注任務(wù),通過預(yù)測每個(gè)字或者詞的標(biāo)簽,聯(lián)合預(yù)測實(shí)體邊界和實(shí)體類型。
隨著神經(jīng)網(wǎng)絡(luò)的迅速發(fā)展,不依賴人工特征的端到端方案逐漸占據(jù)主流。文獻(xiàn)[1]基于單向長短期記憶(Long-Short Term Memory,LSTM)模型和神經(jīng)網(wǎng)絡(luò)進(jìn)行命名實(shí)體識(shí)別,提出LSTM-CRF模型。基于LSTM良好的序列建模能力,LSTM-CRF成為命名實(shí)體識(shí)別的基礎(chǔ)架構(gòu)之一,很多方法都是以LSTM-CRF為主體框架,在其基礎(chǔ)上融入各種相關(guān)特征。例如文獻(xiàn)[2]加入手工拼寫特征,文獻(xiàn)[3-4]使用一個(gè)字符CNN來抽取字符特征,文獻(xiàn)[5]采用的是字符級(jí)LSTM。也有基于CNN的命名實(shí)體識(shí)別方案,例如文獻(xiàn)[6]提出的CNN-CRF結(jié)構(gòu),文獻(xiàn)[7]在CNN-CRF基礎(chǔ)上提出使用字符CNN來增強(qiáng)的模型。此后,文獻(xiàn)[8]采用空洞卷積網(wǎng)絡(luò)(IDCNN-CRF)進(jìn)行命名實(shí)體識(shí)別,在提取序列信息的同時(shí)加快了訓(xùn)練速度,文獻(xiàn)[9]在BiLSTM-CRF模型的基礎(chǔ)上利用注意力機(jī)制獲得詞在全文范圍內(nèi)的上下文表示,并將該模型應(yīng)用于化學(xué)藥物實(shí)體識(shí)別任務(wù),通過在生物文本上預(yù)訓(xùn)練詞向量以及使用字符級(jí)LSTM,獲得了90.77%的F1值。文獻(xiàn)[10]采用GRU計(jì)算單元,提出了基于雙向GRU的命名實(shí)體識(shí)別方法,并將其應(yīng)用于會(huì)議名稱識(shí)別任務(wù)。文獻(xiàn)[11]將CNN-BiLSTM-CRF模型應(yīng)用于生物醫(yī)學(xué)語料中,獲得了較高的F1值。文獻(xiàn)[12]針對(duì)裁判文書的實(shí)體抽取提出SVM-BiLSTM-CRF模型,主要抽取動(dòng)產(chǎn)、不動(dòng)產(chǎn)、知識(shí)財(cái)產(chǎn)3類實(shí)體。該模型利用SVM判斷含有關(guān)鍵詞的句子,并將其輸入BiLSTM-CRF模型中進(jìn)行抽取。文獻(xiàn)[13]針對(duì)在線醫(yī)療網(wǎng)站的文本,提出IndRNN-CRF和IDCNN-BiLSTM-CRF模型,性能均優(yōu)于經(jīng)典的BiLSTM-CRF模型。
中文存在字和詞的區(qū)分,因此,在中文領(lǐng)域存在基于字的命名實(shí)體識(shí)別、基于詞的命名實(shí)體識(shí)別、基于字和詞的聯(lián)合命名實(shí)體識(shí)別3種方案。文獻(xiàn)[14-15]通過字級(jí)別和詞級(jí)別統(tǒng)計(jì)方法的對(duì)比,表明基于字符的命名實(shí)體識(shí)別方法一般有更好的表現(xiàn)。因此,一些研究者在基于神經(jīng)網(wǎng)絡(luò)的命名實(shí)體識(shí)別模型中采用基于字的命名實(shí)體識(shí)別方案[16-17]。另一些研究人員在字級(jí)別的命名實(shí)體識(shí)別方案中融入了詞的信息,例如文獻(xiàn)[18-19]將分詞信息作為soft feature來增強(qiáng)識(shí)別效果,文獻(xiàn)[20]則通過將分詞和命名實(shí)體識(shí)別聯(lián)合訓(xùn)練來融合分詞信息。文獻(xiàn)[21]提出的Lattice LSTM網(wǎng)絡(luò)結(jié)構(gòu)效果較好,其將傳統(tǒng)的LSTM單元改進(jìn)為網(wǎng)格LSTM,在字模型的基礎(chǔ)上顯性利用詞與詞序信息,且避免了分詞錯(cuò)誤傳遞的問題,在MSRA語料上F1值達(dá)到93.18%。
以上基于字的中文命名實(shí)體識(shí)別方法普遍存在的問題是無法表征字的多義性,例如在句子“這兩批貨物都打折出售,嚴(yán)重折本,他再也經(jīng)不起這樣折騰了”中,3個(gè)“折”字表達(dá)的是不同的含義,但是在以往的字向量表示方法中,3個(gè)字的向量表示完全一樣,這與客觀事實(shí)不符。較好的詞表示應(yīng)能包含豐富的句法和語義信息,并且能夠?qū)Χ嗔x詞進(jìn)行建模,針對(duì)這個(gè)問題,研究人員提出使用預(yù)訓(xùn)練語言模型的方法來進(jìn)行詞表示。文獻(xiàn)[22]使用一個(gè)詞級(jí)別的語言模型來增強(qiáng)NER的訓(xùn)練,在大量原始語料上實(shí)現(xiàn)多任務(wù)學(xué)習(xí)。文獻(xiàn)[23-24]采用BiLSTM網(wǎng)絡(luò)結(jié)構(gòu),通過預(yù)訓(xùn)練一個(gè)字符語言模型來生成詞上下文表示以增強(qiáng)詞的表示。文獻(xiàn)[25]建立的BERT模型則采用表義能力更強(qiáng)的雙向Transformer網(wǎng)絡(luò)結(jié)構(gòu)來預(yù)訓(xùn)練語言模型。
由于BERT預(yù)訓(xùn)練語言模型具有較強(qiáng)的語義表達(dá)能力,因此本文通過嵌入該模型的雙向Transformer編碼結(jié)構(gòu),構(gòu)建BERT-BiGRU-CRF模型,以提高中文命名實(shí)體識(shí)別準(zhǔn)確率。
BERT-BiGRU-CRF模型整體結(jié)構(gòu)如圖1所示,整個(gè)模型分為3個(gè)部分,首先通過BERT預(yù)訓(xùn)練語言模型獲得輸入的語義表示,得到句子中每個(gè)字的向量表示,然后將字向量序列輸入BiGRU中做進(jìn)一步語義編碼,最后通過CRF層輸出概率最大的標(biāo)簽序列。
圖1 BERT-BiGRU-CRF模型結(jié)構(gòu)Fig.1 BERT-BiGRU-CRF model structure
與傳統(tǒng)的命名實(shí)體識(shí)別模型相比,本文模型最主要的區(qū)別是加入了BERT預(yù)訓(xùn)練語言模型。BERT預(yù)訓(xùn)練語言模型在大規(guī)模語料上學(xué)習(xí)所得,可以通過上下文計(jì)算字的向量表示,能夠表征字的多義性,增強(qiáng)了句子的語義表示。該模型有2種訓(xùn)練方式:一種是訓(xùn)練整個(gè)BERT-BiGRU-CRF模型的參數(shù);另一種是固定BERT參數(shù),只訓(xùn)練BiGRU-CRF部分參數(shù)。第2種訓(xùn)練方式相對(duì)于第1種訓(xùn)練方式可以大幅減少訓(xùn)練參數(shù),縮短訓(xùn)練時(shí)間。
近年來,研究人員將預(yù)訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)作為語言模型,在此基礎(chǔ)上以針對(duì)垂直任務(wù)進(jìn)行微調(diào)的方式取得了很好的效果。比較典型的語言模型是從左到右計(jì)算下一個(gè)詞的概率,如式(1)所示:
(1)
在將預(yù)訓(xùn)練模型應(yīng)用于垂直領(lǐng)域時(shí),有時(shí)并不需要語言模型,而是需要一個(gè)字的上下文表示以表征字的多義性和句子的句法特征。針對(duì)該問題,文獻(xiàn)[22]提出了BERT預(yù)訓(xùn)練語言模型,其結(jié)構(gòu)如圖2所示。為融合字左右兩側(cè)的上下文,BERT采用雙向Transformer作為編碼器。該文還提出了Masked語言模型和下一個(gè)句子預(yù)測2個(gè)任務(wù),分別捕捉詞級(jí)別和句子級(jí)別的表示,并進(jìn)行聯(lián)合訓(xùn)練。
圖2 BERT預(yù)訓(xùn)練語言模型結(jié)構(gòu)Fig.2 BERT pretrained language model structure
Masked語言模型用于訓(xùn)練深度雙向語言表示向量,該方法采用一個(gè)非常直接的方式,即遮住句子里某些單詞,讓編碼器預(yù)測這個(gè)單詞的原始詞匯。文獻(xiàn)[22]隨機(jī)遮住15%的單詞作為訓(xùn)練樣本,其中,80%用masked token來代替,10%用隨機(jī)的一個(gè)詞來替換,10%保持這個(gè)詞不變。
下一個(gè)句子預(yù)測是指預(yù)訓(xùn)練一個(gè)二分類的模型來學(xué)習(xí)句子之間的關(guān)系。很多NLP任務(wù)如QA和NLI都需要對(duì)2個(gè)句子之間關(guān)系的理解,而語言模型不能很好地直接產(chǎn)生這種理解。為理解句子關(guān)系,該方法同時(shí)預(yù)訓(xùn)練了一個(gè)下一個(gè)句子預(yù)測任務(wù)。具體做法是隨機(jī)替換一些句子,然后利用上一句進(jìn)行IsNext/NotNext的預(yù)測。
BERT最重要的部分是雙向Transformer編碼結(jié)構(gòu),Transformer舍棄了RNN的循環(huán)式網(wǎng)絡(luò)結(jié)構(gòu),完全基于注意力機(jī)制對(duì)一段文本進(jìn)行建模。Transformer編碼單元如圖3所示。
圖3 Transformer編碼單元Fig.3 Transformer coding unit
編碼單元最主要的模塊是自注意力(Self-Attention)部分,如式(2)所示:
(2)
其中,Q、K、V均是輸入字向量矩陣,dk為輸入向量維度。
上述方法的核心思想是計(jì)算一句話中的每個(gè)詞對(duì)于這句話中所有詞的相互關(guān)系,然后認(rèn)為這些詞與詞之間的相互關(guān)系在一定程度上反映了這句話中不同詞之間的關(guān)聯(lián)性以及重要程度。在此基礎(chǔ)上,利用這些相互關(guān)系來調(diào)整每個(gè)詞的重要性(權(quán)重)即可獲得每個(gè)詞新的表達(dá)。這個(gè)新的表征不但蘊(yùn)含了該詞本身,還蘊(yùn)含了其他詞與這個(gè)詞的關(guān)系,因此,其與單純的詞向量相比是一個(gè)更加全局的表達(dá)。
為擴(kuò)展模型專注于不同位置的能力,增大注意力單元的表示子空間,Transformer采用了“多頭”模式,如式(3)和式(4)所示:
MultiHead(Q,K,V)=
Concat(head1,head2,…,headh)Wo
(3)
(4)
此外,為解決深度學(xué)習(xí)中的退化問題,Transformer編碼單元中還加入了殘差網(wǎng)絡(luò)和層歸一化,如式(5)和式(6)所示:
(5)
FFN=max(0,xW1+b1)W2+b2
(6)
在自然語言處理中一個(gè)很重要的特征是時(shí)序特征,針對(duì)自注意力機(jī)制無法抽取時(shí)序特征的問題,Transformer采用了位置嵌入的方式來添加時(shí)序信息,如式(7)和式(8)所示。BERT的輸入是詞嵌入、位置嵌入、類型嵌入之和。
PE(Ppos,2i)=sin(Ppos/10 0002i/dmodel)
(7)
PE(Ppos,2i+i)=cos(Ppos/10 0002i/dmodel)
(8)
與其他語言模型相比,BERT預(yù)訓(xùn)練語言模型可以充分利用詞左右兩邊的信息,獲得更好的詞分布式表示。
GRU(Gated Recurrent Unit)是一種特殊循環(huán)神經(jīng)網(wǎng)絡(luò)(Circulatory Neural Network,RNN)。在自然語言處理中,有很多數(shù)據(jù)前后之間具有關(guān)聯(lián)性,傳統(tǒng)前向神經(jīng)網(wǎng)絡(luò)無法對(duì)這種數(shù)據(jù)建模,由此出現(xiàn)了循環(huán)神經(jīng)網(wǎng)絡(luò)。
循環(huán)神經(jīng)網(wǎng)絡(luò)通過引入定向循環(huán)來處理序列化數(shù)據(jù),其網(wǎng)絡(luò)結(jié)構(gòu)分為3層,分別為輸入層、隱層、輸出層。隱層之間可以前后相連,使得當(dāng)前隱層的信息可以傳遞到下個(gè)節(jié)點(diǎn),作為下個(gè)節(jié)點(diǎn)輸入的一部分,這樣使得序列中的節(jié)點(diǎn)能夠“記憶”前文的信息,達(dá)到序列建模的目的。
RNN神經(jīng)網(wǎng)絡(luò)理論上可以處理任意長度的序列信息,但是在實(shí)際應(yīng)用中,當(dāng)序列過長時(shí)會(huì)出現(xiàn)梯度消失的問題,且很難學(xué)到長期依賴的特征。針對(duì)這個(gè)問題,文獻(xiàn)[26]改進(jìn)了循環(huán)神經(jīng)網(wǎng)絡(luò),提出了LSTM模型。LSTM單元通過輸入門、遺忘門和輸出門來控制信息傳遞。
GRU[27]是RNN的另一種變體,其將遺忘門和輸入門合成為一個(gè)單一的更新門,同時(shí)混合細(xì)胞狀態(tài)和隱藏狀態(tài)。GRU單元結(jié)構(gòu)如圖4所示,具體計(jì)算過程如式(9)~式(12)所示。
圖4 GRU編碼單元Fig.4 GRU coding unit
zt=σ(Wi*[ht-1,xt])
(9)
rt=σ(Wr*[ht-1,xt])
(10)
(11)
(12)
其中,σ是sigmoid函數(shù),·是點(diǎn)積。x=(x1,x2,…,xn)為時(shí)刻t的輸入向量,x=(x1,x2,…,xn)是隱藏狀態(tài),也是輸出向量,包含前面t時(shí)刻所有有效信息。zt是一個(gè)更新門,控制信息流入下一個(gè)時(shí)刻,rt是一個(gè)重置門,控制信息丟失,zt和rt共同決定隱藏狀態(tài)的輸出。
單向的RNN只能捕獲序列的歷史信息,對(duì)于序列標(biāo)注任務(wù)而言,一個(gè)字的標(biāo)簽和該字的上下文都有關(guān)系。為充分利用上下文信息,文獻(xiàn)[28]提出了雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(BRNN),之后文獻(xiàn)[29]提出了BiLSTM模型,將單向網(wǎng)絡(luò)結(jié)構(gòu)變?yōu)殡p向網(wǎng)絡(luò)結(jié)構(gòu),該模型有效利用上下文信息,在命名實(shí)體識(shí)別等序列標(biāo)注任務(wù)中得到廣泛應(yīng)用。
GRU與LSTM相比結(jié)構(gòu)更加簡單,參數(shù)更少,可以縮短訓(xùn)練時(shí)間。由于GRU良好的序列建模能力,使得GRU在語音識(shí)別、命名實(shí)體識(shí)別和詞性標(biāo)注等方面都得到廣泛應(yīng)用。
GRU只能考慮長遠(yuǎn)的上下文信息,不能考慮標(biāo)簽之間的依賴關(guān)系,如在命名實(shí)體識(shí)別中,有些標(biāo)簽不能連續(xù)出現(xiàn),因此,模型不能獨(dú)立地使用h(t)來做標(biāo)簽決策,而CRF能通過考慮標(biāo)簽之間的相鄰關(guān)系獲得全局最優(yōu)標(biāo)簽序列,故使用CRF來建模標(biāo)簽序列。
CRF對(duì)于給定序列x=(x1,x2,…,xn)和對(duì)應(yīng)的標(biāo)簽序列y=(y1,y2,…,yn),定義評(píng)估分?jǐn)?shù)計(jì)算公式如式(13)所示:
(13)
其中,Wi,j表示標(biāo)簽轉(zhuǎn)移分?jǐn)?shù),Pi,yi表示該字符的第yi個(gè)標(biāo)簽的分?jǐn)?shù)。Pi定義如式(14)所示:
Pi=Wsh(t)+bs
(14)
其中,W是轉(zhuǎn)換矩陣,h(t)是上一層t時(shí)刻輸入數(shù)據(jù)x(t)的隱藏狀態(tài)。
對(duì)CRF的訓(xùn)練采用的是最大條件似然估計(jì),對(duì)訓(xùn)練集合{(xi,yi)},其似然函數(shù)如式(15)所示,P計(jì)算如式(16)所示,表示原序列到預(yù)測序列對(duì)應(yīng)的概率。
(15)
(16)
本文采用MSRA數(shù)據(jù)集,該數(shù)據(jù)集是微軟公開的命名實(shí)體識(shí)別數(shù)據(jù)集,包含人名、機(jī)構(gòu)名、地名3類實(shí)體。數(shù)據(jù)集中包括訓(xùn)練集和測試集,訓(xùn)練集共包含4.64×104個(gè)句子、2.169 9×106個(gè)字,測試集包括4.4×103個(gè)句子、1.726×105個(gè)字。各類實(shí)體統(tǒng)計(jì)如表1所示。
表1 數(shù)據(jù)集實(shí)體個(gè)數(shù)Table 1 Number of entities in data set
命名實(shí)體識(shí)別的標(biāo)注策略有BIO模式、BIOE模式、BIOES模式。本文采用的是BIO標(biāo)注策略,其中“B”表示實(shí)體開始,“I”表示實(shí)體非開始部分,“O”表示非實(shí)體的部分。因?yàn)樵陬A(yù)測實(shí)體邊界時(shí)需要同時(shí)預(yù)測實(shí)體類型,所以待預(yù)測的標(biāo)簽共有7種,分別為“O”“B-PER”“I-PER”“B-ORG”“I-ORG”“B-LOC”和“I-LOC”。在測試過程中,只有當(dāng)一個(gè)實(shí)體的邊界和實(shí)體的類型完全正確時(shí),才能判斷該實(shí)體預(yù)測正確。
命名實(shí)體識(shí)別的評(píng)價(jià)指標(biāo)有精確率P、召回率R和F1值F1。具體定義如式(17)所示。其中,TP為模型識(shí)別正確的實(shí)體個(gè)數(shù),FP為模型識(shí)別到的不相關(guān)實(shí)體個(gè)數(shù),FN為相關(guān)實(shí)體但是模型沒有檢測到的個(gè)數(shù)。
(17)
實(shí)驗(yàn)計(jì)算機(jī)配置如下:Ubuntu操作系統(tǒng),i7-6700HQ@2.60 GHz的CPU,Python 3.6,Tensorflow 1.12.0,16 GB內(nèi)存。
BERT-BiGRU-CRF模型有2種訓(xùn)練方式:一種是訓(xùn)練模型全部參數(shù);另一種是固定BERT部分參數(shù),只更新BiGRU-CRF參數(shù)。本文使用這兩種方式分別進(jìn)行實(shí)驗(yàn)。
為證明模型的有效性,將BERT-BiGRU-CRF模型與以下模型進(jìn)行對(duì)比:
1)BiGRU-CRF模型。該模型是序列標(biāo)注經(jīng)典模型,基于字的標(biāo)注,采用預(yù)訓(xùn)練好的字向量,然后輸入BiGRU-CRF模型中進(jìn)行訓(xùn)練。
2)Radical-BiLSTM-CRF模型[17]。該模型在BiLSTM-CRF的基礎(chǔ)上融入筆畫信息,將字的筆畫序列輸入BiLSTM中得到字的表示,然后以字的Embedding和筆畫表示連接,作為該字新的語義表示輸入上層BiLSTM-CRF中進(jìn)行訓(xùn)練。
3)Lattice-LSTM-CRF模型[21]。該模型在中文語料上達(dá)到了較好的效果,Lattice-LSTM網(wǎng)絡(luò)結(jié)構(gòu)充分融合了字信息和該字的潛在詞信息,可有效避免分詞的錯(cuò)誤傳遞。
Google提供的預(yù)訓(xùn)練語言模型分為2種:BERT-Base和BERT-Large。2種模型網(wǎng)絡(luò)結(jié)構(gòu)相同,只有部分參數(shù)不同。實(shí)驗(yàn)中采用的是BERT-Base。BERT-Base共12層,隱層為768維,采用12頭模式,共110M個(gè)參數(shù)。最大序列長度采用128,train_batch_size為16,learning_rate為5e-5,droup_out_rate為0.5,clip為5,BiGRU隱藏層維數(shù)為128。
BERT-BiGRU-CRF模型F1值隨訓(xùn)練輪數(shù)的變化如圖5所示,其中BERT-BiGRU-CRF-f模型表示在訓(xùn)練過程中更新整個(gè)模型的參數(shù),BERT-BiGRU-CRF表示固定BERT參數(shù),只更新BiGRU-CRF部分參數(shù)。BERT-BiGRU-CRF-f模型在訓(xùn)練12個(gè)epoch時(shí)達(dá)到最大F1值95.43%;BERT-BiGRU-CRF模型也是在訓(xùn)練12個(gè)epoch時(shí)達(dá)到最大F1值94.18%;BiGRU-CRF模型在第14個(gè)epoch達(dá)到最大F1值87.97%。BERT-BiGRU-CRF訓(xùn)練一輪的時(shí)間是394 s,BiGRU-CRF訓(xùn)練一輪的時(shí)間是406 s,BERT-BiGRU-CRF-f訓(xùn)練一輪的時(shí)間為2 044 s。另外測得Lattice-LSTM-CRF模型訓(xùn)練一輪的時(shí)間為7 506 s,在第37個(gè)epoch才得到最優(yōu)F1值,總體訓(xùn)練時(shí)間遠(yuǎn)超BERT-BiGRU-CRF模型。
圖5 F1值變化曲線Fig.5 Curve of F1 value changes
針對(duì)人名(PER)、地名(LOG)、機(jī)構(gòu)名(ORG)3類實(shí)體的準(zhǔn)確率、召回率、F1值如表2所示,可以看出其中機(jī)構(gòu)類實(shí)體預(yù)測準(zhǔn)確率偏低,主要原因在于機(jī)構(gòu)名中很多存在地名嵌套、縮略詞、歧義等干擾信息,在沒有其他充足的上下文時(shí)容易預(yù)測錯(cuò)誤。
表2 不同類型命名實(shí)體識(shí)別結(jié)果Table 2 NER results for different types of entities %
部分錯(cuò)例如表3所示。可以看出:例句1的機(jī)構(gòu)名中嵌套了地名,類似的例子還有“中國政府陪同團(tuán)”“中國東盟”等;例句2中出現(xiàn)了“工商聯(lián)”這一縮寫,類似的還有“理事會(huì)” “委員會(huì)”等;例句3中則出現(xiàn)了歧義的情形。這種情況下如果沒有補(bǔ)充的上下文會(huì)導(dǎo)致難以預(yù)測。
表3 預(yù)測錯(cuò)誤實(shí)例Table 3 Examples of wrong prediction
本文模型與其他模型的對(duì)比如表4所示??梢钥闯?對(duì)比BERT-BiGRU-CRF模型和BiGRU-CRF模型,本文模型能提高6.21%的F1值,說明BERT預(yù)訓(xùn)練語言模型能更好地表示字的語義信息,這是因?yàn)锽ERT生成的字向量是上下文相關(guān)的,例如在句子“羅布汝信湯洪高安啟元許其亮阮崇武”中,正確實(shí)體劃分應(yīng)該是“羅布|汝信|湯洪高|安啟元|許其亮|阮崇武”,表示6個(gè)名字的并列,但在BiGRU-CRF模型中,“安啟元”這個(gè)實(shí)體無法正確識(shí)別,而是將“湯洪高安啟元”作為一個(gè)整體,主要原因是“安”字作為姓氏比較少見,在傳統(tǒng)詞向量中只能表義“平安”“安定”等,而在BERT-BiGRU-CRF模型中,生成的“安”字語義向量是上下文相關(guān)的,在該語句的上下文中包含有姓氏的含義,與“民族團(tuán)結(jié),社會(huì)安定”中的“安”字相比,生成的語義向量不同,語義不同。同樣的例子還有“普”“亢”作為姓氏的情形。
表4 不同模型命名實(shí)體識(shí)別結(jié)果Table 4 NER results of different models %
BERT-BiGRU-CRF模型與Radical-BiLSTM-CRF模型、Lattice-LSTM模型相比效果更好,說明BERT的特征抽取能力比較強(qiáng),抽取的特征比單獨(dú)訓(xùn)練筆畫特征和字詞融合特征更準(zhǔn)確。對(duì)比BERT-BiGRU-CRF-f和BERT-BiGRU-CRF模型可以看出,BERT-BiGRU-f效果更好,但訓(xùn)練參數(shù)量更大,所需要的訓(xùn)練時(shí)間更長。
針對(duì)傳統(tǒng)詞向量表示方法無法表征字多義性的問題,本文構(gòu)建BERT-BiGRU-CRF模型,通過BERT預(yù)訓(xùn)練語言模型雙向Transformer結(jié)構(gòu)動(dòng)態(tài)生成字的上下文語義表示。該模型性能優(yōu)于Lattice-CRF模型,可有效提升中文命名實(shí)體識(shí)別的效果,但其缺點(diǎn)是當(dāng)上下文信息不足且存在實(shí)體嵌套、縮寫、歧義實(shí)體等情形時(shí),無法實(shí)現(xiàn)對(duì)語句特征的正確抽取。下一步將在本文模型中融入潛在詞特征,結(jié)合BERT與Lattice LSTM表征字的多義性,同時(shí)加入潛在詞的特征,以應(yīng)對(duì)上下文信息不足的情況。