張 由,李 舫
(上海電力大學計算機科學與技術學院,上海 201306)
電子病歷(electronic medical records)是醫療系統信息化的產物,是醫務人員在其醫療活動過程中,使用醫療機構信息系統生成的關于病患的文字、符號、圖標、圖形、數據、影像等數字化信息,并能實現存儲、管理、傳輸和重現的醫療記錄[1]。隨著醫療信息化的快速發展,電子病歷已經成為醫療服務的重要基礎設施之一。同時,智慧醫療已經成為醫療行業的新興發展方向,電子病歷作為智慧醫療的重要數據源之一,將對未來醫療的發展產生重要影響。在婦產科領域,電子病歷的應用也日益廣泛。由于婦產科疾病的特殊性和敏感性,電子病歷可以更加全面、準確地記錄婦產科患者的病歷信息,對于提高醫療質量、優化醫療服務、保障女性健康具有重要意義。因此,研究婦產科電子病歷對女性的意義已成為當前的熱點問題,有望為婦產科領域的醫療服務提供更為優質的支持。命名實體識別(name entity recognition,NER)是指從非結構化文本中識別出具有特定意義的實體,如人名、地名、機構名等[2]。在電子病歷中,由于病歷信息的非結構化特點,傳統的基于規則、關鍵詞匹配或機器學習的方法無法滿足實際需求。因此,采用深度學習等技術對電子病歷進行命名實體識別已成為當前的研究熱點之一。對于婦產科領域的電子病歷數據進行NER 任務的研究也愈發重要。婦產科領域具有許多特殊的術語和專業知識,對于實現對電子病歷中婦產科實體的自動識別,需要在語料庫的構建、特征的選擇、模型的訓練等方面進行一系列的優化。同時,由于婦產科領域的疾病分類較為復雜,電子病歷中的實體種類也更加繁多,對NER 任務的難度和要求提高了不少。通過NER 任務可以更加全面、準確地識別和記錄婦產科患者的病歷信息,為后續的醫療診療提供有力支持。
早期命名實體識別技術主要是基于規則、模板和特征工程等傳統機器學習方法,其主要思路是通過手工設計規則、特征和模板等來提取實體特征并識別命名實體。這些方法依賴于領域專家的經驗和先驗知識,但是往往難以涵蓋所有的實體類型和語境,因此在實際應用中往往表現不盡如人意。近年來由于深度學習發展迅速,越來越多的研究人員將相關技術運用到命名實體識別的研究上。這些方法可以自動學習語言特征,無需手工設計特征和規則,可以更好地適應不同的語境和實體類型,大大降低了人工成本。Lample G 等[3]提出雙向長短期記憶網絡(Bidirectional Long Short-Term Memory,BiLSTM)與條件隨機場(Conditional Random Field,CRF)結合的神經網絡模型,由于BiLSTM 的雙向結構能夠獲取上下文的序列信息,并且CRF 可以處理標簽間的依賴關系,因此在命名實體識別任務上得到了相當理想的效果。王若嘉等[4]將BiLSTM-CRF 引入中文電子病歷命名實體識別領域,標注數據集,建立BiLSTM-CRF 模型對電子病歷中癥狀、檢查等5 類命名實體進行識別,得到了78.12%的值;李超凡等[5]將詞嵌入與BiLSTM-CRF 進行結合,對病歷進行實體識別,進一步提高了模型性能,值達到了90.8%。Lu NJ 等[6]使用上海一家三甲醫院的11 萬條住院和門診記錄結合搜狗詞典,將單詞邊界信息編碼為模型輸入特征,使用多級嵌入(字符級嵌入、詞語級嵌入和字典特征級嵌入)作為BiLSTM-CRF 輸入,達到了92.68%的值。
2018 年谷歌團隊Devlin J 等[7]所提出來的一種語言預處理模型BERT(Bidirectional Encoder Representations from Transformer)來表征詞向量。BERT 通過在海量的無標注數據上預訓練語言模型,然后在命名實體識別任務上進行微調,可以在少量標注數據的情況下取得較好的效果,極大地降低了標注數據的需求。基于BERT 研究和改進模型被廣泛研究以及應用[8],例如謝騰等[9]設計BERTBiLSTM-CRF 模型用于中文實體識別,在MSRA 語料和人民日報語料庫上分別達到了94.65%和94.67%的值。在中文電子病歷命名實體識別領域,Liu ML 等[10]利用網絡爬取的數據,構造細粒度BiLSTM-CRF 分層標簽模型,結合包含拼音、字形信息的BERT 模型,引入額外的標簽信息和語義信息,提升了模型的性能,得到了85.59%的值;張芳叢等[11]將RoBERTa-WWM 中文預訓練模型與BiLSTM-CRF 結合,設計了RoBERTa-WWM-BiLSTM-CRF 的中文電子病歷命名實體識別模型,由于RoBERTa 預訓練模型對BERT 進行了改進,使用了中文訓練樣本,并且使用中文全詞遮掩技術,解決了詞識別不全及一詞多義的問題,提高了識別的準確率,值達到了89.08%。
現有研究存在以下兩方面問題:其一,BERT 模型一般通過大量開放語料庫進行預訓練,以獲得通用的語言表示形式。但是由于開放語料庫的專業知識不夠充分,導致這些BERT 模型在垂直領域表現不佳。在處理電子病歷命名實體識別任務時,經過維基百科預訓練的Google BERT 表現不佳。如果使用垂直領域的文本直接進行預訓練,由于BERT 通常含有110 M 以上的參數,訓練一個垂直領域的BERT 需要大量的計算資源以及時間。其二,婦女由于其特殊的生理及病理特點,受情緒以及環境因素影響較男性更為顯著,對于隱私保護的要求也更高[12]。近年來移動互聯網和智能手機的高速發展,開發婦產科線上問診平臺、智能預問診、智能分診導診等系統對于照顧婦女患者情緒以及保護隱私有著積極的作用。但關于電子病歷實體識別的研究采用的數據集大多為全科數據集,暫無專門針對婦產科的研究,這導致了許多婦產科相關應用只能利用全科數據集訓練的模型,模型性能往往不夠理想,實際應用效果欠佳,對于婦女患者會產生一定的困擾。
基于上述兩個問題,結合近期Liu W 等[13]提出的基于知識圖譜的預訓練模型K-BERT,本文提出了一種K-BERT-BiLSTM-CRF 命名實體識別模型,具體步驟如下:①采用某三甲醫院的300 份真實婦產科電子病歷作為數據集,并且進行數據預處理(脫敏、標注等);②將垂直領域知識圖譜三元組數據集與已預處理婦產科電子病歷已標注數據注入BERT進行訓練,得到具有領域知識的預訓練模型K-BERT,并獲得其特征向量;③將得到的特征向量輸入BiLSTM-CRF 網絡,利用BiLSTM 以及CRF 獲得語料的上下文序列信息以及糾正錯誤標簽順序,獲得最優標簽序列,完成婦產科電子病歷文本中的實體識別。
2.1 模型框架 模型整體結構如圖1 所示。模型整體分為3 層,分別是K-BERT 層、BiLSTM 層以及CRF 層。

