?

基于BERT的電子病歷命名實體識別

2024-03-05 08:20鄭立瑞肖曉霞鄒北驥
計算機與現代化 2024年1期
關鍵詞:命名語料病歷

鄭立瑞,肖曉霞,鄒北驥,2,劉 彬,周 展

(1.湖南中醫藥大學信息科學與工程學院,湖南 長沙 410208;2.中南大學計算機學院,湖南 長沙 410083)

0 引 言

命名實體識別是指從復雜的結構化、非結構化和半結構化數據中抽取特定類型實體的識別任務,為文本結構化、關系抽取、文本摘要和機器翻譯等自然語言處理任務提供基礎支持,是自然語言處理的熱點問題[1]。采用命名實體識別技術,可以高效地獲取醫療實體、結構化病歷,為醫療知識圖譜,健康智能問答、智能輔助診療、知識訂閱等服務提供支持,推動智慧醫療發展。

由于中文詞與詞之間沒有分隔符,命名實體的識別首先需要明確詞的邊界,這給中文命名實體識別帶來困難。中文文本還存在一詞多義、多詞一義、句子結構復雜、多省略等特點,語句中不同位置的相同詞語的詞性與詞義也可能完全不同,網絡的發展和應用的普及也導致表達變得更加隨意與靈活,這些都加大了中文實體識別的難度[2]。要提高中文命名實體識別的正確率,需要結合句子的整體語義與語法分析,在正確理解句子語義的基礎上,才能更好地根據語法分析劃分出正確的實體。本文實驗將充分利用中文語義和語法識別電子病歷中的命名實體。

1 相關研究

命名實體識別技術主要經歷了基于詞典與規則的方法、機器學習、深度學習3 個發展階段[3-4]。由于神經網絡強大的特征提取功能,深度學習成為了目前命名實體識別的主流方法?;谠~典的實體識別方法是通過與詞典中的詞進行匹配,匹配成功則識別出實體,因此字典規模的大小直接影響識別率?;谝巹t的實體識別方法是語言專家根據文本特點人工制造規則來實現實體識別的[5]。這2 種方法使用簡單,識別準確率較高,但是詞典與規則的建立需要耗費大量的人力物力,且其識別率完全依賴于詞典和規則是否構建全面?;诮y計的機器學習方法需要根據文本特征選擇標注語料,通過對語料的學習來實現命名實體識別。常用機器學習方法有支持向量機(Support Vector Machine,SVM)、最大熵馬爾可夫(Maximum Entropy Markov Model,MEMM)、隱馬爾可夫(Hidden Markov Model,HMM)、條件隨機場(Conditional Random Fields,CRF)。相比基于詞典與規則的實體識別技術,基于統計的機器學習方法在一定程度上提高了識別準確率,但依賴于人工選擇特征和標注語料的質量。近年來,基于多層神經網絡的深度學習(Deep Learning,DL)模型被廣泛地應用于命名實體識別任務中。相比于基于統計的機器學習方法,深度學習具有更強的泛化能力,不需要人工選擇特征,可通過非線性變換自動獲取特征。深度神經網絡模型的核心思想是將輸入的文本映射成高維度的實數向量,實數向量經過網絡的各種變換將單詞映射到標簽空間,完成分類[6-8]。常見的深度學習模型有循環神經網絡(Recurrent Neural Network,RNN)、BILSTM、卷積神經網絡(Convolutional Neural Networks,CNN)、空洞卷積(Iterated Dilated CNN,IDCNN)。

2018 年Google AI 提出了Bidirectional Encoder Representations from Transformers(BERT)預訓練語言模型[9],該模型以Transformer 為網絡架構,可以充分描述字符、詞、句子間的關系特征,在多種自然語言處理任務中都取得了優異的成績。BERT 在大規模未標注語料上進行預訓練,在面對各種各樣的下游任務時只需要少量的標注語料進行微調就可以取得較好的結果[10]。因此為了解決電子病歷的命名實體識別遇到的未登錄詞和標注數據缺乏等問題,出現了基于BERT 的各種模型。何濤等[11]提出一種結合BERT 與條件隨機場的實體識別模型,通過BERT 模型學習字符序列的狀態特征,并將得到的序列狀態分數輸入到條件隨機場層,條件隨機場層對序列狀態轉移做出約束優化。梁文桐等[12]提出了一種基于BERT 的醫療電子病歷命名實體識別模型。該模型中的BERT 預訓練語言模型可以更好地表示電子病歷句子中的上下文語義,迭代膨脹卷積神經網絡對局部實體的卷積編碼,有更好的識別效果。李妮等[13]提出了基于BERT-IDCNN-CRF的中文命名實體識別方法,該方法通過BERT預訓練語言模型得到字的上下文表示,再將字向量序列輸入IDCNN-CRF模型中進行訓練,訓練過程中保持BERT 參數不變,只訓練IDCNNCRF部分,在保持多義性的同時減少了訓練參數。

