朱鐵兵,柏志安
(上海交通大學醫學院附屬瑞金醫院計算機中心,上海 200025)
在現代醫療技術中,醫療預測的成本較大,在可用性上也受到了限制,現代電子病歷的智能分析[1-2]有望成為一種迅速、低成本的解決方案。電子病歷由醫務人員在臨床醫療活動中使用健康信息系統捕獲,包含詳細描述患者健康狀況的文字、符號、圖表、圖形、數字與圖像,主要由結構化與非結構化數據組成。其中,非結構化數據包括自由樣式的文本[3-4],如主要癥狀、病程進度與出院總結。盡管這些文本特征便于記錄疾病、癥狀、測試和治療,但對自動挖掘醫療信息以構建智能輔助診斷的臨床決策系統造成了障礙。為消除這些障礙,命名實體識別技術被廣泛應用于電子病歷中疾病、癥狀、測試與治療信息的抽取[5-6]。但目前國內外對命名實體識別的研究,主要集中在傳統的命名實體模型能否有效識別EMRs中的命名實體。此外,由于缺乏可供研究的資源,從中文命名實體中挖掘命名實體的研究較少[7]。
近年來,深度學習技術作為一種流行的大數據分析方法,在一些研究中被應用于提高網絡學習機器的性能[8-10]。然而,目前的研究主要集中在利用傳統的NER 方法從EMRs 中挖掘命名實體[11-12],且沒有一個模型能夠在無需傳統機器學習模型的幫助下通過深度學習的方式在EMRs 中實現[13-14]。雖然深度學習已成為構建神經網絡模型的一種有效的特征提取方法,但在復雜的特征提取與選擇的過程中必須依賴于傳統的機器學習模型,如支持向量機(SVM)或條件隨機場(CRF)來構建這些神經網絡模型[15-16]。因此該文嘗試在不使用傳統機器學習模型的情況下,設計一個基于卷積神經網絡與單詞嵌入的NER 模型來完成EMR-NER 任務。該文構建了一個帶注釋且在電子病歷首頁增加了質控核查的電子病歷語料庫,然后提出了一種基于CNN 的多類分類方法來完成EMRs 中的NER,通過實驗驗證了方法的有效性,并根據研究結果給出了潛在的研究方向[17]。
命名實體識別信息抽取技術的一個關鍵子任務,是將由單詞組成的命名實體在文本中分類為預定義類別。NER 可以定義為一個多分類問題,即對一個實體詞進行分類,如式(1)所示。

其中,N與T分別表示單詞數與命名實體類型數。此任務也可以用序列標記任務,例如:x可以標記為,y可以標記為其中,l表示單詞與標簽的數量,表示第i個字,表示第t個字。
在該文研究中,注釋數據被標記為BIO 格式用于構造NER 方法。其中,每個單詞被分配到3 個類中的一個,B:實體的開始;I:實體內部;O:實體外部。電子病歷中的命名實體識別是指從臨床筆記中挖掘概念或事件作為實體,用于構建輔助決策的信息系統,幫助醫務人員進行決策。圖1 給出了電子病歷句子中以BIO 格式標注實體的示例。每一個單詞的標簽均是根據其實體類型標注的,類型由專業醫生確定,并用BIO 格式手動標記的。例如,將“青霉素過敏史”分為“青霉素”與“非青霉素過敏史”,“青霉素”與“過敏史”分別標上“B 病”與“I 病”。其中“B”與“I”分別表示詞在命名實體中的位置信息,“病”表示命名實體的類型,NER 技術則應用于自動標記這些標簽。

圖1 命名實體識別標記結果示例
該文研究是基于某醫院不同科室的992 份電子病歷進行的,這些病歷中包含的私人信息已被刪除。每份電子病歷的記錄由兩位醫生(A1 與A2)獨立注釋,若兩位醫生均給出相同的意見,則注釋是固定的;若意見不一致,則進行深入討論,直至就注釋達成一致。在經過兩輪注釋,最終獲得了包含992個EMRs 的金標準。
最終的金標準使用5 類命名實體,即疾病、癥狀、治療、測試與疾病組的診斷和治療過程。在對語料庫進行注釋后,使用注釋間一致性(IAA)來評估兩個注釋者的一致性水平。兩位醫生的IAA 值為94.20%,說明利用標注的語料庫作為數據集對模型進行訓練與測試是可靠的。
表1 給出了數據集的一些統計數據,包括文檔、句子、字符與實體的數量。在992例EMRs中,每種命名實體的分類為47.69%的癥狀、20.96%的疾病、17.60%的檢查、13.20%的治療與0.56%的疾病組。治療與測試命名實體幾乎平均分布在出院總結與病程記錄中,而癥狀實體主要分布在急診室。這些數據集分為5個部分:4個部分用于訓練模型,一個部分用于測試模型,并使用五折交叉驗證來評估NER方法。

