世俱杯规则-虎牙直播-比利亚vs西班牙人-德国杯|www.cnyhmy.com

基于預訓練模型的中文電子病歷實體識別

時間:2023-07-13 10:00:04 來源:網友投稿

李曉林,胡澤榮

(武漢工程大學 計算機科學與工程學院,湖北 武漢 430205)

早期,基于規則和詞典的命名實體識別方法工作量巨大,基于統計的實體識別方法依賴于大量的人工標注語料[1]。Lample等[2]針對傳統命名實體識別方法嚴重依賴手工標注的問題提出了兩種基于神經網絡的命名實體識別方法,一種是將BiLSTM與CRF相結合,另一種是基于過渡的依賴解析方法,取得了較好的性能。目前,命名實體識別的方法主要是基于神經網絡。在中文電子病歷命名實體識別方面,張華麗等[3]提出一種基于注意力機制的BiLSTM-CRF實體識別方法,證明注意力機制顯著優化了電子病歷的實體識別效果。但是,基于神經網絡的電子病歷實體識別方法大部分都使用Word2Vec訓練詞向量,缺點是詞和向量是一一對應的關系,無法解決一詞多義,最終導致實體識別準確率不高[4]。針對這個問題,Peters等[5]提出了基于雙層雙向LSTM結構的ELMo學習并且訓練詞向量與上下文的關系。Radford等[6]提出OpenAI GPT模型,使用Transformer代替 LSTM獲取長距離信息。Devlin等[7]提出基于雙向Transformer編碼的BERT模型可以提取文本更深層的語義信息,但無法充分利用顯性的詞和詞序信息。Cui等[8]提出了BERT-wwm模型,引入全詞Mask預訓練任務,但存在以下問題:①BERT-wwm模型中LTP分詞方法對本文病歷文本分詞性能不高,導致掩碼效果不佳;
②由于醫療實體結構的復雜性和特殊性,BERT-wwm的掩碼策略和機制不適用于本文;
③基于BERT-wwm的識別模型沒有關注到不同的語義特征重要性不同。

針對上述問題,本文提出了一種基于BERT-iwwm預訓練模型的實體識別方法,顯著提高了醫療命名實體識別的準確率。本文的主要工作如下:①在醫療實體標注方面,本文提出了動態詞長的逆向最大匹配算法減少標注歧義;
②為增強語義向量表示,在輸入向量層中加入字向量和注意力機制,關注不同字向量的全局語義特征;
③在預訓練模型方面,采用PKU分詞并構建用戶自定義詞典以提高分詞性能;
改進掩碼策略和Mask機制增強模型提取語義特征的能力;
根據本文電子病歷數據單句訓練的特點,去掉了預訓練模型的下一句預測任務。

本文電子病歷數據存在據前后標注不一致的問題,主要有兩種情況:①同一個醫療實體分別被標注為實體和非實體;
②同一個醫療實體被標注為兩種或多種實體類別,如圖1所示。

圖1 標注歧義

由圖1可看出,同一個醫療實體“糖尿病”分別被標記為非醫療實體O和“疾病”類醫療實體,“兩肺支氣管肺炎”分別被標記為“疾病”類和“身體”類。

針對上述問題,本文提出了動態詞長的逆向最大匹配(DRMM)算法對數據集進行標注糾錯,減少標注歧義。定義詞表A為所有醫療實體集合, A={實體,label}, 其中label為該實體的標簽類別。詞表B為待處理醫療文本的實體集合, B={實體,start,end,label}, 其中start和end分別是該實體在文本中的起止位置,且B屬于A。動態詞長逆向最大匹配算法流程如圖2所示。

圖2 DRMM算法流程

其中,C為待處理文本S的最后一個字符。如果在詞表A中找到候選字符串C,則從S中去掉C并且將實體C和其在S中起始位置以及其在A中的標簽加入詞表B,否則繼續向左匹配。相比于固定最大詞長的逆向最大匹配算法,DRMM算法可以動態的根據候選醫療實體的詞長進行匹配,一定程度上提高了算法的效率。