圖1 K-BERT-BiLSTM-CRF
2.2 K-BERT K-BERT 是融合知識圖譜的語言訓練模型,如圖1 所示,模型由知識層、嵌入層、可見層和掩碼轉換器組成。處理步驟如下:
①將輸入的婦產科電子病歷文本語句表示為S={w0,w1,…,wn},其中wi為中文單個字符。
②將S 輸入K-BERT 模型中,其知識層會自動識別知識圖譜中相關的實體,并將S 擴充成帶有實體關系的三元組形式wi,{rk,wj},其中wi,wj,rk為醫學實體,為實體間關系。這樣S 會變成一個包含實體以及實體間關系的句子樹。
以輸入“卵巢囊腫會引起下腹疼痛”為例,知識層會以知識圖譜為標準,將句子中的“卵巢囊腫”和“下腹疼痛”抽取出來,并且將實體擴充成三元組{卵巢囊腫,belongs_to,婦科}、{“卵巢囊腫”,do_eat,“海參”}、{“下腹疼痛”,has_symptom,“腹瀉”},然后將這3 個三元組注入原句子中形成句子樹,見圖2。

圖2 句子樹結構
③將句子樹輸入嵌入層和可見層。嵌入層主要的作用為給句子樹添加軟索引位置,見圖2,之后將其鋪平。目的是為了將句子樹鋪平之后仍然不丟失原來的位置信息,以得到正確的序列。每個樹干上都標有數字,表達的即是軟位置索引,如卵1 巢2 囊3腫4 do_eat5 海6 參7。如此標記之后,每根樹干上表達的均為正確的位置信息。
可見層通過生成一個可見矩陣M,來限制詞與詞之間的關系。M 定義如式(1):
其中,相互可見的取值為0,互不可見的取值為,i 與j 均為硬位置索引。
④將鋪平后的句子樹以及可見矩陣輸入到掩碼轉換器中。掩碼轉換器由12 層掩碼自注意力模塊堆疊而成,其作用為確保一個詞只和同一個樹干的上下文有關系。Mask-Self-Attention 的定義如式(2)~式(4):
其中,Wq,Wk,Wv是模型需要學習的矩陣向量參數;hi是隱狀態的第i 個Mask-Self-Attention 塊;dk是縮放因子,用于控制訓練過程中的梯度穩定性;M 為可見矩陣。如果兩個字在同一樹干上,則Mij的值為0,之后按照softmax 進行打分計算;若兩個字不在同一樹干上,則Si+1的得分為0,Mij的值為負無窮,也就意味著這兩個字相互不可見。
如圖2 所示,如果不加以處理直接輸入BERT,模型會誤認為“下腹疼痛”是在“海參”之后,甚至會理解為“海參”會引發“下腹疼痛”,這會對模型性能造成很大的影響。
2.3 BiLSTM 與CRF 長短期記憶網絡(LSTM)是RNN(循環神經網絡)的一種變體,解決了RNN 訓練過程中梯度爆炸或梯度消失的問題,使網絡能夠實現長期記憶,并且捕捉上下文信息,其核心結構為遺忘門、輸入門、輸出門及記憶單元[14],其結構用公式表達為:
其中,σ 為激活函數,W 為權重矩陣,ht-1為上一時刻的輸出,xt為當前輸出,b 為偏置向量,ft,it,ot分別為遺忘門、輸入門和輸出門,ht則為t 時刻的輸出。
LSTM 模型不能充分處理婦產科電子病歷上下文信息[15],而Graves A 等[16]提出的BiLSTM 模型,對每個輸入都分別進行前向LSTM 與后向LSTM,然后將同一時刻的兩個輸出進行合并,這樣每個時刻都對應著前向和后向的信息。因此,利用BiLSTM 模型進行婦產科中文電子病歷的特征提取,將會得到完整的上下文信息。BiLSTM 模型由前向LSTM 和后向LSTM 組成,其輸出如公式(11)所示[17]。
BiLSTM 在處理遠距離上下文關系方面表現較好,但其卻無法處理標簽之間的順序錯位問題,例如I 在B 前面,B 和I 中間有O 等情況。而CRF 可以通過鄰近標簽的依賴關系,獲得一個最優的標簽序列,正好可以彌補BiLSTM 這一問題。
CRF 可以通過分數函數求出每個序列的得分,對每個分數進行歸一化處理,最后采用維特比算法求出最優標簽序列[18]。其公式為:
其中,S 為得分函數,P 為第i 個元素輸出為yi的概率,Ayi,yi+1為yi到yi+1的轉移概率,表示真實的標注序列;Yx表示所有出現的標注序列,Y*為得分最高的序列,即為最優標簽序列。
3.1 數據預處理 實驗數據主要采用某三甲醫院的300 份真實婦產科電子病歷數據集,其中包含入院記錄、出院小結等文本。數據預處理過程包括:
3.1.1 電子病歷脫敏處理 電子病歷中記錄著患者的姓名、地址、病史等隱私信息,為了保護患者隱私以及降低無關信息對實體識別效果的干擾,在不改變電子病歷文本語義表達的前提下,對電子病歷的內容進行脫敏處理,得到脫敏的數據集。
3.1.2 人工序列標注 由于電子病歷為非結構化數據,因此需要對其進行人工實體標注。以相關實體為對象,對疾病和診斷、檢查檢驗、癥狀、手術、藥物、身體部位6 類實體進行標注。標注策略選取BIO,例如實體類別為“疾病”,將該實體的開頭標記為“B-DSE”,此實體詞的中間字符與結尾字符標記為“I-DSE”,非實體詞的其他字符標記為O,所以該數據集文本對應的標簽分別是B-DSE、I-DSE、B-LAB、I-LAB、B-SYM、I-SYM、B-OPS、I-OPS、B-DRG、I-DRG、B-PAT、I-PAT、O 這13 類(表1)。各類預定義類別及其含義信息如下:①疾病和診斷,如卵巢癌、子宮肌瘤等;②檢查檢驗,如CT、大畸形篩查、生化常規等;③癥狀,如下腹部疼痛、陰道瘙癢等;④手術,如腫瘤減積術、剖宮產等;⑤藥物,如順鉑、頭孢等;⑥身體部位,如宮頸、腹腔等。指定專業醫學團隊按照上述規則分別對300 份數據進行標注,并且每份數據都進行兩次以上的標注,最大程度確保標注的準確率。

