李 燦,解 丹
(湖北中醫(yī)藥大學信息工程學院 武漢 430065)
中醫(yī)電子病歷記錄了中醫(yī)診療的全過程,蘊藏著豐富的中醫(yī)學知識。中醫(yī)電子病歷入院記錄中主訴、刻下癥等當前狀態(tài)信息與病人現病史、既往病史等病史類信息均是中醫(yī)四診診斷的重要依據。其中,刻下癥即現癥,現在時刻患者四診所獲資料,是中醫(yī)電子病歷特有的部分,存在大量的癥狀描述,有一詞多義、同名異義、異名同義等現象?,F病史是指患者本次疾病的發(fā)生、演變、診療等方面的詳細情況[1]?,F病史具有敘事性強、口語化重、句子長等特點[2]。此外,疾病名稱、檢查、藥物、時間、機構、科室等內容也存在表達不規(guī)范的情況[3]。因此,中醫(yī)電子病歷入院記錄信息的不規(guī)范導致人工識別的成本很高,為后期電子病歷信息的深度應用帶來了巨大阻礙。
為節(jié)省人力,研究者廣泛采用信息抽取技術來實現電子病歷的自動識別任務,將電子病歷中的信息進行規(guī)范化和結構化。目前,對電子病歷信息的抽取主要是對癥狀信息進行識別。袁玉虎等[4]抽取出了中醫(yī)病歷現病史中的癥狀信息。原旎等[5]應用深度表示的方法實現臨床上的現病史數據中的癥狀術語的抽取。但是電子病歷中除了癥狀信息外,還有疾病、檢查、藥物等信息,這些對中醫(yī)診斷也起著重要參考作用。為此,本文利用事件抽取和命名實體識別技術,提出了一種針對中醫(yī)電子病歷入院記錄信息的自動抽取方法。依據已有標準和經典文獻,構建蘊含多種屬性的實體語料庫,通過比較實驗從多個主流模型中選取最適用于本研究的抽取模型,實現中醫(yī)電子病歷入院記錄信息的自動識別與規(guī)范化存儲。
信息抽取通常包括命名實體識別、關系抽取、事件抽取3 個核心任務:①命名實體識別(Named entities recognition,NER)的目標是從大量的數據中找出相關的命名實體,并將它們分離出來,在文本中標注這些信息[6]。隨著深度學習的興起,雙向長短期記憶網絡(BiLSTM)、膨脹卷積(IDCNN)、BERT 預訓練模型等深度學習模型逐漸應用于醫(yī)療實體的識別。高佳奕等[7]利用CRF 模型實現了中醫(yī)臨床醫(yī)案癥狀的命名實體抽取。肖瑞等[8]通過BiLSTM-CRF 方法實現了對中醫(yī)醫(yī)案文本進行命名實體識別。陳琛等[9]采用BERTBiLSTM-CRF 方法識別電子病歷中的解剖部位、疾病等命名實體。②關系抽?。≧elation extraction,RE)目標是從無結構文本中提取出已知實體對的語義關系[10]。它可用于抽取出醫(yī)療實體之間的關系。武小平等[11]提出了BERT-CNN 抽取出了心血管醫(yī)療指南中醫(yī)療實體之間的關系。張玉坤等[12]基于聯合神經網絡模型抽取出了中文醫(yī)療實體之間的治療、上下位等關系。由于電子病歷中不僅含有醫(yī)療實體、實體之間存在某種關系,也存在著診療事件,研究者開始抽取電子病歷中的診療事件。③事件抽?。‥vent extraction,EE)是從自然語言中提取出使用者感興趣的事件,并將其作為一種結構化的表達手段[13]。侯偉濤等[14]在BiLSTM 模型的基礎上,提取了醫(yī)學事件并進行了屬性識別。余杰等[15]提出了聯合抽取的方法,實現了醫(yī)療事件的聯合抽取。劉子晴[16]提出了一個面向中醫(yī)門診電子病歷信息抽取的通用框架,以臨床表現和臨床事件為切入點,不僅抽取了癥狀、疾病名等實體,還抽取了腫瘤、手術、療效等其他臨床事件。
本文以中醫(yī)電子病歷入院記錄中的刻下癥與現病史為例分別展開信息自動抽取研究。如表1所示為湖北省某中醫(yī)院內科臌脹病及河南省某中醫(yī)院骨傷科電子病歷入院記錄的刻下癥和現病史原始文本,兩個文本描述的內容大體相差不大。其中,刻下癥中包含了癥狀、舌象、脈象等中醫(yī)術語,文本較短,僅對其進行命名實體識別(本文不考慮舌象、脈象);現病史文本較長,均由多個診療事件組成,考慮首先將現病史以診療事件為單位拆分成短句,然后再對診療事件進行命名實體識別。由于本文不必分析醫(yī)療實體之間的關系因此不考慮關系抽取。
表1 不同醫(yī)療機構的電子病歷現病史原始信息
2.1.1 事件抽取
常見的事件抽取方法有2 種:①基于模式匹配算法:事件的提取是由人工或自動生成的,由人工或自動生成的特征格式表示的,通常被稱作模式匹配;②觸發(fā)詞法:觸發(fā)詞法也被叫作事件關鍵詞法。在統(tǒng)計處理事件句的過程中,有一類事件句在語句中的出現頻率較高,通常指的是在語句中存在特定的術語或者詞匯。所以,可以通過建立一個事件觸發(fā)詞字典來使事件提取更加有效[17]。本文通過分析現病史句子的特征,確定觸發(fā)詞,隨后抽取出現病史的診療事件。
本文通過分析現病史的原始文本,首先將中醫(yī)電子病歷中的診療事件分為患者癥狀、疾病診斷、入院入科、檢驗檢查、手術情況、藥物治療及非藥物治療7種子事件,如表2 所示。以上劃分的7 種子事件中至少含有一個即可定義為一次診療事件,幾種子事件組合起來也可以成為一次診療事件。
表2 診療事件子類型及其說明
無論是診療事件還是其子事件都由多個事件論元組成,事件論元是指事件所涉及的使用者所關心的語義對象,一般指一個名詞,而論元則是事件的參與者[18],可以理解為本文的實體類型。本文定義了9 種論元角色類型,分別為時間(Time)、癥狀(Symptom)、疾?。―isease)、機構(Institution)、科室(Department)、檢查(Test)、手術(Surgery)、藥物(Drug)、非藥物(Nondrug)。
2.1.2 命名實體識別
常用命名實體識別模型有BiLSTM-CRF、IDCNNCRF、BERT-IDCNN-CRF、與BERT-BiLSTM-CRF 模型等。
①BiLSTM-CRF 模型:該模型融合了雙向長短期記憶模型(BiLSTM)和條件隨機場模型(CRF),結合詞語的上下文有關信息,將詞的分布式表達引入到特征提取中,最大程度地利用詞與標簽之間的關系,從而提高識別效果[19]。
②IDCNN-CRF 模型:該模型將擴展卷積神經網絡與條件隨機場模型相結合,在卷積核中添加擴展距離,并將4個相同尺寸的擴展卷積塊進行疊加,然后把語句輸入IDCNN,通過卷積層抽取特征,然后通過映射層與CRF 層相連。神經網絡中包含多個膨脹卷積塊,可利用GPU的并行性以提升訓練速度[20]。
③BERT-IDCNN-CRF 模型:它包括BERT 層、IDCNN 層、CRF 層。BERT 層是對文本進行關聯提取的向量,IDCNN 層用于提取特征,CRF 層用于阻止標記序列的非法標記,從而獲得最大概率的標記[21]。
④BERT-BiLSTM-CRF 模型:該模型通過BERT模型構建字向量在進行特征提取之前引入了注意力機制,并且通過語料庫進行字向量的構建,可以提高特征不明顯、組成復雜的實體識別的準確性[22]。
本文構建了中醫(yī)電子病歷入院記錄信息抽取的規(guī)范化流程,如圖1 所示。整個流程分為以下5 個階段:①數據獲取及預處理:從中醫(yī)電子病歷中獲取入院記錄信息,以刻下癥和現病史信息為研究對象對其進行數據預處理工作,然后構建中醫(yī)電子病歷實體語料庫;②識別模型遴選:從常用信息抽取模型中遴選出適合本研究的信息抽取模型;③事件抽?。焊鶕|發(fā)詞將現病史中的診療事件抽取出來;④實體抽?。航Y合中醫(yī)電子病歷實體語料庫,利用識別模型分別識別刻下癥及現病史診療事件中的醫(yī)學實體并抽取出來;⑤數據存儲:將抽取出來的各類實體存儲至數據庫中。
圖1 中醫(yī)電子病歷入院記錄信息自動抽取規(guī)范化流程示意圖
在本文實驗中,用到的模型性能評估指標包括:精確率(Precision)、召回率(Recall)和F1 值。其中,TP為模型正確識別出的實體數,FP為模型識別出的其他類實體數,FN 為模型未識別出的其他類實體數[23]。具體公式如下:
3.1.1 數據來源
選取2018 年河南省某中醫(yī)院骨傷科的767 份電子病歷的入院記錄作為本研究的數據基礎。選擇其中的刻下癥與現病史作為研究對象。
3.1.2 數據預處理
通過去掉重復電子病歷、刪除缺失值、去掉多余空格等操作對其進行“數據清洗”等預處理工作后還剩563份數據。
3.1.3 語料庫構建
語料庫的構建質量高低能夠決定實體識別模型訓練的識別率的高低,而現病史中幾乎覆蓋了所有的臨床診療事件,因此本文根據真實世界中醫(yī)電子病歷,構建了與上述9種論元相對應的時間、癥狀、疾病、機構、科室、檢查、手術、藥物、非藥物共9 種實體語料庫,作為模型訓練的基礎,癥狀語料庫是其中最為重要的一環(huán)。
(1)癥狀實體語料庫
由于不同??茖2〉陌Y狀屬性存在較大差異,為了更有效地識別出各種癥狀實體,將癥狀實體語料庫分為中醫(yī)臨床基礎癥狀語料庫和??茖2“Y狀語料庫。其中中醫(yī)臨床基礎癥狀語料庫主要源于《中醫(yī)藥學名詞:內科學·婦科學·兒科學(2010)》[24],其收納了中醫(yī)??茖2〉墓强萍油饪圃\斷術語1109條,診斷術語中包含有疾病名稱、證型以及癥狀等信息。再利用《中醫(yī)臨床基本癥狀信息分類與代碼》[25]對其中的癥狀進行標注,給出骨干癥狀、獲取方式以及人體部位、性質等多個屬性。例如對于診斷“骨性關節(jié)炎”標注后的形式為“關節(jié)軟骨進行性退變,骨質增生,以{symptom:疼痛-問疼痛;<A:關節(jié)>疼痛}、腫脹、局部壓痛、{symptom:四肢不用-問不適;活動受限}為主要臨床表現的疾病?!逼渲?,用“symptom”表示癥狀實體,在“-”前后分別是癥狀必要類目屬性“骨干癥狀”與“獲取方式”,在“;”后是癥狀實體描述,“<>”是對癥狀屬性的描述,Xie等[26]對標注過程進行了詳細描述。由于??茖2〉陌Y狀屬性存在較大差異,為了更好地識別??齐娮硬v中的信息,還需構建??茖2≌Z料庫。選取去重后的563 份電子病歷中的30%條(169 條)進行標注,構建骨傷??茖2“Y狀語料庫。完善后的語料庫包含之前的1109 條和??茖2?69 條,共計1278條癥狀診斷術語。
(2)疾病實體語料庫
疾病名稱參考《ICD-10/11》構建疾病實體語料庫。將《ICD-10/11》中骨科常見疾病名稱納入疾病實體語料庫。例如疾病名稱“骨關節(jié)炎”標注后為“{disease:骨關節(jié)炎}”。構建的疾病實體語料庫包含510個疾病實體。
(3)機構、科室實體語料庫
由于實證研究中選取的電子病歷來源于河南省某中醫(yī)院,因此這里選取河南省統(tǒng)計局和河南省衛(wèi)生健康委員會中發(fā)布的各級醫(yī)療機構名稱構建機構語料庫。例如“偃師市中醫(yī)院”標注后為“{institution:偃師市中醫(yī)院}”。根據國家發(fā)布的《醫(yī)療機構診療科目名錄》構建科室語料庫,例如“骨科”標注后為“{department:骨科}”。構建的機構、科室語料庫分別包含1337個機構實體和34個科室實體。
(4)檢查、手術實體語料庫
對于現病史中出現的檢查、手術等信息,從國家發(fā)布的《手術分類與代碼》標準(《ICD-9-CM3》)中選取骨科相關手術,以及搜狗詞庫中骨科常見檢查的種類,加上電子病歷標注數據中包含的骨科常見手術名稱和檢查種類,共同構建檢查檢驗、手術實體語料庫。例如“椎體成形術”標注后為“{surgery:椎體成形術}”,“腰椎磁共振”標注后為“{test:腰椎磁共振}”。構建的檢查、手術實體語料庫分別包含25個骨科常見檢查實體和26個手術實體。
(5)藥物、非藥物實體語料庫
由于實驗中選取的是骨傷科電子病歷,為了更好地識別骨科藥物,選取了開源平臺:搜狗詞庫,其中包含了骨科常用藥,同時從電子病歷已標注數據中獲取得到骨科用藥及非藥物治療,共同構建藥物和非藥物實體語料庫。例如“骨化三醇軟膠囊”標注后為“{drug:骨化三醇軟膠囊}”,“ 針灸”標注后為“{nondrug:針灸}”。構建的藥物、非藥物實體語料庫分別包含105個骨科常用藥物實體和11個非藥物實體。
(6)時間實體語料庫
在現病史中會出現各類有關時間的描述,多為相對時間和絕對時間。相對時間:例如“前2 天,1 個月后”等;絕對時間:例如“2021 年1 月10 日,4 月22 日”等。為此,將時間實體分為簡單時間表達式、復合時間短語及時間介詞短語,簡單時間分為日歷型時間(Date)、具體時間(Time)、時間詞(TimeN)、段時間(TimeD)及周或星期時間(TimeSet)[27]。例如日歷型時間“2012-06-14”標注后為“{Date:2012-06-14}”;時間詞“前天”標注后為“{TimeN:前天}”;復合時間短語“3 月9 日8 點30 分”標注后為“{Date+Time:3 月9 日8點30 分}”;時間介詞短語“1 年前”標注后為“{TimeD+TimeLN:1年前}”。構建的時間實體語料庫包含26個時間實體。
由于癥狀實體的識別最為復雜,因此選取1109條骨科加外科的病證診斷術語作為遴選識別模型的訓練數據。合適的參數設置會在模型訓練時獲得較高的識別率[28]。因此本文通過修改的參數包括學習率(Learning rate)、批樣本數量(Batch-size)和迭代次數(Epoch)的值選出一個最適合現病史信息抽取的模型。
利用BiLSTM-CRF、IDCNN-CRF、BERT-IDCNNCRF 和BERT-BiLSTM-CRF 模型對癥狀實體進行識別,并修改Learning rate、Batch-size、Epoch 參數的值。采用BIO 標注法時,當Learning rate 為0.01,Batch-size為16,Epoch 為100 時BiLSTM-CRF 模型的精確率、召回率、F1 最高可分別達到91.35%、71.08%、81.20%;當Learning rate 為0.001,Batch-size 為64,Epoch 為100 時IDCNN-CRF 模型精確率、召回率、F1 最高可分別達到89.07%、87.94%、86.85%;當Learning rate 為0.01,Batch-size 為64,Epoch 為40 時BERT-IDCNN-CRF 模型的精確率、召回率、F1 最高可分別達到89.7%、72.1%、78.7%;當Learning rate 為0.001,Batch-size 為32,Epoch 為90時BERT-BiLSTM-CRF 模型的精確率、召回率、F1 最高可分別達到87.71%、91.14%、88.89%。綜上所述,BERT-BiLSTM-CRF 模型對癥狀實體的識別效果最好。因此,選用BERT-BiLSTM-CRF 作為識別模型,此時,Learning rate、Batch-size、Epoch 分別為0.001、32、90。當采用BIOES 標注法時,BERTBiLSTM-CRF 模型的精確率、召回率、F1 分別為80.04%、87.20%、83.47%,比采用BIO 標注法時低,因此最終選用BIO標注法進行實驗。
由于刻下癥中不含診療事件,因此本小節(jié)不考慮刻下癥。本文綜合考慮了匹配觸發(fā)詞的方式抽取診療事件和利用命名實體識別模型來識別診療事件兩種方式。實驗發(fā)現,前者依賴于觸發(fā)詞的選定以及待抽取的原始數據的選擇。當事先對數據無任何預知的情況下,識別診療事件的結果會根據觸發(fā)詞的不同以及選取的現病史數據的不同而有所差異,好的情況識別診療事件的F1 值能夠高達100%,差的情況識別的F1 值只有30%左右。而后者采用命名實體識別技術進行識別時F1值可達70%,與前者取平均的結果相差不大,但此種方式不會因為數據的不同而導致結果有很大的波動。由此考慮將兩者相結合的方式抽取診療事件,首先利用命名實體識別模型識別出診療事件,然后根據總結出的觸發(fā)詞再次劃分診療事件,按此種方式抽取后的Precision、Recall 和F1 值分別到達79.20%、83.96%和81.77%。
例如對表1中河南省骨傷科現病史的例子進行診療事件抽取后變?yōu)椋骸皗event:1 周前病人無明顯原因出現腰背部疼痛加重,彎腰、翻身、起床等活動明顯受限,休息數日后疼痛緩解不明顯。}{event:今日至我科就診,為求進一步系統(tǒng)治療,由門診擬‘嚴重骨質疏松、胸腰椎多發(fā)壓縮骨折’收入我病區(qū)治療。}”一共2次診療事件。
由于刻下癥中包含了大量中醫(yī)術語,而現病史中則包含了幾乎所有電子病歷中主要的實體,因此本文的實驗對象主要針對電子病歷中刻下癥和既現病史進行抽取,下面將分別對刻下癥與現病史中的內容進行識別。
3.4.1 刻下癥實體抽取
刻下癥中的實體主要是癥狀實體,而癥狀實體包括了必要屬性和附加屬性,如骨干癥狀、人體部位等,Du 等[29]對知識屬性的識別過程做了詳細描述。利用BERT-BiLSTM-CRF 模型對骨傷科刻下癥中癥狀實體進行識別,將骨科加外科的病證診斷術語共1109 條名詞作為基礎語料,分別隨機選取10%(56 條)、15%(84條)、20%(112)、25%(141 條)、30%(169 條)5 種比例的骨傷科??茖2≌Z料中刻下癥內容進行識別,比較精確率、召回率F1 值。訓練結果如表3 所示。當加入25%的??茖2≌Z料庫時精確率和F1值最高,分別為79.76%、83.75%,召回率較高,為88.16%。見表3。
表3 BERT-BiLSTM-CRF模型對刻下癥癥狀實體識別結果
例如,對表1 中河南省某中醫(yī)院的刻下癥文本進行實體抽取,能識別出陰性癥狀有“神志清”、“精神可”、“飲食可”、“小便可”、“無發(fā)熱”;陽性癥狀有“表情痛苦”、“大便秘”、“消廋”。
3.4.2 現病史實體抽取
利用BERT-BiLSTM-CRF 模型對現病史中癥狀、疾病等實體進行識別,將骨科加外科的病證診斷術語共1109 條名詞作為基礎語料,加入實體語料庫,然后分別隨機選取10%、15%、20%、25%、30%共5 種比例的骨傷科??茖2≌Z料中現病史內容進行事件抽取后得到的診療事件,進行實體識別,比較精確率、召回率和F1值。當加入30%的??茖2≌Z料庫時精確率、召回率和F1 值最高,分別為88.15%、85.94%、90.48%。各種實體的識別情況以及平均效果如表4所示。
表4 BERT-BiLSTM-CRF模型對現病史各類實體的識別結果
例如對3.3 節(jié)事件抽取中的第二個診療事件可識別出時間實體為“今日”,科室實體為“我科”、“門診”,疾病實體為“嚴重骨質疏松”、“胸腰椎多發(fā)壓縮骨折”。
將抽取出來的癥狀、疾病等9 種實體按照一定的結構存儲至Excel 表中,使自然語言形式表達的中醫(yī)電子病歷文本信息得以規(guī)范化、結構化,方便后續(xù)對中醫(yī)電子病歷入院記錄信息進行深度挖掘研究。
本文提出了中醫(yī)電子病歷入院記錄信息自動抽取的方法,并基于相關標準構建了蘊含知識屬性的實體語料庫。利用事件抽取與命名實體識別技術,通過對多個常用信息抽取模型進行比較,最終遴選出了BERT-BiLSTM-CRF 模型。利用該模型分別對刻下癥中的癥狀實體和現病史中的癥狀、疾病、機構、科室、藥物等9 類實體進行識別與抽取,對刻下癥中癥狀實體的識別率達83.75%,對既往病史中癥狀、疾病、藥物等實體的識別率達90.48%。運用該方法可將中醫(yī)電子病歷入院記錄信息以結構化、規(guī)范化的形式存儲到Excel表中,有助于研究人員對中醫(yī)電子病歷數據再次利用,深度挖掘其潛在價值,對中醫(yī)臨床辨證論治的傳承與創(chuàng)新起到了重要作用。在研究過程中發(fā)現語料庫的質量對實體識別率有顯著影響,因此在今后的研究中將不斷擴充和完善語料庫,此外需進一步優(yōu)化命名實體識別模型以提高電子病歷現病史的識別率。