本文實體識別模型主要針對傳統預訓練語言模型提取語義特征能力不足以及忽略不同語義特征對模型的影響程度不同的問題。模型的整體結構如圖3所示,包括字注意力機制層、輸入向量層、預訓練層、BiGRU層和CRF層。

圖3 電子病歷命名實體識別模型結構

2.1 輸入向量層

分詞的質量會直接影響Mask模型預訓練的效果,進而影響模型提取文本語義特征的能力。針對BERT-wwm模型的分詞方法在中文電子病歷文本分詞效果較差,本文采用PKU分詞方法對預訓練數據進行分詞。因為PKU分詞模型包含多種不同領域:新聞領域、網絡領域、醫藥領域和混合領域等,其中醫藥領域與本文電子病歷文本契合度更高。并結合經過標注糾錯后的5類醫療實體構建的用戶自定義詞典進一步提高分詞性能。

考慮到分詞效果的提升有一定的局限性,并且在預訓練過程中字向量可以輔助詞向量提取上下文信息,所以本文在輸入向量層加入了字向量,并加入位置向量區分每個字在序列中的位置,如圖4所示。

圖4 電子病歷命名實體識別詞向量模型結構

其中,詞向量是經過PKU分詞后每個詞在詞表中對應的詞向量表示,字向量是預訓練數據經過word2vec生成的相應的字向量表示,位置向量主要表示每個詞在預訓練序列中的位置。最終輸入預訓練模型中向量是由詞向量、字向量和位置向量進行拼接后的向量。

2.2 注意力機制層

為了充分考慮序列中每個字之間的語義聯系,本文在字向量后加入注意力機制,計算每個字與其上下文之間的語義相似性,得到每個字的增強語義向量表示。

對于文本中的每一個序列si={x1,x2,…,xN}, 其中xi表示單詞。單詞xi經wordvec處理后得到的特征向量為hi, 將其輸入注意力機制層。然后計算當前詞xi與序列中其它詞xj(j=1,2,…,i-1,i+1,…N) 的相關性,即權重。各個單詞之間的權重bij的計算如式(1)所示

(1)

其中,f(xi,xj) 的計算如式(2)所示,表示是位置j輸入和位置i輸出之間的關系

f(xi,xj)=tanh(waw′t-1+uahj)

(2)

式中:wa表示狀態w′t-1的權重,ua表示特征向量hj的權重。對特征向量hj進行加權求和,得到單詞xi關于序列的全局特征如式(3)所示

(3)

由注意力機制層得到的字向量是基于全局信息的字向量,融合了該字上下文語義信息,可以更好輔助詞向量提取語義特征。

2.3 預訓練層

改進的預訓練層BERT-iwwm模型結構由多層雙向的Transformer編碼器組成[9],主要是對輸入序列隨機掩蓋15%的詞,然后模型通過學習這些詞的上下文信息去預測這些詞。本文中文電子病歷文本經過標注歧義處理后各類醫療實體的平均長度見表1。

表1 各醫療實體平均長度

由表1可以看出,各類醫療實體的平均長度相差較大。本文輸入最大序列長度為256,包含115個詞,掩蓋15%的詞即17個詞,其中14個詞(80%)被[Mask]掩碼替換,3個詞被隨機替換和保留原詞。可以看出,保留原詞的個數非常少。對于“治療方式”這類平均長度較長的實體來說,預訓練過程中若[Mask]過多,會使模型對其關注過多,無法確保模型的預測趨于正確。本文旨在增加隨機替換和保留的詞個數,使模型對每個詞具有更多的可見性。以最大序列長度所覆蓋的詞為基準,每次增加一個被替換和被保留的詞,但是不能超過總詞長的一半,即被掩碼詞的個數分別為:12、10、8。