表1 命名實體分類
3.1.3 數據分組 將人工序列標注好的數據按照4∶1的比例將數據集隨機劃分為訓練集和測試集。訓練集和測試集中每個預定義類別的實體個數見表2。

表2 數據集中各類實體數量統計
3.2 實驗環境 使用kaggle 平臺(www.kaggle.com)進行模型訓練以及測試,框架基于Pytorch[19],具體實驗環境設置見表3。

表3 實驗環境設置
3.3 實驗參數設置 經過多次實驗之后,選取各個模型效果最優的超參數配置,見表4。

表4 模型參數設置
3.4 模型評估 使用命名實體識別領域最常用的評價指標:精確率Precision、召回率Recall 和值。其中,精確率P 指在所有被預測為正的樣本中,實際為正的樣本概率;召回率R 指在實際為正的樣本中被預測為正的樣本概率;F1值為召回率和精確率的調和平均值,如公式(15)-公式(17)所示。
其中,TP 是正確識別的實體的數量,FP 是將其他文本錯誤識別為實體的數量,FN 是文本中未能識別為實體的實體詞數量。
3.5 實驗結果 為了評估K-BERT-BiLSTM-CRF 的有效性,采用BiLSTM-CRF、BERT-BiLSTM-CRF、BERT-IDCNN-CRF、RoBERTa-wwm-BiLSTM-CRF作為對比模型,其在實體識別方面都有廣泛的應用。①BiLSTM-CRF 模型:這是NER 領域的經典模型;在訓練時采用靜態詞向量;②BERT-BiLSTM-CRF模型:在BERT 模型基礎上,將BERT 與BiLSTMCRF 模型結合,在NER 任務上實現了更好的效果;③BERT-IDCNN-CRF 模型:在BERT 模型基礎上,將IDCNN 代替常規的BiLSTM;④RoBERTa-wwm-BiLSTM-CRF 模型:RoBERTa-wwm 模型將BERT字符級掩碼替換為詞級掩碼,可進一步提升實體識別能力。在相同數據集、相同超參數的情況下對這5個模型分別進行訓練,得到了各模型的各個實體以及總體實驗結果,見表5。