這些年針對電子病歷實體識別,基于BERT 的模型主要以BERT-CRF、BERT-IDCNN-CRF 等為主。BERT-CRF 模型是將BERT 模型與CRF 相結合,用于電子病歷中命名實體的識別。其中,BERT 模型用于提取輸入文本中的語義特征,CRF用于建立標簽之間的依賴關系,并生成最終的標注序列,解決了傳統模型無法實現一詞多義、特征提取不足的問題[14-15],但由于沒有考慮上下文信息,其在處理較復雜的文本序列時存在一定局限性。BERT-IDCNN-CRF 模型是將BERT模型與基于膨脹卷積神經網絡(IDCNN)和CRF相結合,用于電子病歷中命名實體的識別。其中,BERT 模型用于提取輸入文本中的語義特征,IDCNN用于學習輸入文本的上下文信息,并進行特征提取和降維處理,CRF 用于建立標簽之間的依賴關系,并生成最終的標注序列。該模型考慮了上下文信息,主要優點在于使用IDCNN 進行特征提取和降維處理,能夠提高模型的運行效率和準確性[16],但由于采用了IDCNN 網絡結構,需要對序列進行卷積操作,會損失一些序列的局部信息。

為了避免IDCNN 損失局部信息并且提高模型的魯棒性,本文提出一種將BERT 模型與BILSTM 和對抗訓練相結合的模型BBCF,用于電子病歷中命名實體的識別。

2 BBCF實體識別模型

BBCF 模型由輸入層、序列建模層、解碼層組成,如圖1所示。輸入層由預訓練模型BERT的編碼層構成,輸入標注好的句子映射成字向量,FGM 在字向量中加入擾動后輸入到Transformer 的Encoder 層后生成上下文特征向量;序列建模層為BILSTM,該層主要進行高維特征抽??;解碼層為CRF 算法,用于預測句子的真實標簽序列。

圖1 BBCF模型

2.1 輸入層BERT

BERT 是Google 以無監督的方式利用大量無標注文本訓練的語言模型,由Embedding 層和Transformer 的Encoder 組 成。Embedding 層 由Positional Embedding、Sentence Embedding 和Token Embedding構成。其中Positional Embedding 通過加入序列標記的位置信息,使得模型能利用序列的順序。公式如下:

其中,pos指的是一句話中某個字的位置,小于所有句子中最長的句子長度,i指的是字向量的維度序號,dmodel指的是字的表示維度。

Transformer的Encoder中最主要的思想是自注意力機制代替傳統的RNN,使用點積進行相似度計算,來學習句子內部的詞依賴關系,捕獲句子的內部結構[17]。公式如下:

其中,Q、K、V是對字向量進行3次線性變換得到的字向量矩陣,dk為輸入向量的維度。

BERT 設計了Masked Language Model 和Next Sentence Prediction 來預訓練模型。Masked Language Model:隨機遮蓋或替換一句話里面的任意字或詞,然后模型根據上下文來預測。Next Sentence Prediction:將2 個句子放在一起,模型根據原文預測這2句是否是前后相鄰的2句。

2.2 序列建模層BILSTM

將BERT 層得到的字向量X輸入到BILSTM,通過遺忘門、輸入門和輸出門對上下文信息進行雙向的高維特征抽取。經過LSTM 模型輸出得到的是能夠表示單詞上下文信息的向量。BILSTM 由雙向的LSTM構成,LSTM通過3個門結構解決了RNN長期依賴的問題[18]。

遺忘門選擇性遺忘掉一些信息:

輸入門加入新的信息:

更新當前狀態:

輸出門輸出確定輸出的部分:

其中,ht-1為t-1 時刻文本的隱狀態;σ為Sigmoid 激活函數;b為偏置向量;tanh 為雙曲正切函數;W為模型參數矩陣[18],·表示2 個向量的點乘,*表示2 個向量的叉乘。

2.3 解碼層CRF

由BILSTM 層得到的結果ht還需要輸入CRF 層進行解碼。CRF 可以學到句子的約束條件(例如Bbody標簽后面應該是Ibody而不是Isymp),通過這些約束條件來保證最終預測結果是有效的[19]。所有標簽的組合構成了路徑的總和,需要從中找到得分最高的路徑,即標簽間的約束條件。每條路徑的分數由公式(10)計算,其中Ayi,yi+1為轉移分數矩陣,它是模型的一個參數,隨著訓練的迭代而更新;Ai,yi為發射分數矩陣,它是BILSTM 層的輸出ht[20];X為觀測序列,其值為{x1,x2,···,xn},是BERT-BILSTM-CRF 模 型 的 輸入;預 測 序 列 標 簽y=ht={y1,y2,···,yn},即BILSTM 層的輸出ht。路徑分數score(X,y)的最大值對應的標簽路徑即為最終的輸出,根據標簽就可以輸出各類命名實體。

2.4 對抗訓練

對抗訓練(Fast Gradient Method,FGM)的思想主要是在梯度上升的方向找到使損失最大的擾動,然后與原樣本相加得到對抗樣本。對抗樣本相對于原樣本,所添加的擾動是微小的,但能使模型犯錯。將生成的對抗樣本加入到訓練集中去,可增強模型對易犯錯樣本的識別率,從而提升模型的泛化能力。

1)計算X的前向loss,反向傳播得到梯度g:

其中,J(θ,x,y)是模型的損失函數,θ是網絡參數,x是輸入,y是標簽。

2)根據Embedding 矩陣的梯度g計算出r,并加到當前Embedding上,相當于X+r,其中:

其中,ε表示疊加在輸入上的擾動。

3)計算X+r的前向loss,反向傳播得到對抗的梯度,累加到公式(11)的梯度上。

4)將Embedding恢復為步驟1時的值。

5)根據步驟3的梯度對參數進行更新[21]。

3 實驗與結果分析

本文實驗采用的操作系統為Win10,Pytorch 版本為1.4.0,Python 版 本 為3.6;GPU 版 本 為NVIDIA 1650Ti,顯 存 容 量 為4 GB,CPU 為AMD Ryzen7 4800H,系統內存為16 GB。

3.1 數據來源及處理

數據集來自CCKS2017 測評任務提供的已標注的脫敏中文電子病歷,但其中存在大量標注不統一、漏標以及標注錯誤等問題。針對這一問題,實驗時采用手工糾正,統一了數據集中字母大小寫與中英文標點符號等。在保證語義相對完整的前提下,將句子切分到380 個字符以內,作為輸入。數據預處理后,訓練集與測試集中實體類型與實體數量見表1。

表1 實體類型與實體數量

CCKS2017 中文電子病歷中的每一個字符采用BIO 標簽進行標注,實體開始的第一個字符用“B”標注,實體中除首字符外其他實體字符用“I”標注,非實體的每個字符都用“O”標注[22]。實驗中有5 種實體類型,因此每個字符有11 種標注可能性。部分標注樣例如表2所示。

表2 數據標注示例

3.2 模型參數設置

實驗中的BERT 模型采用谷歌發布的BERT_BASE 模型,該模型嵌入層尺寸為512,隱藏層共12層,隱藏層維度為768,采用12頭注意力模式,并使用Gelu 激活函數。BERT-BILSTM-CRF 模型訓練參數設置如表3所示。

表3 超參數

3.3 實驗結果與分析

為了了解BERT-BILSTM-CRF 模型在中文電子病歷上命名實體識別的效果,還在CCKS2017 中文電子病歷語料上做了以下2 種模型的實驗:1)BERTIDCNN-CRF 模型,模型使用預訓練模型BERT 提取語義表征,輸入到IDCNN 層進行編碼,采用CRF 模型計算最佳實體識別路徑進行預測[23-24];2)BILSTMCRF 模型,該模型使用Word2Vec 詞嵌入作為文本的輸入表示,輸入到BILSTM 層進行編碼,采用CRF 模型計算最佳實體識別路徑進行預測[25-26]。