為了在預訓練時充分利用上述Mask后的樣本以及在迭代時提取更多樣性的語義特征,本文預訓練時將原始數據輸入模型時候再隨機。同時,在預訓練迭代次數較多的情況下可以節約大量時間。BERT-wwm模型先對原始數據隨機Mask然后再進行預訓練,當迭代多次的時候每一種Mask方式會被使用多次,無法保證一種Mask方式只使用一次。隨著迭代次數的增加,相同的Mask方式被使用的次數越來越多。本文數據7835條、迭代100 000次,上述Mask機制會造成重復的Mask方式過多,樣本利用率低并且訓練時間較長。針對本文電子病歷文本都是單句的特點,本文去掉了下一句預測預訓練任務。因為下一句預測主要是判斷句子B是否是句子A的下一句,用于理解句子之間的關系。但是本文電子病歷各個句子之間都是相互獨立的,即不需要預測句子之間的相關性。

2.4 BiGRU-CRF層

為了進一步學習序列隱含特征,本文在預訓練模型后接BiGRU模型,最后通過CRF模型解碼得到最終序列標注。單詞xi的隱含特征向量hi計算過程如式(4)~式(6)所示

(4)

(5)

(6)

(7)

y*=argmaxS(X,y)

(8)

其中,Ayi,yi+1就代表標簽yi到標簽yj的轉移得分,oi,yi表示第i個詞在第yi個標簽下的輸出得分。預測時采用維特比算法求解最優的輸出序列。

3.1 實驗數據

本文使用CCKS2018的醫院電子病歷數據集。其中訓練集和測試集包含病人的癥狀、身體部位、治療方式、醫學檢查和疾病等實體。各類實體統計見表2。

表2 CCKS2018實體個數統計

3.2 標注策略

本實驗使用BIO標注模式,待預測的標簽一共有11種,見表3。

表3 BIO命名實體標簽

本文使用精確率P、召回率R和F1值作為命名實體識別的衡量指標,其定義如式(9)~式(11)。其中Tp是預測結果中正確識別的實體數量,Fp是預測結果中識別出的錯誤實體數量,Fn為標準測試集中正確的實體但是預測結果沒有識別出來的數量

(9)

(10)

(11)

3.3 實驗設置及參數

為了驗證模型的有效性,本文設置了3組對比實驗:①BERT-BiLSTM-CRF:基于BERT模型,該模型屬于基線模型;
②BERT-wwm-BiLSTM-CRF:與①作對比實驗,驗證BERT-wwm預訓練對模型識別性能的影響;
③BERT-wwm-BiGRU-CRF:與②作對比實驗,驗證BiGRU網絡對模型性能的影響;
④BERT-iwwm-BiGRU-CRF:與③進行對比,驗證BERT-iwwm模型的改進效果。

各對比模型的公共參數設置如下:注意力頭數12,隱藏層數768,模型學習率2e-5,drop率0.5,最大序列取256,train_batch_size采用16。本文實驗的環境配置如下:①操作系統為Ubuntu 18.04;
②CPU型號為Intel Xeon E5-2665;
③GPU型號為GTX 1080Ti;
④內存為64 G;
⑤顯存為11 GB;
⑥Python版本為3.6.8;
⑦Tensorflow的版本為1.13.1。

3.4 實驗結果及分析

對文本“高血壓病史11年糖尿病11年”進行標注歧義處理后的結果如圖5所示。

圖5 標注歧義處理結果

由圖5可以看出,經過標注歧義處理后將“糖尿病7 9疾病”加入詞表,并將其標注類別由“O”糾正為“DISEASE”,說明DRMM算法可以有效減少已標注文本中的標注歧義,提高文本的標注準確率。

為了驗證本文輸入向量層加入字向量以及經過注意力機制處理后的字向量對預訓練模型性能的影響,在中文電子病歷驗證集上進行實驗,結果見表4。

表4 不同輸入向量的實驗結果

由表可知,加入經過注意力機制處理后的增強語義字向量預訓練模型在驗證集的F1值達到了88.2%,高于原始字向量輸入。實驗說明,注意力機制有效的使字向量表示融合了全局語義特征,從而提高了預訓練模型的性能。

為了驗證醫療實體字典對分詞結果的影響,本文以默認詞典和用戶自定義詞典進行對比,驗證不同的分詞方法以及詞典對預訓練任務的影響。實驗結果見表5,評估標準是正確Mask的準確率和正確預測下一句的準確率。

表5 不同分詞方法的Mask結果