表5 實驗結果(%)
在所有模型中,“手術”以及“身體部位“識別率相比另外4 類醫療實體值較低。其主要原因為:“手術”實體普遍長度較長,嵌套內容較多,例如“人工智能輔助技術腹腔鏡下全子宮+雙側附件切除術+盆底重建術(陰道髂恥韌帶固定術/陰道骶前固定術/腹壁懸吊術)”,該實體中又包含著身體部位,因此在預測過程中會產生實體邊界預測錯誤的現象,從而導致實體識別錯誤;“身體部位”F1較低的原因主要在于該實體數量在整個數據集中占比較低,采集到的訓練數據不夠均衡影響了部分類別識別的準確性,這一點可以從表2 中看出。
從表5 中可以看出,本文提出的K-BERT-BiLSTM-CRF 識別模型取得了較好的效果,相比其他4種BiLSTM-CRF 模型,準確率、召回率以及F1值均有不同程度的提高。該模型在6 類醫療實體上的F1值均是最高的。這是因為K-BERT 將醫療知識圖譜內容融入BERT 進行預訓練,充分利用了知識圖譜在垂直領域的優勢,進一步優化了文本的語義特征表示,增強了語義理解,因此取得了較好的電子病歷命名實體識別效果。
綜上所述,本研究提出的K-BERT-BiLSTMCRF 實體識別模型對真實婦產科電子病歷的識別正確率最高,可以被運用于婦產科相關領域中。
對于中文婦產科電子病歷文本數據,本文提出了一種基于K-BERT,結合BiLSTM-CRF 的實體識別模型K-BERT-BiLSTM-CRF,其中K-BERT 預訓練模型結合了醫學垂直領域知識圖譜的內容,可以更準確地表示醫療相關內容的上下文語義,BiLSTM和CRF 可以進一步提取上下文相關特征并且解決標簽偏移問題。實驗結果表明,K-BERT-BiLSTMCRF 訓練結果的精確率,召回率以及F1值均高于現有命名實體識別模型,取得了更好的識別效果,在婦產科電子病歷文本命名實體識別任務上具有一定的優勢。