賈 猛,王裴巖,張桂平,蔡東風
(沈陽航空航天大學 人機智能研究中心,遼寧 沈陽 110136)
命名實體識別(Named Entity Recognition,NER)的主要任務是識別出文本中的人名、地名等專有名稱和有意義的時間、日期等數(shù)量短語并加以歸類[1],是機器翻譯、信息檢索、知識圖譜等應用的核心組件之一。面向工藝文本的命名實體是對產品制造中所遵照或是產生的工藝標準、工藝大綱、工藝規(guī)范、指導書等文本中蘊含的工程圖紙、參考標準、結構特征、零件和零件號、零部件屬性和屬性值等進行識別,對于工藝知識庫構建[2-3]與工藝自動生成[4-5]等具有重要作用。
近年來,深度學習模型被廣泛用于通用領域NER任務中,并表現(xiàn)出優(yōu)越的性能。此類方法將命名實體識別轉化為序列標注問題,基于RNN[6]、LSTM[7]或GRU[8]網絡,預測每個字在實體中的構成成分。如文獻[9]首先將LSTM應用于命名實體識別任務,取得了不錯的識別效果。文獻[10]首次將BiLSTM-CRF模型應用于NLP序列標注的命名實體識別數(shù)據(jù)集上,實驗結果表明,BiLSTM-CRF模型相較于LSTM獲得了更好的結果。文獻[11]將BiLSTM與CNN進行結合,用于命名實體識別,取得了不錯的識別效果。文獻[12]提出了基于BiLSTM和基于Stack-LSTM兩種神經網絡模型,在四種語言上均獲得了很好的識別效果。最近,針對中文的命名實體識別,文獻[13]提出了一種融合字詞的BiLSTM模型,在《人民日報》和MSRA語料上均取得不錯的識別效果。文獻[14]提出了一種神經網絡結構Lattice LSTM,將潛在詞信息融入到基于字符的LSTM-CRF中,在中文NER中,取得了目前最佳的效果。上述通用領域模型中均未引入外部知識,文獻[15]研究并證明了外部知識對于命名實體識別的重要性。文獻[16]從維基百科語料中獲得地名詞典,并將其作為特征加入到BiLSTM-CRF模型中訓練,在兩種不同的語言中獲得了命名實體識別性能的提升。該方法將詞典作為外部知識加入到模型中,未考慮規(guī)則這類外部知識,但在專業(yè)領域中,語料中大都含有大量的句型和構詞規(guī)則,如何將這類規(guī)則和詞典相結合提升實體識別效果是一個難點。
相較于通用領域,專業(yè)領域中命名實體的識別需要以該領域的知識為依據(jù),并兼顧其語言規(guī)律特性,使得專業(yè)領域的命名實體識別具有一定的難度[15]。在化學領域,文獻[17]針對化學資源文本的語言規(guī)律及特點,建立BiLSTM-CRF模型對命名實體進行初步識別,并使用基于詞典與規(guī)則相結合的方法對識別結果進行校正;在軍事領域,文獻[18]針對軍事文本的語法特點建立特征集合,基于CRF對軍事命名實體進行識別,并依次使用基于詞典的方法和基于規(guī)則的方法對識別結果進行校正;在小語種識別領域,文獻[19]針對維吾爾語命名實體識別中存在的語義信息欠缺及數(shù)據(jù)稀疏等問題,基于BiLSTM進行初始識別,并將維吾爾語單語知識引入后處理校正模塊。上述方法都關注在深度學習模型識別后,使用領域知識規(guī)則對個別實體結果進行修正,但并沒有利用這部分知識在提高此部分實體識別效果的同時幫助其他實體的識別。其原因在于,“校正”方法只能對具有詞典或規(guī)則的實體在模型識別后對識別結果進行校正,而對于沒有詞典或規(guī)則的實體,“校正”方法并不能在模型識別后通過后處理校正來提升該部分實體的識別效果,也就是識別模型與詞典及規(guī)則相脫離,詞典及規(guī)則指導信息沒有利用于模型的訓練與預測過程。
針對以上問題,本文面向工藝文本提出了一種融入領域知識的神經網絡命名實體識別方法。該方法利用領域詞典與規(guī)則預識別出部分實體作為預識別實體特征,提出一種神經網絡模型CNN-BiLSTM-CRF,通過CNN網絡利用預識別實體整體特征指導字序列標注模型的訓練與預測。實驗表明,本方法不但能夠提高詞典及規(guī)則覆蓋的實體識別效果,還能夠提高其他類實體的識別效果,優(yōu)于其他參與比較的方法,實體識別的F1值從90.99%提升到93.03%。
本文的組織結構如下: 第1節(jié)闡述工藝文本的實體識別;第2節(jié)闡述CNN-BiLSTM-CRF網絡結構;第3節(jié)對實驗結果進行分析,驗證了所提方法的識別效果;第4節(jié)作出結論。
本文在工藝文本中識別的實體涉及12大類(表1),這些實體表現(xiàn)出了如下特點。首先,因為某類編號或包含編號的實體比重很大,由于編號具有規(guī)則,所以能使用規(guī)則識別出此類實體。但由于同一套編號規(guī)則能夠適用于不同類實體,也造成了歧義。例如,零件號與工程圖紙?zhí)柧幪栆?guī)則完全一致,又如,參考標準、工藝規(guī)范、方法圖等編號規(guī)則有重疊。這就需要在使用規(guī)則識別的同時,使用上下文信息進一步消除歧義或修正規(guī)則識別結果。其次,常用標準件如“螺釘”與“軸承”等及結構特征如“孔”“凸臺”等能夠使用詞典識別。但還存在“下防撞燈電源盒”等無法基于詞典識別的實體。再者,工藝文本中的實體存在嵌套現(xiàn)象,如“鉚釘孔”結構特征實體中嵌套有“鉚釘”零件實體。這些特點就需要在使用深度學習模型識別實體的同時融入規(guī)則或詞典信息,幫助模型訓練及預測。
表1 工藝文本數(shù)據(jù)表
本文提出了一種基于CNN-BiLSTM-CRF的神經網絡模型,并將領域知識融入其中,用于工藝文本的命名實體識別。該模型將實體識別視為字序列標注問題,模型的輸入為字序列,輸出為字序列所對應的實體標記。首先將輸入的字序列信息處理為字特征向量和實體預識別特征向量,然后分別通過CNN網絡提取深層次局部字符級特征信息并將輸出向量進行拼接,最后將拼接后的向量輸入到BiLSTM-CRF網絡中?;贐iLSTM,該模型能夠有效利用工藝文本序列數(shù)據(jù)的上下文輸入特征;基于CRF,該模型能夠考慮輸出標簽之間的依賴性,輸出最優(yōu)標簽序列。模型結構如圖1所示,該模型由五部分組成: Input層、Embedding層、CNN層、BiLSTM層和CRF層。
圖1 CNN-BiLSTM-CRF命名實體識別模型
2.1.1 字特征
現(xiàn)有的命名實體識別有基于字[7]、基于詞[10]以及字詞聯(lián)合[13]的三種輸入方式。由于基于詞的輸入方式受分詞結果的影響,并且沒有專門的工藝文本分詞工具,因此本文選用基于字特征輸入的方式。將工藝文本數(shù)據(jù)按字進行切分,并統(tǒng)計每個字的出現(xiàn)次數(shù),按從高到低進行排序。同時需要向字表中加入未登錄字
2.1.2 實體預識別特征
實體預識別特征由基于詞典的預識別特征和基于規(guī)則的預識別特征構成。基于詞典的預識別是對零件和結構特征兩種實體的預識別,基于規(guī)則的預識別是對工程圖紙?zhí)?、零件號、參考標準號、方法圖和工藝規(guī)范五種實體的預識別。將上述預識別結果進行組合,為基于詞典及規(guī)則的實體預識別特征,并將輸入字序列對應的預識別實體標注結果轉化為獨熱向量的形式表示。
2.1.2.1 基于詞典的預識別
由于工藝文本中零件實體和結構特征實體存在嵌套交叉現(xiàn)象,如“高鎖螺栓孔”,該實體為結構特征實體,但里面嵌套著“高鎖螺栓”零件實體。為了提高該部分實體的識別效果,本文通過人工收集建立零件和結構特征命名實體庫即詞典,零件和結構特征詞典大小為1 384,如“沉頭螺栓”“自鎖螺母”“導孔”等。依據(jù)該詞典對輸入字序列進行逆向最大匹配[20]并對結果做初始標注,如“沉頭螺栓”標注結果為“B-LJ I-LJ I-LJ E-LJ”,將標注結果作為基于詞典的預識別實體特征。
2.1.2.2 基于規(guī)則的預識別
經過人工分析發(fā)現(xiàn),工藝文本中部分實體的上下文構成和構詞本身存在一定的規(guī)律。本文通過分析這部分實體上下文和實體本身的用詞特點,人工總結出一些啟發(fā)式的句型和構詞規(guī)則,制定出規(guī)則模板,依據(jù)該模板對輸入字序列進行規(guī)則匹配并對結果做初始標注,將標注結果作為基于規(guī)則的預識別實體特征。句型規(guī)則示例如表2第1行所示,“按534GD601要求進行制孔”匹配規(guī)則“按BZ要求進行制孔”后,得到實體預標注序列“O B-BZ I-BZ I-BZ I-BZ I-BZ I-BZ I-BZ E-BZ O O O O O O”。觸發(fā)詞規(guī)則示例如表2第2行所示,“定位NAS578-5B”匹配規(guī)則“定位LJH”后,得到實體預標注序列“O O B-LJH I-LJH I-LJH I-LJH I-LJH I-LJH I-LJH I-LJH E-LJH”。構詞規(guī)則示例如表2第3行所示,“GYGF036-078”匹配規(guī)則“GYGF數(shù)字串-數(shù)字串”后,得到實體預標注序列“B-GYGF I-GYGF I-GYGF I-GYGF I-GYGF I-GYGF I-GYGF I-GYGF I-GYGF I-GYGF E-GYGF”。下面介紹詳細的規(guī)則模板說明。
表2 規(guī)則說明
(1)句型規(guī)則
工藝文本中頻繁使用大量固定的句型,如“按照圖紙……制……與……的導孔”、“根據(jù)……對……的調整檢查”、“按……及參考……定位……并鉆定位孔”等。其中,工程圖紙?zhí)?、參考標準號和零件號實體經常嵌套在上述結構中,并且零件后面一般緊跟其對應的零件號,此類句型歸納總結為25條。因此可通過對固定句型的識別來判定工藝文本命名實體中的工程圖紙?zhí)?、零件號和參考標準號實體。
(2)觸發(fā)詞規(guī)則
在句型規(guī)則中,經常包含一類固定的詞,這些詞的出現(xiàn)預示著工程圖紙?zhí)?、零件號和參考標準號實體的出現(xiàn),將這些詞稱為觸發(fā)詞,如“按照BAPS151-001手工安裝ZCB4023V3CR8粘接支架”,在上述例子中,參考標準號和零件號實體出現(xiàn)在“按照”和“安裝”觸發(fā)詞之后。除上述觸發(fā)詞之外,還有“定位”“鉆制”“拆除”等,此類觸發(fā)詞歸納總結為19個,在一定程度上標識著實體類別和邊界。因此,本文建立了完備的觸發(fā)詞知識庫來判定工藝文本命名實體中的工程圖紙?zhí)枴⒘慵柡蛥⒖紭藴蕦嶓w。
(3)構詞規(guī)則
工藝文本中實體的內部構成存在一定的規(guī)律,如工藝規(guī)范實體“GYGF036-078”,是由“GYGF”作為開始字符,其后緊跟一個由數(shù)字和字母構成的字符串。有類似構詞規(guī)律的實體還有方法圖和參考標準實體。因此通過該構詞規(guī)則來判定工藝文本命名實體中的工藝規(guī)范、方法圖和參考標準實體。
文本向量化有兩種表示方法: 獨熱表示和分布式表示[21]。分布式向量能夠從大規(guī)模的語料中學習到單詞間的語義相關性,并且可有效降低維度,本文采用分布式的向量表示。分布式表示使用Word2Vec[22]預訓練模型,Word2Vec有兩種實現(xiàn)模型: Skip-gram和CBOW。文獻[23]對兩種模型進行了比較,當語料規(guī)模在百兆級別時,CBOW模型表現(xiàn)更好。結合本文所用的語料,選用CBOW模型。
CNN是有效提取句子局部特征信息的方法[24]。本文中預識別的實體特征形成了指導標注的局部特征,利用CNN提取該局部特征信息。圖2是本文所用的CNN模型結構。對于每個輸入,使用一個卷積層和一個池化層從每個輸入特征向量中提取一個新的特征向量。在字符經過Embedding層輸入卷積層之前,先經過一個Dropout[25]層。輸入特征向量包括基于字的特征向量和實體預識別特征向量。
圖2 CNN提取字符級特征
2.4.1 LSTM網絡
LSTM是在RNN的基礎上改進而來的一個模型,t時刻,給定輸入xt,LSTM的記憶單元結構的內部實現(xiàn)如式(1)所示。
(1)
其中,W表示連接兩層的權重矩陣(如Wxi表示輸入層到隱藏層的輸入門的權重矩陣),b表示偏置向量(如bi表示隱藏層的輸入門的偏置向量),c表示記憶單元的狀態(tài),σ()和tanh()表示兩種不同的神經元激活函數(shù),i,f和o分別表示輸入門、遺忘門和輸出門。
2.4.2 BiLSTM網絡
圖3 BiLSTM模型結構
CRF模型是Lafferty等[27]提出的一種判別式概率無向圖學習模型。工藝文本命名實體識別任務的標簽之間并不獨立,具有較強的依賴關系,如文本中所識別零件實體LJ和工程圖紙實體TZ,通常B表示開始的字,I表示中間的字,E表示最后的字,O表示非實體,B-LJ標簽后面可能是I-LJ標簽和E-LJ標簽,但不可能是I-TZ標簽。由于CRF能考慮相鄰標簽之間的關系,所以本文使用CRF對標簽序列進行建模,而不是獨立地對每個標簽進行解碼。
在這里,定義輸入句子X、輸出標簽序列y的分值s(X,y),如式(2)所示。
(2)
其中,A是轉移矩陣,表示將所有狀態(tài)一步轉移的概率;P是BiLSTM輸出的矩陣,Pi,j是假設從第i個字到第j個字作為一個命名實體的得分。
為了最大化正確標簽序列的概率,解碼搜索條件概率最大的標簽序列y*,如式(3)所示。
(3)
其中,YX表示y所有可能的標簽序列。
本實驗以某型飛機裝配所遵照的工藝文本作為數(shù)據(jù)集,該工藝文本數(shù)據(jù)來源于工藝標準、工藝大綱、工藝規(guī)范和指導書中的操作說明語句,共10 350條,經過人工標注后為實驗語料。該數(shù)據(jù)集中包含命名實體99 704個,實體類型如表1所示,平均句長為194個字,數(shù)據(jù)標注方式采用BIEO形式的標注方式。本文實驗均在十折交叉驗證下進行,并且取十次結果的平均值作為對算法精度的估計。
本文主要通過準確率P(Precision)、召回率R(Recall)和F1值這三個指標來對工藝文本的實體識別結果進行評測。具體如式(4)~式(6)所示。
本文采用基于batch的梯度下降優(yōu)化超參數(shù),其中批次大小為64,使用Adam優(yōu)化器,并設置學習率為0.001;為了防止過擬合問題,設置Dropout參數(shù)為0.2;LSTM前向傳播和反向傳播的隱層節(jié)點數(shù)為200。CNN層設置卷積核大小為2,卷積核個數(shù)為200,卷積層數(shù)為1,采用ReLU()激活函數(shù)。具體模型最佳訓練參數(shù)設置如表3所示。Embedding層使用Word2Vec的CBOW模型生成的向量,各參數(shù)取表4中的值時,模型的綜合實驗效果達到最佳。
表3 最佳訓練參數(shù)設置
表4 CBOW模型參數(shù)表
為了驗證融入基于領域詞典及規(guī)則預識別特征的有效性,本文設計了8組對比實驗,如表5所示。模型均使用2.2節(jié)所提到的CBOW模型在中文維基百科語料上訓練而成的100維的字向量。模型1~5的輸入向量是基于字特征的向量,未加入額外特征;模型6使用的輸入向量是基于字特征的向量,未加入額外特征,在模型識別后使用詞典及規(guī)則進行校正;模型7中的Pre_dic表示的是在基于字特征輸入的基礎上,加入額外基于詞典的預識別實體特征向量作為模型輸入;模型8中的Pre_dic_reg表示的是在基于字特征輸入的基礎上,加入額外基于詞典及規(guī)則的預識別實體特征向量作為模型輸入。
表5 8種模型對比實驗結果
對表5中的實驗結果進行分析發(fā)現(xiàn),模型1~5在基于字特征輸入的對比實驗中,模型5識別效果最好,準確率、召回率和F1值可達到88.59%、93.82%和90.99%。模型5和模型2相比,增加了CNN,其中模型5采用了模型2的BiLSTM-CRF層結構,準確率、召回率和F1值分別提高了0.08%、3.37%和1.52%,說明加入CNN用于提取工藝文本輸入字向量中存在的局部信息是有效的;模型5和模型4相比,將模型4的BiGRU使用BiLSTM代替,準確率、召回率和F1值分別提高了0.24%、2.59%和1.29%,說明BiLSTM相較于BiGRU在本實驗數(shù)據(jù)上表現(xiàn)出了更好的識別效果;模型6、7和8均采用了模型5的CNN-BiLSTM-CRF層結構。模型6和模型5相比,在模型5的基礎上加入后處理“校正”,準確率、召回率和F1值分別提高了1.11%、0.69%和1%,說明在模型識別后使用詞典及規(guī)則對部分實體校正后,該部分實體識別效果的提升使得整體的結果有了一定的提升;模型8和模型7相比,輸入特征由字特征加基于詞典的預識別特征變?yōu)樽痔卣骷踊谠~典及規(guī)則的預識別實體特征,準確率、召回率和F1值分別提高了1.1%、1.56%和1.25%,原因在于,基于詞典的預識別只是對零件和結構特征兩類實體做預識別,而基于詞典及規(guī)則的預識別是在上述兩類實體的基礎上又增加了對零件號、工程圖紙、參考標準、工藝規(guī)范和方法圖五類實體的預識別,實體覆蓋范圍更廣,向量中所隱含的特征信息更加豐富,使得模型表現(xiàn)更好;從模型8和模型6的對比實驗結果可以看出,相較于使用詞典及規(guī)則在模型識別后面校正的方法,將基于詞典及規(guī)則的預識別實體特征加入到模型中效果更好,準確率、召回率和F1值分別提高了1.25%、0.85%和1.04%,究其原因,主要在于“校正”方法僅能用后處理的方法修正具有詞典與規(guī)則的那部分實體的識別效果,不能幫助其他類實體的識別,而所提出的方法不但能夠提高具有詞典和規(guī)則的實體識別效果,還能幫助其他類實體的識別,該方法使得識別模型與詞典及規(guī)則相結合,詞典及規(guī)則指導信息更好地利用于模型的訓練與預測過程,使模型整體的泛化能力更強,獲得了更好的識別效果。
由2.1節(jié)可知,在工藝文本待識別的12種實體中,參考標準、結構特征、零件、零件號、工程圖紙、工藝規(guī)范和方法圖七種實體能用詞典或規(guī)則的方法預識別出,識別結果如表6所示。
表6 詞典及規(guī)則覆蓋度
通過分析表6可知,工藝規(guī)范和方法圖實體準確率和召回率都比較高,原因在于這兩類實體規(guī)則較為明顯,通過人工能很好地總結出構詞規(guī)律。對于零件號、參考標準和工程圖紙這三類實體,召回率較低,準確率較高,原因在于這三類實體的構詞形式較多,只能從中總結出相對較為普遍的構詞規(guī)律。對于零件和結構特征實體,召回率較高,準確率較低,主要在于零件和結構特征實體存在嵌套交叉現(xiàn)象,在基于詞典進行逆向最大匹配的過程中會將兩類實體混淆。
為進一步驗證加入基于詞典及規(guī)則預識別特征的有效性,對于工藝文本中的各類實體,選取表5中模型5、模型6和模型8三種模型做對比,其中,模型5是基于字特征輸入中識別效果最好的模型,模型6是在模型5后使用詞典及規(guī)則校正的方法,模型8是在模型5基礎上加入額外的基于詞典及規(guī)則的預識別實體特征。對于具有詞典及規(guī)則的各類實體,模型對比結果如表7所示,對于無詞典及規(guī)則的各類實體,模型對比結果如表8所示。
表7 具有詞典及規(guī)則的各類實體識別結果 (單位: F1/%)
表8 無詞典及規(guī)則的各類實體識別結果 (單位: F1/%)
通過分析表7可知,有詞典及規(guī)則的各類實體在加入額外基于詞典及規(guī)則預識別特征后,每類實體的F1值均有一定的提升,并且高于在模型識別后使用詞典及規(guī)則校正的方法,說明這類實體在詞典及規(guī)則信息特征的指導下,模型發(fā)揮出了更好的效果。從表8可以看出,“校正”方法僅能用后處理的方法修正具有詞典與規(guī)則的那部分實體的識別效果,無法對無詞典及規(guī)則類實體在模型識別后使用詞典及規(guī)則進行校正,因此模型5和模型6在該類實體上識別效果一樣,而本文方法不但能夠提高具有詞典和規(guī)則的實體識別效果,對于無詞典及規(guī)則的每類實體的F1值也均有提高,主要原因在于向量的分布中隱含了額外的詞典及規(guī)則指導信息,經過CNN-BiLSTM-CRF模型的抽象,可以更好地學習出來。也進一步說明了加入CNN和基于詞典及規(guī)則的預識別實體特征后,在提高模型整體識別效果的同時,對于每一類實體均有提升,驗證了本文方法的有效性。
現(xiàn)有的專業(yè)領域命名實體識別研究大都關注在深度學習模型識別后,使用領域詞典及知識規(guī)則對個別實體結果進行校正,但并沒有利用這部分領域詞典及知識規(guī)則在提高此部分實體識別效果的同時幫助其他實體的識別。其根本原因在于,識別模型與領域詞典及知識規(guī)則相脫離,詞典及規(guī)則指導信息沒有利用于模型的訓練與預測過程。針對該問題,本文提出建立基于CNN-BiLSTM-CRF的神經網絡模型用于工藝文本命名實體的識別,引入基于領域詞典及規(guī)則的預識別實體特征,將其用來指導模型的訓練與識別,實驗表明,本方法可有效提高工藝文本命名實體識別的性能。同時本文提出使用特征提取器CNN,抽取工藝文本輸入特征向量中存在的局部字符級信息,進一步提高了系統(tǒng)的性能。
未來工作中,我們將考慮模型在基于字輸入的基礎上融入詞或者句子信息,期許能在模型隱層中提取出更多特征信息,獲得更好的識別性能。