葉 蕾,戴文華,錢 濤,任作煒
(1.武漢紡織大學 數(shù)學與計算機學院,湖北 武漢 430074;2.湖北科技學院 計算機科學與技術(shù)學院, 湖北 咸寧 437100)
電子病歷(Electronic Medical Record, EMR)是以文本格式存儲的患者在醫(yī)療機構(gòu)診斷、治療過程的全部記錄。它包含大量結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),其中包括患者的健康狀況和諸如癥狀、藥物、疾病、進度記錄和出院摘要等信息。電子病歷便于醫(yī)療機構(gòu)和醫(yī)療專家跟蹤診療信息,并監(jiān)測患者的定期體檢,它還可以為生活在偏遠地區(qū)的患者提供醫(yī)療保健建議。此外,當患者轉(zhuǎn)院治療時,醫(yī)院可通過電子病歷輕松獲取患者的病史和當前健康狀況[1]。因此,從電子病歷中提取所需信息是醫(yī)學領(lǐng)域重要任務(wù)之一。
近年來,將自然語言處理技術(shù)用于臨床決策支持成為研究熱點[2,3]。電子病歷命名實體識別的主要研究內(nèi)容是識別病歷中包含的各種醫(yī)學領(lǐng)域?qū)嶓w[4,5],并建立它們之間的關(guān)系[6]。
在醫(yī)學領(lǐng)域,英文電子病歷命名實體識別最開始通常采用詞典與規(guī)則相結(jié)合的方法。自2006 年起,一直到2012年,美國國家集成生物與臨床信息學研究中心依次組織了許多任務(wù),推動了命名實體識別的發(fā)展,這些任務(wù)包括去隱私信息[7],吸煙狀態(tài)識別[8],肥胖及綜合癥狀態(tài)識別[9],藥品屬性信息識別[10],概念識別及關(guān)系抽取[11],共指消解[12],特殊實體識別[12]等任務(wù)。
與英文電子病歷命名實體識別相比,中文電子病歷命名實體識別相關(guān)研究[13]還沒有完整的體系。主要原因是中文電子病歷命名實體識別缺乏公認的標準和規(guī)范,中文電子病歷語料庫仍然處于空白狀態(tài)。
葉楓等人基于CRF算法,對中文電子病歷中的疾病、臨床癥狀、手術(shù)操作3類命名實體進行智能識別,并構(gòu)建了覆蓋25個疾病大類的250份病歷[14]。Jagannatha通過訓練雙向循環(huán)神經(jīng)網(wǎng)絡(luò)模型,對電子病歷進行命名實體識別,并證實了該方法的實驗結(jié)果確實顯著優(yōu)于CRF模型[15]。
隨著醫(yī)學領(lǐng)域信息處理智能化技術(shù)不斷前進,對于電子病歷命名實體識別的要求也越來越高[16~18]。為了提高電子病歷命名實體識別的效率和精度,本文提出一種基于BiLSTM-CRF的中文電子病歷命名實體識別方法。一方面,根據(jù)現(xiàn)有中文電子病歷中的語義特點,并結(jié)合多種有監(jiān)督學習方法,實現(xiàn)基于神經(jīng)網(wǎng)絡(luò)的BiLSTM模型。另一方面,引入條件隨機場(CRF)模型,對模型性能進行優(yōu)化,保證命名實體識別的識別效果,為計算機智能診斷和決策打下良好的基礎(chǔ)。
BiLSTM-CRF模型是一種典型的深度學習模型,由嵌入層、BiLSTM層、CRF層和輸出層組成。命名實體識別時,首先通過嵌入層將電子病歷轉(zhuǎn)換為特征向量,然后送入BiLSTM層,隨后通過CRF層約束結(jié)果標簽,最后在輸出層輸出分類結(jié)果。BiLSTM-CRF模型的基本架構(gòu)如圖1所示。
圖1 BiLSTM-CRF模型架構(gòu)圖
1.詞向量表示
詞向量是指使用特征向量表示每個分詞單位,詞向量的每個維度代表一個特征。目前流行的詞向量表示方法主要有兩種:(1)獨熱編碼表示(One-Hot Representation)(2)分布式表示(Distributed Representation)。
由于單詞在NLP中是離散的,所以最簡單的方法是用相同句子長度的向量表示每個單詞,例如Jack wants to eat an apple。這句話的one-hot表達方式如圖2所示。
每個詞都是一維向量,整個句子是一個矩陣。 但是,如果仔細觀察每個向量,則會發(fā)現(xiàn)一些問題: 每個向量的內(nèi)積彼此正交,即內(nèi)積為0,即單詞之間沒有關(guān)系。
圖2 one-hot表示圖
為了解決“one-hot”問題,有人提出了一種更有效的詞向量表達方法,即使用分布式表示的詞嵌入(Word Embedding)。 簡而言之,詞嵌入實際上是將高維稀疏向量簡化為密集的低維向量,這是高維到低維的映射過程。2013年,Google開發(fā)出開源工具包word2vec。word2vec就是一個高效的實現(xiàn)詞嵌入的算法工具。
word2vec得出的詞向量其實就是一個神經(jīng)元隱層的權(quán)重矩陣,在經(jīng)過CBOW或者Skip-Gram模型訓練之后,具有相似含義的詞的權(quán)重更緊密,因此,向量的間距可用于度量詞的相似性。
本文在嵌入層將利用詞嵌入的方式把電子病歷轉(zhuǎn)換為特征向量。
2.電子病歷命名實體標注
采用“BIO”標注規(guī)范對數(shù)據(jù)進行標注。其中,命名實體首字符用“B”表示,結(jié)尾命名實體用“I”表示,非命名實體用“O”表示。例如:他/O最/O近/O頭/B-SIGNS痛/I-SIGNS,/O流/O鼻/O涕/O,/O估/O計/O是/O發(fā)/B-SIGNS燒/I-SIGNS了/O。以上述例子為例,“頭”是SIGNS(癥狀和體征)類別的命名實體首字符,“痛”是SIGNS(癥狀和體征)類別的命名實體結(jié)尾,其它的“最”“近”等被O描述的都是非實體組成部分。
電子病歷命名實體主要包括五大類,分別為檢查和檢驗,癥狀和體征,疾病和診斷,治療以及身體部位,分別使用“CHECK”“SIGNS”“DISEASE”“TREATMENT”“BODY”來表示各個命名實體標簽。下面是以“因玻璃割傷面部,左前臂及左膝后疼痛,出血”為例,采用BIO標注規(guī)范標注該句的結(jié)果如表1所示。
表1 電子病歷命名實體標注實例
3.BiLSTM層
BiLSTM-CRF模型的第二層為BiLSTM層,其結(jié)構(gòu)如圖3所示。
圖3 BiLSTM層結(jié)構(gòu)圖
BiLSTM層的具體步驟如下:
(1)BiLSTM的輸入層接收嵌入層生成的特征向量,分別將特征向量的正序和逆序作為前向LSTM和后向LSTM的輸入;
(2)前向LSTM和后向LSTM分別計算得到前向和后向隱狀態(tài)向量;
(3)隱藏層將前向和后向隱狀態(tài)向量拼接,形成完整的隱狀態(tài)向量,并將隱狀態(tài)向量映射到K維空間(K為標注集合的總標簽數(shù),對于電子病歷命名實體標注集來說,總標簽數(shù)為11);
(4)隱藏層的輸出作為CRF的輸入。
圖1中BiLSTM層的輸出是每個標簽的分數(shù)。例如,對于w1, BiLSTM節(jié)點的輸出為1.7 (B-CHECK)、0.04 (I-CHECK)、0.1 (B-SIGNS)、0.05 (I-SIGNS)、0.03 (B-DISEASE)、…,這些分數(shù)將作為CRF層的輸入。
4.CRF層
條件隨機場(Conditional Random Field, CRF)由Lafferry2001年首次提出,是類似于HMM的序列建??蚣?。該模型的目標是學習映射函數(shù)xs→ys,使得正確的輸出標簽最大化。但是,每個輸出ys并不是獨立的。CRF模型能夠通過計算給定觀察到的特征向量x=x0,x1,…,xt的隨機變量條件概率來預測輸出向量y=y0,y1,…,yt。
假設(shè)CRF的輸入和輸出是線性鏈,并且P(Y|X)服從馬爾可夫性質(zhì)。需要找到參數(shù)來建立模型,所以通過給定輸入的單詞序列X=X1,X2,…,Xn和標簽序列Y=Y1,Y2,…,Yn。P(Y|X)對應的方程式為:
tk(Yi-1,Yi,X,i)表示在給定序列X的情況下,序列Y在位置i-1處的值轉(zhuǎn)換為i的概率。sl(Yi,X,i)表示在給定序列X的情況下,序列Y的相應值在位置i處的概率。λk和μl是兩個函數(shù)的權(quán)重。
tk(Yi-1,Yi,X,i)和sl(Yi,X,i)是特征函數(shù),如果設(shè)sl(Yi,X,i)=sl(Yi-1,Yi,X,i),則可以通過下面的公式來設(shè)置它們:
因此,對于給定的句子(詞)X,可以給標簽序列Y打分:
然后可計算得分概率:
使用對數(shù)似然算法作為估計函數(shù)來估計CRF的權(quán)值:
使用改進的迭代縮放算法通過以下公式求出向量增量δ:
然后使用δ更新當前參數(shù)λ=λ+δ。如果并非所有λ都收斂,重復該步驟。
對于給定的特征向量、權(quán)重向量和觀測序列,可使用維特比算法(Viterbi Algorithm)來預測單詞的分類,步驟如下:
(1)通過以下公式進行初始化
δ1(j)=wF1(y0=start,y1=j,x),j=1,2,…,m
(2)找出每個標簽l在位置i的最大概率
(3)記錄路徑
停在i=n,在這個位置,最大概率是:
最佳路徑的終點:
從最佳路徑返回:
為了驗證模型的具體表現(xiàn),使用如下的實驗數(shù)據(jù)集和實驗參數(shù)。
1.實驗數(shù)據(jù)集
本文模型訓練測試以及驗證所涉及到的數(shù)據(jù)集由以下兩部分組成:
(1)來自CCKS 2018大會上TASK2發(fā)布的公開數(shù)據(jù)集。
如圖4所示,數(shù)據(jù)集的相關(guān)信息,共1 200份數(shù)據(jù)。
圖4 電子病歷相關(guān)信息
如圖5所示,電子病歷本地詳細存儲記錄。
圖5 電子病歷本地詳細存儲記錄
(2)中國wiki百科數(shù)據(jù)集。用于預訓練詞向量。
將數(shù)據(jù)集數(shù)據(jù)分別按照7∶2∶1的比例,分為訓練集、測試集、驗證集。詞向量訓練使用Google開發(fā)的工具word2vec進行訓練。使用data1已標注好的數(shù)據(jù)進行訓練和測試以及評估。
2.模型的實驗參數(shù)設(shè)置
相關(guān)參數(shù)如圖6所示
圖6 模型最佳參數(shù)
1.實驗一:模型對比實驗
以下為 HMM模型,CRF模型,以及BiLSTM-CRF模型的識別結(jié)果。實驗結(jié)果如表2所示。
表2 模型對比實驗
從表2中可以發(fā)現(xiàn)BiLSTM-CRF模型效果明顯優(yōu)于HMM模型和CRF模型。
2.實驗二:模型對不同類型命名實體的識別比較
CRF與BiLSTM-CRF模型對不同類型命名實體的識別比較,結(jié)果如表3所示。
表3 模型對不同類型命名實體的識別比較
從表3中可發(fā)現(xiàn),對不同類型的命名實體,BiLSTM-CRF模型均優(yōu)于CRF模型。
3.實驗三:實例分析
測試文本1:口腔潰瘍需要多吃維生素
CRF模型識別結(jié)果如表4所示:
表4 CRF模型識別結(jié)果
BiLSTM-CRF模型識別結(jié)果如表5所示:
表5 BiLSTM-CRF模型識別結(jié)果
CRF模型在命名實體識別時,由于沒有判斷出口腔潰瘍這個疾病癥狀,導致無法保存信息傳遞給下一個網(wǎng)絡(luò),以至于無法識別出維生素這個治療實體。而BiLSTM-CRF模型,可以長久的保存實體信息,也就能準確的識別出口腸潰瘍和維生素這兩個實體。
測試文本2:他感覺喉嚨癢,然后去醫(yī)院檢查,發(fā)現(xiàn)是支氣管肺炎,需要吃牛黃蛇膽川貝片。
CRF模型長文本識別結(jié)果如表6所示:
表6 CRF模型長文本識別結(jié)果
BiLSTM-CRF模型長文本識別結(jié)果如表7所示:
表7 BiLSTM-CRF模型長文本識別結(jié)果
實驗表明,當待識別文本較長,且表達復雜的情況下,BiLSTM-CRF模型比CRF模型具有更多優(yōu)勢,為準確識別電子病歷命名實體提供了很有效的幫助。
中文電子病歷命名實體識別是醫(yī)療信息化的一項基礎(chǔ)工作,能為計算機智能診療和決策提供有力支撐。臨床實踐中,由于電子病歷量大、面廣,如果僅靠人力進行電子病歷命名實體的標注和識別,效率低下且易于出錯。通過計算機來進行電子病歷命名實體識別將是一件極具實際意義的事情。
本文以BiLSTM-CRF模型應用于中文電子病歷的命名實體識別,實驗表明模型的準確率、召回率和F1值均達到了較好的效果。對于中文電子病歷中的五類命名實體,BiLSTM-CRF模型也有較好的表現(xiàn),但具體涉及DISEASE、TREATMENT兩類實體,F(xiàn)1值相對較低,這是由于訓練集相對較小,模型訓練不充分,導致效果不佳。
后期研究工作中,將收集整理更大規(guī)模的中文電子病歷語料,進一步改善模型各項參數(shù),以保證訓練出更好的模型,為中文電子病歷的命名實體識別提供幫助。