從實驗結果可以看出,基于默認詞典的PKU分詞的mask_acc比LTP高0.9%,并且均比THU和CRF分詞方法高。同時,基于用戶自定義實體詞典的masked_acc比基于默認詞典的高。其中,next sentence_acc始終為1是因為在下一句預測預訓練任務中沒有涉及到對句子關系的預測。實驗驗證,本文構建的自定義醫療實體詞典通過提高分詞質量可以進一步提升模型預訓練任務的效果。

以PKU方法結合自定義醫療實體字典進行分詞的前提下,采用不同掩碼詞長的Mask策略進行預訓練,以驗證集的P、R和F為評價標準,實驗結果見表6。

表6 不同Mask比例對比結果/%

Mask策略為50%、60%、70%分別對應本文最長序列掩碼8、10、12個詞。由上表可知,Mask比例為70%取得了最高F1值為84.1%。當Mask比例超過80%,F1值會逐漸降低,而低于60%識別率會大幅降低,說明本文醫療文本適合按70%的掩碼策略進行預訓練。

現以70%的Mask比例為基礎調整Mask機制和去掉下一句預測進行預訓練,結果見表7。

表7 改進預訓練任務實驗結果

對比1、3和2、4可以看出,改進的Mask機制提升了模型性能。對比1、2和3、4可以看出,去掉下一句預測任務后模型的性能進一步提升。實驗驗證,本文的改進一定程度上可以增強模型提取語義特征的能力。

本文模型與各個對比模型的實驗結果見表8。

表8 不同模型識別結果

歧義處理前,本文模型的F1值達到90.03%,遠高于其它4種模型,說明改進的預訓練模型和Attention機制整體增強了語義特征提取能力從而提高了模型實體識別性能。歧義處理后,本文模型較歧義處理前F1值提高了0.54%,說明減少預訓練數據的標注歧義可以進一步提高模型的識別準確率。同時,本文模型的訓練時間較其它模型大幅縮短,可見BiGRU模型在訓練成本上要優于BiLSTM。

為驗證本文模型的有效性,將其與目前主流命名實體識別模型進行對比,實驗結果見表9。

從表9可以看出,本文基于BERT-iwwm的電子病歷命名實體識別模型的F1值均高于其它主流模型,說明BERT-iwwm提取語義特征的能力更強。相較于其它幾種主流模型,本文模型加入注意力機制學習每個字的全局語義特征,提高了重要語義特征的權重,進一步增強了預訓練模型提取語義特征的能力,提高了醫療實體識別效果。

表9 本文模型與主流模型的結果對比

本文提出了一種基于改進預訓練模型和注意力機制的醫療實體識別方法。該方法結合PKU與用戶自定義實體字典提高了分詞準確率;
為了提高模型學習語義特征的能力,模型在輸入向量層加入注意力機制融合序列上下文語義特征,改進了預訓練模型掩碼策略和Mask機制,并去掉了下一句任務避免冗余訓練;
針對標注歧義問題,提出動態詞長逆向最大匹配算法。實驗結果表明,本文模型較主流模型的醫療實體識別性能有較大提升。如何進一步提高電子病歷醫療實體的識別率將是下一步的重點研究工作。

猜你喜歡歧義分詞病歷強迫癥病歷簿趣味(語文)(2021年9期)2022-01-18分詞在英語教學中的妙用校園英語·月末(2021年13期)2021-03-15“大數的認識”的診斷病歷數學小靈通·3-4年級(2020年9期)2020-10-27eUCP條款歧義剖析中國外匯(2019年12期)2019-10-10結巴分詞在詞云中的應用智富時代(2019年6期)2019-07-24結巴分詞在詞云中的應用智富時代(2019年6期)2019-07-24English Jokes: Homonyms瘋狂英語·新悅讀(2017年2期)2017-04-08為何要公開全部病歷?中國衛生(2016年10期)2016-11-13“那么大”的語義模糊與歧義分析海南師范大學學報(社會科學版)(2015年7期)2015-12-28村醫未寫病歷,誰之過?中國衛生(2015年10期)2015-11-10

推薦訪問:病歷 中文 實體

最新推薦
猜你喜歡