表1 電子病歷中文件、句子、字符和實體的數量
該文基于CNN 的EMRs 命名實體多類分類方法分為兩個階段:在第一階段,對EMRs 進行預處理,選擇與提取特征并標記單詞;在第二階段,建立基于CNN 的多類分類模型。該方法的兩階段框架如圖2所示。在第一階段中,使用文本提取器從EMRs 中提取句子并刪除相同句子。

圖2 基于CNN的神經網絡多類分類模型框架
在第二階段,首先使用詞向量來表示樣本,樣本表示為一對標簽與一組詞向量。例如,單詞wi可以使用其自身的標簽與相鄰詞的詞向量表示,表達式為
其中,l表示其命名實體類型的標簽,wvi表示wi的單詞向量。然后使用一對一策略將樣本劃分為子集,并在這些子集上訓練模型。其過程如圖3 所示。樣本集根據標簽對的劃分被分割成多個子集。例如,若樣本集中有3 種標簽(即a、b與c),則集合將根據標簽對的組合(如{(a,b),(b,c),(a,c)})被劃分為3 個子集。其次,利用CNN 對每一個子集訓練一個二值分類器,從而得到多個分類模型。在預測過程中,根據這些分類器對預測的投票結果來生成測試樣本的標簽。

圖3 基于CNN的模型訓練框架
給定一個句子,S=wk-2wk-1wkwk+1wk+2wk+2…,其中在特征集中定義wk和以wk為中心的n個圖形:
1)以一元語法與二元語法形式顯示令牌的字級信息;
2)以一元語法、二元語法與三元語法形式顯示POS(詞性標注,Part-of-Speech)標記的語法信息。
特征模板使用的是Stanford 分詞器與Stanford 單詞分析器中的特征模板,以便在包含樸素貝葉斯(Naive Bayes,NB)、最大熵原理(Maximum Entropy,ME)、SVM 與CRF 的傳統機器學習模型的基礎上構建NER 模型。對于文中的方法,使用Tensorflow11 提供的CNN 來構造多類分類方法,關鍵參數有:面板為3×3,池為2×2,層數為2。
文中從NER 的評價指標(即準確率、微F-Mesure值與宏F-Mesure 值)方面來評估NER 方法的性能。微F-Mesure 數值受樣本數量的影響大于其他類別,其計算方法如下所示。

其中,true positive(c) 表示c類中與金標準相同的實體標簽計數;false positive(c)表示c類中與金標準相同的發散標簽計數;false negative(c)表示c類中與金標準不相同的實體標簽計數。
宏F-Mesure 值(F)由準確率值(P)與召回率值(R)定義,如式(5)~(7)所示。

其中,TP表示與金標準相同標簽的實體標簽計數;FP表示已識別實體標簽中與金標準相同的發散標簽計數;FN表示已識別實體標簽中與金標準不同的標簽的計數。
宏F-Mesure 值的計算方法如下所示:

其中,Nc是實體類別數,Pi、Ri與Fi表示第i類實體的識別數值。
實驗分別用宏值、微值與準確率來評估傳統方法與文中所提方法的性能。從表2 與表3 的結果可見,多類分類方法較基于CRF 方法的整體精度低。然而由于識別長實體的結果存在誤差,其準確度低于微F-Mesure 值。換言之,若實體由多個單詞組成,則這些單詞的實體類型不能同時使用正確的標簽進行標記。不同實體類型的識別結果比較表明,測試實體的識別準確率最高,而疾病組實體的識別準確率最低。

表2 所提方法與傳統方法在出院總結的準確率比較(單位:%)

表3 所提方法與傳統方法在進度注釋的準確率比較(單位:%)
由于實驗模型與傳統模型未使用相同特征的訓練集來訓練,所以上述的比較并不是在相同的條件下進行的。因此,還需要使用相同特征的模型進行訓練再比較結果。最終結果如表4 所示。結果表明,多類分類方法與基于CRF 方法在出院總結的NER 模型性能差異約為3.77 %,而在病程記錄上的性能差異約為3.39 %。雖然該文設計的方法在性能上低于基于CRF 的NER 模型,但這恰好說明了所提出的方法在電子病歷中的實用性。

表4 所提方法與同類方法的性能評估比較(單位:%)
該文構建了一個由992 個電子病歷組成的語料庫,并用5 種實體類型進行人工標注。然后,研究文中提出多類分類方法在語料庫中識別醫學命名實體的性能。實驗結果表明,分詞與詞性信息均可為構造NER 方法創建有用的特征。該方法在出院總結與病程記錄上的微F值分別為88.64%與91.13%;而基于CRF 的NER 方法的微F值分別為92.41%與94.52%,高于傳統方法略低于CRF 方法。實驗結果驗證,基于CNN 的多類分類方法對電子病歷中命名實體的挖掘是有效的。為進一步提高NER 的性能,下一步可以通過建立一個解析器系統來提取信息的特性,如POS 特性以獲取更多信息。