中文病歷命名實體識別模型評價指標采用精確率P、召回率R和F1 值,其中F1 值是精確率和召回率的一個平衡,因此命名實體識別的效果主要以F1 值為準[27]。圖2 為實驗中3 種模型隨迭代次數epoch 值增加而變化的結果。從圖2 可見3 種模型的F1 值都隨epoch 值的增加而逐漸趨于平穩狀態;BERTBILSTM-CRF 模 型 相 比 于BERT-IDCNN-CRF 和BILSTM-CRF 收斂得更快、更好,并且訓練過程中F1值的波動更小,說明BERT-BILSTM-CRF 模型在收斂速度上最優;BERT-BILSTM-CRF 模型和BERTIDCNN-CRF 模型無論在收斂速度還是在F1 值上都明顯優于BILSTM-CRF 模型,說明BERT 提供的詞向量相比Word2Vec保留了文本更深的語義信息。

圖2 不同模型的F1值對比

實驗中對CCKS2017 中文病歷語料中的身體部位(body)、查體結果(check)、癥狀(symp)、治療(cure)和疾病名稱(dise)這5類實體進行識別,其結果如表4所 示。由 表4 可 見,BERT-BILSTM-CRF、BERTIDCNN-CRF 和BILSTM-CRF 整 體的F1 值分 別為92.69%、92.49%、82.60%。其中以BERT 為基礎模型的F1 值遠高于以Word2Vec 提供詞向量的BILSTMCRF,說明BERT能夠提供更準確的語義信息,更好地捕捉前后文的語義;IDCNN 通過空洞可以增加模型的感受視野,捕獲全局特征,識別效果也不錯。BERT-BILSTM-CRF 的F1 值又略優于BERTIDCNN-CRF,BERT 主要是通過Position Embedding的方式比較簡單粗暴地編碼位置信息,能否捕捉到連續的順序信息是存疑的。BILSTM 可以對輸入序列進行順序建模,可以很好地捕捉到連續文本的順序信息,實體在文本中都是順序出現的,是連續的,這種連續的順序信息可以很好地幫助識別實體。而且BERT-BILSTM-CRF 的動態詞向量表示還可以識別一詞多義,具有強大的信息記憶與抽取能力,能夠更好地抽取上下文的文本信息。

表4 各種實體識別的準確率、召回率和F1值

BERT-BILSTM-CRF 模型中不同類別實體的F1值差距也較大,其中symp 實體的F1 值最大,為97.45%;cure 實體的F1 值最小,為77.41%。由表1 可知,訓練集中symp 實體的數量為12821,cure 實體的數量為4940,symp實體的訓練樣本是cure實體的2倍多,這導致cure 實體的F1 值較低。另外從語料分析發現cure 類型的實體一般長度較長,專有名詞較多,如奧扎格雷鈉注射液、頭孢哌酮舒巴坦鈉等,導致BERT-BILSTM-CRF模型難以識別這類實體。

為了觀察對抗訓練對模型的增益,移除了對抗訓練的模塊,實驗結果如表5 所示。有對抗訓練模塊的模型比沒有的模型在各類實體上的F1 值均有所提高,整體的F1值提高了0.15個百分點,說明對抗訓練通過生成對抗樣本,確實能提高模型的泛化能力。

表5 消融實驗的準確率、召回率和F1值

4 結束語

在電子病歷的命名實體識別任務中,相比于其他傳統模型,BERT-BILSTM-CRF 模型能在較少的訓練輪數下達到更好的收斂,可以節約訓練成本,快速部署應用,但在識別準確率方面仍有較大提升空間。加入對抗訓練模塊能增強模型的泛化能力,提高識別率。針對實體長度較長且多為專有名詞的語料,可以考慮建立專有名詞的詞表來提高識別率。

猜你喜歡
命名語料病歷
強迫癥病歷簿
命名——助力有機化學的學習
“大數的認識”的診斷病歷
有一種男人以“暖”命名
為一條河命名——在白河源
基于語料調查的“連……都(也)……”出現的語義背景分析
為何要公開全部病歷?
華語電影作為真實語料在翻譯教學中的應用
村醫未寫病歷,誰之過?
《苗防備覽》中的湘西語料
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合