王潔 夏曉明
(北京工業(yè)大學(xué) 信息學(xué)部,北京 100124)
自然語言處理是計算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個重要研究方向。命名實體識別(NER)作為自然語言處理的一項關(guān)鍵任務(wù),在信息檢索、問答系統(tǒng)、機(jī)器翻譯中有著廣泛的應(yīng)用[1]。
隨著神經(jīng)網(wǎng)絡(luò)的快速發(fā)展,基于深度學(xué)習(xí)的命名實體識別方法逐漸取代了特征工程繁雜的統(tǒng)計機(jī)器學(xué)習(xí)方法,成為命名實體識別任務(wù)的主流研究方法[2]?;谏疃葘W(xué)習(xí)的命名實體識別方法將實體識別轉(zhuǎn)化為序列標(biāo)注任務(wù),利用神經(jīng)網(wǎng)絡(luò)較強(qiáng)的計算能力,通過機(jī)器自動提取句子層面的上下文特征,實現(xiàn)實體識別[3]。如Huang 等[4]首次提出了基于雙向長短時記憶網(wǎng)絡(luò)(BiLSTM)與條件隨機(jī)場的命名實體識別方法,BiLSTM可以通過前向和后向傳遞的方式學(xué)習(xí)到序列中字符依賴的上下文信息,在一定程度上解決了文本的長距離依賴問題[5-8]。Rei 等[9]在循環(huán)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,基于注意力機(jī)制動態(tài)地利用字符向量和詞向量信息,解決了文本中出現(xiàn)未登錄詞的問題。Devlin等[10]用預(yù)訓(xùn)練語言模型BERT生成詞嵌入編碼,結(jié)合特定實體識別任務(wù)進(jìn)行微調(diào),有效地解決了命名實體識別任務(wù)上下文表示不充分的問題。使用序列標(biāo)注進(jìn)行命名實體識別的方法能夠有效地獲取句子內(nèi)的上下文信息[11-13],但由于在訓(xùn)練過程中未能充分利用實體類別的相關(guān)信息,導(dǎo)致模型在很大程度上依賴于特征提取能力,學(xué)習(xí)難度較大,識別效果不佳。
受當(dāng)前將自然語言處理任務(wù)形式化為問答任務(wù)的啟發(fā)[14-15],有學(xué)者提出使用機(jī)器閱讀理解(MRC)框架來處理命名實體識別任務(wù),并取得了較好的識別效果。機(jī)器閱讀理解通過構(gòu)建閱讀理解模型來學(xué)習(xí)文本和問題之間的邏輯關(guān)系,在上下文文本中抽取出機(jī)器認(rèn)為可能作為問題答案的序列片段。基于上述思想,命名實體識別任務(wù)可以理解為以已知實體類別的相關(guān)描述為問題,構(gòu)建閱讀理解模型以學(xué)習(xí)文本和實體類別描述之間的關(guān)系,進(jìn)而實現(xiàn)對文本中此類別實體的抽取。Li等[16]通過設(shè)計實體類別查詢問句,引入實體類別的先驗語義知識,使用機(jī)器閱讀理解框架學(xué)習(xí)文本與實體類別問句之間的交互關(guān)系,將實體識別轉(zhuǎn)化為對句子的片段抽取,在命名實體識別任務(wù)中取得了很高的準(zhǔn)確率。Xue等[17]沿用了上述基于閱讀理解的命名實體識別框架,使用多種弱監(jiān)督數(shù)據(jù)輔助模型訓(xùn)練,將實體知識融入預(yù)訓(xùn)練語言模型中。與傳統(tǒng)序列標(biāo)注方法相比,上述基于MRC 的命名實體識別方法借助問題編碼了實體類別的重要先驗信息,更加容易區(qū)分出相似的分類標(biāo)簽,降低了模型學(xué)習(xí)難度,但仍然只在句子級別建模,忽略了句子間的語義信息,容易造成不同句子中實體標(biāo)注不一致的問題[18]。
針對上述問題,本文將句子級別的命名實體識別擴(kuò)展到文本級別的命名實體識別,提出了一種基于機(jī)器閱讀理解的BiLSTM-BiDAF 命名實體識別模型MRC-NER。首先,使用NEZHA[19]獲取文本的全文語境信息,并進(jìn)一步通過BiLSTM 捕獲局部依賴信息;接著,引入雙向注意力機(jī)制(BiDAF)學(xué)習(xí)文本和實體類別之間的語義關(guān)聯(lián);然后,在預(yù)測實體位置時設(shè)計基于門控機(jī)制的邊界檢測器,以充分考慮到實體開始位置對結(jié)束位置的約束,同時通過建立答案數(shù)量檢測器,將無答案問題識別出來;最后,在CCKS2020中文電子病歷數(shù)據(jù)集和CMeEE數(shù)據(jù)集上進(jìn)行實驗,以驗證本文所構(gòu)建的模型的有效性。
文本中包含豐富的上下文信息,為了學(xué)習(xí)文本中句間、字符間的語義關(guān)聯(lián),建立文本與實體類別之間的深層交互關(guān)系,本文借助機(jī)器閱讀理解框架對命名實體識別任務(wù)進(jìn)行建模和求解。所謂機(jī)器閱讀理解框架,具體來說可以分為3個步驟:給定上下文、詢問相關(guān)問題和標(biāo)注答案位置。基于此框架,本文首先根據(jù)所要識別的實體類別設(shè)計包含語義先驗信息的實體類別查詢問句,然后構(gòu)建模型來編碼文本的語義信息和問題中的先驗信息,學(xué)習(xí)文本和實體類別查詢語句之間的復(fù)雜交互關(guān)系,并最終在文本中找到實體所在的位置。為此,本文構(gòu)建了如圖1所示的基于機(jī)器閱讀理解的BiLSTM-BiDAF命名實體識別模型MRC-NER,該模型分為4 層:①嵌入層,該層采用預(yù)訓(xùn)練語言模型NEZHA[19]來獲取全局語義信息,得到文本和問題的字符嵌入表示;②編碼層,使用BiLSTM 編碼局部特征,解決預(yù)訓(xùn)練語言模型對局部依賴信息捕獲能力不足的問題;③交互層,該層引入雙向注意力機(jī)制融合文本和實體類別之間的交互信息;④答案預(yù)測層,預(yù)測實體在文本中的開始位置和結(jié)束位置。
圖1 MRC-NER模型的結(jié)構(gòu)Fig.1 Structure of MRC-NER model
為了學(xué)習(xí)文本中不同句子間的內(nèi)在相關(guān)性,增強(qiáng)模型對文本上下文語義信息的表示能力,本文使用NEZHA[19]作為嵌入層對文本和問題進(jìn)行全局特征提取,得到文本和問題的字符嵌入向量。NEZHA是基于BERT[10]的改進(jìn)模型,對中文文本的動態(tài)編碼具有顯著的優(yōu)勢。一方面,在命名實體識別任務(wù)中,字符之間的相對位置關(guān)系非常重要,如“邵逸夫創(chuàng)立了邵逸夫基金會”一句中包含兩個“邵逸夫”,但由于所處位置的不同,分別表示了人名和機(jī)構(gòu)名。BERT 編碼的相對位置信息經(jīng)自注意力機(jī)制后會消失,因此無法捕獲這些重要的位置信息。而NEZHA 在預(yù)訓(xùn)練階段使用了完全函數(shù)式的相對位置編碼,使得模型可以很好地建模字符間的相對位置關(guān)系。另一方面,NEZHA在訓(xùn)練過程中將BERT的隨機(jī)掩碼替換為全詞掩碼,可以使字符嵌入向量中包含豐富的上下文信息和實體邊界信息,增強(qiáng)模型對文本全局語義的抽取效果。
設(shè)X=(c1,c2,…,cn)為給定的一段文本,n為文本長度,基于這段文本內(nèi)容構(gòu)造實體類別查詢語句,Y為實體類別集合,Qy=(q1,q2,…,qm)為預(yù)定義的y∈Y的問題查詢,qi為第i個字符,m為問題的長度。將用于實體識別的查詢語句Qy和文本X,使用特定的分類標(biāo)記[CLS]和分隔標(biāo)記[SEP],將問句和文本以順序串聯(lián)的方式拼接成輸入序列,并進(jìn)行初始編碼:
然后,將上述初始編碼I輸入到NEZHA預(yù)訓(xùn)練語言模型中,得到包含全局語義的文本向量表示X= (c1,c2,…,cn)和問題向量表示Qy= (q1,q2,…,qm)。針對文本長度超過所設(shè)定預(yù)訓(xùn)練語言模型最大限制輸入長度的情況,本文使用動態(tài)規(guī)劃算法來對文本進(jìn)行分割,以滿足模型對長度的限制。
通過上述嵌入層,模型能夠獲取文本的全局語義信息,而對于命名實體識別任務(wù),考慮字符前后序列對當(dāng)前字符的影響也十分重要。為了有效地獲取字符在句子內(nèi)依賴的上下文信息,本文進(jìn)一步使用BiLSTM 分別對文本和問題字符嵌入向量進(jìn)行編碼,通過給鄰近詞分配更大的權(quán)重來提升模型對文本局部特征的捕獲能力,進(jìn)而賦予每個字更豐富的上下文信息。
本文使用的BiLSTM 網(wǎng)絡(luò)基本結(jié)構(gòu)如圖2所示。將嵌入層得到的文本向量X和問題向量Q分別輸入到BiLSTM 網(wǎng)絡(luò)中進(jìn)行特征提取,得到編碼后的文本向量H∈R2d×n和問題向量U∈R2d×m。文本中第t個字對應(yīng)的網(wǎng)絡(luò)輸出為
圖2 BiLSTM結(jié)構(gòu)示意圖Fig.2 Structure diagram of BiLSTM
使用BiLSTM 可以緩解預(yù)訓(xùn)練語言模型對于局部依賴信息捕獲能力不足的問題。通過嵌入層和編碼層,使模型既能實現(xiàn)對文本全局語義信息的提取,又能充分捕獲到文本的局部依賴信息,提升模型對文本的語義表示能力。
實體類別查詢語句中包含著豐富的實體先驗信息,為了充分學(xué)習(xí)文本和實體類別之間的語義關(guān)聯(lián),本文建立了如圖3所示的交互層,通過文本對問題的注意力,使文本與問題中所包含的先驗信息充分融合,通過問題對文本的注意力,使問題關(guān)注到文本中與該類別相關(guān)的關(guān)鍵信息。
圖3 交互層示意圖Fig.3 Interactive layer diagram
首先,將編碼層得到的文本和問題輸出向量H∈R2d×n和U∈R2d×m使用三線性函數(shù)計算文本和問題的相似度矩陣S:
式中,α(·)是可訓(xùn)練的標(biāo)量函數(shù),“?!北硎驹攸c乘,“;”表示向量行拼接,Ws是可訓(xùn)練的權(quán)重向量,H:n是文本H的第n列向量,U:m是問題編碼矩陣U的第m列向量,Snm是文本H中的第n個單詞和問題U中的第m個單詞之間的相似性矩陣。
然后,基于相似度矩陣計算文本對問題的注意表示向量,通過問題中所有詞的加權(quán)和來表征文本中的每一個詞向量。具體來說,對相似度矩陣S的每行進(jìn)行歸一化,再與問題進(jìn)行注意力加權(quán)計算,計算過程如下:
式中,Sn:為相似度矩陣S中第n行的向量,αn為對Sn:進(jìn)行歸一化后得到的向量,αnm為αn的第m個元素。
同時,基于相似度矩陣計算問題對文本的注意表示向量。為了更好地回答問題,在文本中抽取出實體的關(guān)鍵信息,不需要計算問題對文本中的每個字的注意力權(quán)重,只需要找到文本中與問題最相關(guān)的字即可,因此取相似度矩陣中每一行的最大值進(jìn)行歸一化,獲得問題對文本中字符的注意力權(quán)重,并計算對于回答問題的加權(quán)融 合向量,復(fù)制n次得到?∈R2d×n以保持維度一致,具體計算過程如下:
式中,maxrow(S)表示對矩陣S的每一行取最大值,b為向量,bn為b的第n個元素。
最后,將編碼層得到的文本表示向量H與文本-問題注意表示向量?、問題-文本注意表示向量進(jìn)行融合,然后一起輸入到答案預(yù)測層,融合方式如下:
答案預(yù)測層主要用于對實體在文本中的位置進(jìn)行預(yù)測。本文通過設(shè)計邊界檢測器動態(tài)融合實體起始位置概率分布與交互層得到的融合向量,充分考慮到實體起始位置與結(jié)束位置之間的時序關(guān)系和邏輯關(guān)系,使得模型對結(jié)束位置的預(yù)測更加準(zhǔn)確。同時,建立答案數(shù)量檢測器,以緩解文本中不包含某些類型實體而導(dǎo)致錯誤抽取的情況。
本文借助實體類別查詢問句集成先驗知識,并通過雙向注意力機(jī)制充分學(xué)習(xí)文本和實體類別問句之間的交互關(guān)系,因而可以找到文本中所有與該類別相關(guān)的實體。為了準(zhǔn)確預(yù)測出所有實體在文本中的位置,本文在答案預(yù)測層采用半指針半標(biāo)注策略判斷每個字符是否為實體的起止位置,這種方式允許模型輸出多個開始和結(jié)束字符,因而可以識別出輸入文本中的所有相關(guān)實體。圖4為本文提出的答案起止位置預(yù)測示意圖。
圖4 答案起止位置預(yù)測示意圖Fig.4 Prediction diagram of answer start and end position
首先,將交互層的輸出G∈R8d×n作為答案預(yù)測層的輸入,并通過式(13)計算輸入文本中每個字符為實體起始位置的概率:
式中,bstart為待訓(xùn)練偏置向量。
然后,考慮到在字符中顯式加入模型對其是否為實體起始位置的判斷信息后,能加強(qiáng)模型對實體結(jié)束位置的判斷,增強(qiáng)模型的跨度感知能力,因此,本文設(shè)計了一個基于門控機(jī)制的邊界檢測器,控制起始位置概率分布與交互向量G的融合程度,并對融合后的向量通過式(17)計算每個字符為實體終止位置的概率分布,即
式 中:W1,W2∈Rd×2;W3∈Rd×8d;Wend∈R2×d;σ( )為Sigmoid激活函數(shù);f( )為ReLU激活函數(shù);g為控制門,g∈ R1×n;Xgated為融合了實體起始位置信息的向量,當(dāng)g=0 時,Xgated只與交互層的輸出向量G有關(guān);e是所有元素為1 的向量;b1,b2,?∈ R1×n;b3∈ Rd×n;bend∈ R2×n。
在計算出實體起止位置的概率分布Pstart和Pend之后,將argmax 應(yīng)用到Pstart和Pend的每一列,得到實體開始位置或結(jié)束位置的索引,然后對實體起止位置的索引就近匹配,從而標(biāo)注出輸入文本中所有相關(guān)實體的具體位置,實現(xiàn)對文本中多實體的識別。計算開始、結(jié)束位置索引的過程如下:
現(xiàn)有基于機(jī)器閱讀理解的命名實體識別模型,對于文本中不存在相應(yīng)實體的實體類別查詢語句,會導(dǎo)致抽取錯誤。針對此問題,本文借助答案起止位置的預(yù)測結(jié)果和NEZHA 預(yù)定義的分類標(biāo)記[CLS],設(shè)計了一個額外的二分類任務(wù)以檢測文本中是否存在特定類型的實體,本文稱之為答案數(shù)量檢測器。其中,實體起止位置的預(yù)測結(jié)果中隱含了實體數(shù)目的相關(guān)信息,[CLS]分類標(biāo)記編碼了文本和問題的全部語義信息。通過利用實體起止位置的預(yù)測結(jié)果和[CLS]分類標(biāo)記共同構(gòu)造答案數(shù)量檢測器,可以有效地捕獲文本中的實體信息,將無實體答案的查詢語句識別出來,進(jìn)而改進(jìn)答案預(yù)測層的輸出。
具體來說,首先以起止位置概率分布分別作為權(quán)重計算上下文加權(quán)和,計算公式為
式中:Pstart=1、Pend=1分別表示取起止位置概率分布Pstart、Pend的第1 維(維度從0 計數(shù)),即對應(yīng)字符是實體起止位置的概率;R1、R2分別表示基于答案起止位置概率加權(quán)計算后的上下文表示。
然后,將上述兩個上下文加權(quán)和表示與嵌入層編碼的[CLS]標(biāo)記進(jìn)行拼接,通過執(zhí)行分類任務(wù)將無答案問題有效地識別出來,具體操作如下:
式中,Wz∈ R1×16d,Wa∈ R1×(d+1),參數(shù)bz、ba為標(biāo)量。
在訓(xùn)練過程中,答案數(shù)量檢測器的標(biāo)簽δ∈{0,1},其中δ= 0 表示答案數(shù)量為0,即文本中沒有問題對應(yīng)的實體答案;δ= 1 表示文本中存在問題對應(yīng)的答案。
為了使模型更加擬合真實結(jié)果,降低模型預(yù)測結(jié)果與真實結(jié)果的差距,本文設(shè)計如下?lián)p失函數(shù),以加強(qiáng)實體分類準(zhǔn)確度,即
式中:模型訓(xùn)練整體損失函數(shù)L由起止位置損失函數(shù)(Lstart和Lend)和答案數(shù)量檢測器損失函數(shù)(Lans)組合而成,并分別賦予3個權(quán)重超參數(shù)(γ1,γ2,γ3∈[0,1]);Ystart、Yend分別為實體起止位置的真實標(biāo)簽;Yans為文本中是否包含相應(yīng)類型實體的真實標(biāo)簽;crossEntropy(·)為交叉熵?fù)p失函數(shù)。通過降低模型的損失函數(shù),可以在有相應(yīng)類型的實體時抽取出實體,沒有相應(yīng)類型的實體時檢測出該實體類別的問題無匹配答案。
本文實驗所用數(shù)據(jù)集來自CCKS2020 的醫(yī)療命名實體評測任務(wù),官方提供的已標(biāo)注訓(xùn)練數(shù)據(jù)共1 050 條文本,由于數(shù)據(jù)集數(shù)量相對較少,本文在CCKS2020 數(shù)據(jù)集的基礎(chǔ)上整合了CCKS2019 數(shù)據(jù)集中的相關(guān)數(shù)據(jù)。將原始數(shù)據(jù)集轉(zhuǎn)換成MRC 輸入形式后,得到問答數(shù)據(jù)集共9 522條。為了更好地掌握數(shù)據(jù)集以便模型建模,表1 和表2 展示了本文所使用的CCKS2020數(shù)據(jù)集的具體統(tǒng)計數(shù)據(jù)。
表1 CCKS2020數(shù)據(jù)集統(tǒng)計情況Table 1 CCKS2020 dataset statistics
表2 MRC形式CCKS2020數(shù)據(jù)集有無答案統(tǒng)計情況Table 2 Statistics on CCKS dataset in the form of MRC
CMeEE 中文醫(yī)學(xué)命名實體識別數(shù)據(jù)集為句子級別的數(shù)據(jù)集,共包含47 194 個句子和9 類醫(yī)學(xué)實體,其中“臨床表現(xiàn)”實體類別中存在嵌套,在該類型的實體內(nèi)部存在其他8類實體。
本文將命名實體識別任務(wù)轉(zhuǎn)化為機(jī)器閱讀理解問題。根據(jù)文本所要識別的實體類型構(gòu)建包含語義先驗信息的實體類別查詢語句,通過數(shù)據(jù)預(yù)處理將數(shù)據(jù)集構(gòu)建為符合機(jī)器閱讀理解框架輸入的形式。具體的數(shù)據(jù)處理流程如圖5所示。
圖5 數(shù)據(jù)處理流程Fig.5 Data processing flow
由于文本中可能包含多個不同類型的實體,因此,在數(shù)據(jù)預(yù)處理階段,需要將語料庫中的每一個文本分別與所有類別的預(yù)定義先驗信息問題進(jìn)行逐一配對。數(shù)據(jù)集樣例格式如下:
{“context”:“患者3 年前無明顯誘因反復(fù)出現(xiàn)反酸、中下腹不適,伴有惡心、噯氣,無嘔吐、吞咽困難,無燒心,無腹痛、腹瀉,曾行胃鏡檢查提示“慢性胃竇炎”(具體不詳)。自服“嗎丁啉”后癥狀緩解。1 天前患者進(jìn)食火鍋及少量飲酒后感覺明顯惡心、反酸,嘔吐1次,為酸臭味胃內(nèi)容物,量約250 mL,伴下腹間斷性隱痛...”,
“entity_type”:“解剖部位”,
“query”:“找出解剖部位,例如胃、腸、肝、肺、胸、臀”,
“answer_num”:1,
“start_position”:[17,45,48,120,134],
“end_position”:[19,45,48,120,135]}
每個樣本包含原始文本context、實體類別查詢語句query、答案數(shù)量answer_num 和該類型實體在文本中的起止位置列表start_position和end_position。
同時,為了在實體類別查詢語句中包含更多的語義先驗知識,本文在構(gòu)建實體類別查詢語句時,集成了實體類型的相關(guān)描述和一些簡單的例子。以CCKS2020 數(shù)據(jù)集為例,表3 展示了本文針對該數(shù)據(jù)集所構(gòu)造的不同實體類型的相關(guān)問題。
表3 問題構(gòu)建表Table 3 Problem building table
本文實驗基于Python語言及其第三方庫,使用開源的深度學(xué)習(xí)計算框架PyTorch1.10和Transformers 4.15.0來構(gòu)建深度學(xué)習(xí)模型,并使用圖形處理器進(jìn)行加速。實驗中,采用中文NEZHA 預(yù)訓(xùn)練語言模型進(jìn)行字符的嵌入編碼,設(shè)置詞向量的維度為768,預(yù)訓(xùn)練語言模型最大長度為128,雙向長短時記憶網(wǎng)絡(luò)的隱含層維度為256。為了防止模型出現(xiàn)過擬合的現(xiàn)象,本文將網(wǎng)絡(luò)丟棄率Dropout 設(shè)置為0.3。在模型訓(xùn)練過程中,設(shè)置模型的初始學(xué)習(xí)率為2×10-5,Warm up 為0.1,Batchsize 為64,γ1、γ2和γ3的值均設(shè)置為1,使用Adam 算法對參數(shù)進(jìn)行優(yōu)化,使用反向傳播算法來計算梯度,對權(quán)重矩陣進(jìn)行微調(diào)。以上參數(shù)均針對CCKS2020 中文電子病歷數(shù)據(jù)集進(jìn)行設(shè)置,對于其他語料庫的數(shù)據(jù)還需要進(jìn)行微調(diào)。
本文采用精確率(p)、召回率(r)、F1值作為模型的評價標(biāo)準(zhǔn),對醫(yī)療文本的實體識別結(jié)果進(jìn)行全面的評價,計算式如下:
其中,NTP表示正例預(yù)測為正例的數(shù)量,NFN表示正例預(yù)測為負(fù)例的數(shù)量,NFP表示負(fù)例預(yù)測為正例的數(shù)量。
為了驗證本文提出的模型在命名實體識別任務(wù)上的效果,本文使用NEZHA-CRF、NEZHA- IDCNNCRF、BERT-BiLSTM-CRF[20]、NEZHA-BiLSTM-CRF、NEZHA-MRC-baseline[16]與 本 文 提 出 的 模 型MRCNER在CCKS2020中文電子病歷數(shù)據(jù)集和CMeEE數(shù)據(jù)集上進(jìn)行實驗,結(jié)果如表4所示。各模型的基本信息如下:
表4 6種模型的實驗結(jié)果對比Table 4 Comparison of experimental results among 6 models
(1)NEZHA-CRF,采用NEZHA[21]預(yù)訓(xùn)練語言模型提取特征并結(jié)合CRF對字符向量進(jìn)行序列標(biāo)注的模型。
(2)NEZHA-IDCNN-CRF,采用NEZHA 預(yù)訓(xùn)練語言模型和迭代膨脹卷積神經(jīng)網(wǎng)絡(luò)(IDCNN)[21]提取特征,并結(jié)合CRF對輸入字符向量進(jìn)行序列標(biāo)注的模型。實驗中IDCNN將4個大小相同的卷積塊堆疊在一起,每個卷積塊內(nèi)是膨脹系數(shù)為1、1、2 的3 層卷積層,每個卷積層中卷積核大小為3×3,卷積核數(shù)量為64。
(3)BERT-BiLSTM-CRF,采用BERT[10]預(yù)訓(xùn)練語言模型和BiLSTM 提取上下文特征,并結(jié)合CRF對輸入字符向量進(jìn)行序列標(biāo)注的模型。本實驗采用BERT-Base 預(yù)訓(xùn)練語言模型,該模型為12 頭模式,共有12層和110×106個參數(shù),隱含層維數(shù)為768。
(4)NEZHA-BiLSTM-CRF,采用NEZHA預(yù)訓(xùn)練語言模型和BiLSTM 提取上下文特征,并結(jié)合CRF對輸入字符向量進(jìn)行序列標(biāo)注的模型。
(5)NEZHA-MRC-baseline,基于Li 等[16]將NER轉(zhuǎn)化為機(jī)器閱讀理解問題的思想,采用NEZHA 進(jìn)行特征提取的模型。
由表4 可知,在CCKS2020 中文電子病歷數(shù)據(jù)集和CMeEE 中文醫(yī)學(xué)命名實體識別數(shù)據(jù)集上,MRC-NER 模型的精確率、召回率、F1值均優(yōu)于其他模型,表明MRC-NER 模型在文本級數(shù)據(jù)集和句子級數(shù)據(jù)集上均能取得良好的效果,MRC-NER 模型只需要回答獨立的問題就可以有效地解決嵌套命名實體識別中不同類別實體的重疊問題,比傳統(tǒng)基于序列標(biāo)注的命名實體識別方法更加簡單自然,對嵌套命名實體識別具有顯著的優(yōu)勢。
由表4 還可以知道:在CCKS2020 中文電子病歷數(shù)據(jù)集上,使用NEZHA 預(yù)訓(xùn)練語言模型進(jìn)行全局特征提取的NEZHA-BiLSTM-CRF 模型的性能要優(yōu)于BERT-BiLSTM-CRF 模型,表明使用相對位置編碼和全詞掩碼技術(shù)的NEZHA 在詞向量編碼上具有一定的優(yōu)勢,能夠更好地學(xué)習(xí)文本中不同句子間的內(nèi)在相關(guān)性;使用BiLSTM 進(jìn)行局部特征提取的NEZHA-BiLSTM-CRF模型的性能要優(yōu)于NEZHA-CRF和NEZHA-IDCNN-CRF模型,這是由于與IDCNN相比,BiLSTM 可以在雙向上捕捉到較長距離的語義依賴,更好地提取文本的內(nèi)部特征;與NEZHAMRC-baseline 模型相比,本文構(gòu)建的MRC-NER 模型能夠有效地捕獲全文的語境信息,在處理文本級別命名實體識別任務(wù)時有明顯的優(yōu)勢;與其他4種序列標(biāo)注模型相比,MRC-NER 模型使用機(jī)器閱讀理解框架在問題中編碼了實體類別的先驗知識,學(xué)習(xí)到文本與實體類別的深層交互關(guān)系,增強(qiáng)了實體識別效果。
MRC-NER 模型在CCKS2020 數(shù)據(jù)集上對不同實體類別的測評結(jié)果如表5所示。從表中可知,該模型對“藥物”類別的實體識別準(zhǔn)確率最高,而對“實驗室檢驗”類別的實體識別效果不佳。一方面是因為在訓(xùn)練集中,“實驗室檢驗”類別相對較少,導(dǎo)致模型在測試集中的泛化能力較差;另一方面是由于缺乏醫(yī)療領(lǐng)域的相關(guān)專業(yè)知識,本文在構(gòu)造該實體類別的查詢語句時,未能很好地引入該類別的先驗信息。
表5 MRC-NER模型在CCKS2020數(shù)據(jù)集上的測評結(jié)果Table 5 Evaluation results of MRC-NER on CCKS2020 dataset
為了更清晰地驗證本文模型中各模塊對檢測結(jié)果的影響,本文進(jìn)行了消融實驗,結(jié)果如表6所示。NEZHA-MRC-BiLSTM 是在基線模型的基礎(chǔ)上只加入BiLSTM,通過給鄰近詞分配更大的權(quán)重,緩解了預(yù)訓(xùn)練語言模型對局部依賴信息捕獲能力不足的問題,進(jìn)而更好地捕獲了文本的局部依賴信息,F(xiàn)1值提升了2.25 個百分點。NEZHA-MRC-BiDAF 是在基線模型的基礎(chǔ)上引入雙向注意力機(jī)制,使模型學(xué)習(xí)到文本和包含實體類別先驗語義信息的問題二者之間的交互關(guān)系,抽取出對實體識別更為關(guān)鍵的信息,F(xiàn)1值提升了0.07 個百分點。NEZHA-MRCBiLSTM-BiDAF 是在基線模型的基礎(chǔ)上同時加入BiLSTM 和雙向注意力機(jī)制,相較于基線模型,F(xiàn)1值提升了2.77 個百分點。NEZHA-answer-border 是在基線模型基礎(chǔ)上加入基于門控的邊界檢測器和答案數(shù)量檢測器,F(xiàn)1值提升了2.50 個百分點,表明在預(yù)測實體時加強(qiáng)邊界間的邏輯關(guān)系并識別無答案問題,可有效提升命名實體的識別效果。
表6 消融實驗結(jié)果Table 6 Results of ablation experiments
本文提出了一種基于機(jī)器閱讀理解的BiLSTMBiDAF 命名實體識別方法。首先,采用NEZHA 預(yù)訓(xùn)練語言模型對字符進(jìn)行動態(tài)編碼,豐富字符向量的全局語義信息和實體的邊界信息,并結(jié)合BiLSTM提升模型對文本局部依賴信息的捕獲能力;然后,引入雙向注意力機(jī)制學(xué)習(xí)文本和實體類別之間的深層交互關(guān)系;最后,通過邊界檢測器加強(qiáng)實體邊界的相關(guān)關(guān)系,預(yù)測出實體在文本中的位置,同時通過建立答案數(shù)量檢測器來識別無答案問題,有效地解決了文本中不包含某些類型實體的情況。實驗表明,本文提出的模型在多個評價指標(biāo)上均有明顯的優(yōu)勢。在未來的工作中,將結(jié)合機(jī)器閱讀理解框架對嵌套命名實體識別作進(jìn)一步研究。