馬歡歡
(曲阜師范大學軟件學院 曲阜 273100)
孔繁之 高建強
(濟寧醫(yī)學院醫(yī)學信息工程學院 日照 276826)
命名實體識別(Named Entity Recognition, NER)是自然語言處理領域一個重要的研究方向,在1995年正式提出[1],是信息抽取、信息檢索、機器翻譯、問答系統(tǒng)等多種自然語言處理技術必不可少的組成部分[2],其任務是識別出待處理文本中3大類(實體類、時間類和數字類)、7小類(人名、機構名、地名、時間、日期、貨幣和百分比)命名實體。電子病歷(Electronic Medical Records, EMR)是醫(yī)務人員在醫(yī)療活動過程中使用醫(yī)療機構信息系統(tǒng)生成的文字、符號、圖表、圖形、數據、影像等數字化信息,能實現(xiàn)存儲、管理、傳輸和重現(xiàn)的醫(yī)療記錄,是病歷的一種記錄形式[3]。中文電子病歷命名實體識別可自動化地提取出疾病、癥狀、治療等具有語義特征的實體,有助于醫(yī)學研究者構建臨床決策系統(tǒng),為患者提供更高效、便捷的個性化醫(yī)療服務。
傳統(tǒng)命名實體識別方法有基于規(guī)則和基于機器學習兩類。基于規(guī)則的識別方法[4]依靠領域專家構造領域詞典,對于沒有出現(xiàn)在詞典中的實體則設計一定規(guī)則進行識別。基于機器學習的識別算法主要包括:隱馬爾可夫模型(Hidden Markov Model, HMM)[5]、條件隨機場(Conditional Random Field, CRF)模型等,其中Lafferty等[6]提出的CRF解決了標注偏置問題,在一段時間內成為處理命名實體識別最常用的方法。自2006年Hinton等提出深度學習后,其在語音、圖像領域的成功應用使得越來越多的深度學習技術被遷移到自然語言處理中,相關深度學習模型表現(xiàn)出很好的性能。一些學者將識別問題看作多分類問題,Roberts[7]等在醫(yī)療文本的研究中采用支持向量機(Support Vector Machine, SVM)模型達到分類效果。一些學者將識別問題視為序列標注問題,F(xiàn)inkel[8]等采用CRF建立自動標注模型,考慮的特征主要包括詞特征、前后綴、詞性序列和詞形態(tài)。Lample[9]等提出長短時記憶網絡(Long Short Term Memory, LSTM)+CRF模型,具有超過CRF的識別性能,最大優(yōu)點在于無需特征工程,使用向量就能達到很好的效果。Huang[10]等提出雙向長短時記憶網絡(Bi-directional Long Short Term Memory, BiLSTM) -CRF模型的命名實體識別,以解決LSTM模型帶來的前后序列特征相關性問題。
卷積神經網絡(Convolutional Neural Network, CNN)最大優(yōu)點是能夠簡化特征提取過程,直接通過模型訓練,從圖像中提取出較好的特征[11]。可以實現(xiàn)“端到端”學習,通過局部連接、權重共享和降采樣3大特點完成對輸入數據的特征學習和特征表示[12]。CNN可以有效降低網絡復雜度,減少訓練參數數目,使模型對平移、扭曲、縮放一定程度上不變形,具有強魯棒性和容錯能力,且易于訓練和優(yōu)化[13]。如今在自然語言處理任務中也常見到卷積神經網絡應用[14]。Chiu[15]等采用卷積神經網絡抽取字符級特征來進行通用命名實體識別,在公開的英文命名實體識別數據集上取得較好效果。本文在現(xiàn)有研究基礎上將命名實體識別作為序列標注任務,針對命名實體識別方法存在的邊界劃分不準確、實體識別率不高等問題,從中文電子病歷行文方式出發(fā),將BiLSTM-CRF作為基準模型,采用字向量進行分布式表示,引入CNN提取空間語義信息,以達到精確識別效果。
本研究模型框架主要由3個部分組成,即CNN、BiLSTM、CRF模塊。首先對病歷文本進行分句和分字處理,由預先訓練的字向量將輸入的句子轉換為字向量序列,然后通過CNN模塊對每個字的字向量進行卷積和池化操作,以提取文本序列的空間特征信息,之后輸入BiLSTM模塊學習上下文特征信息,最后通過CRF模塊將BiLSTM的輸出解碼為一個最優(yōu)預測標記序列。模型框架,見圖1。

圖1 CNN-BiLSTM-CRF模型
Word2vec使用的算法是Bengio等在2001年提出的神經網絡語言模型(Neural Network Language Model, NNLM),后來Milolvo[16]團隊對這一算法做了改進。利用Word2vec模型訓練出來的詞向量能很好地包含詞語特征,甚至能通過訓練好的詞向量來計算詞語之間的相似度。Word2vec網絡模型分為兩種,一種是CBOW,另一種是Skip-gram,模型框架,見圖2、圖3。其中CBOW模型是從原始語句推測出目標字詞,Skip-gram則相反。本研究采用中文維基百科數據集,使用Skip-gram預先訓練維度為100的字向量。

圖2 CBOW模型

圖3 Skip-gram模型
CNN模塊主要由輸入層、卷積層、池化層和輸出層組成,其結構,見圖4。通過分布式表示之后的字向量填充占位符來解決句子長短不一的問題。等長的字向量組成字向量矩陣,首先使用卷積操作處理字向量矩陣,生成多通道特征圖,對特征圖采用最大池化操作進行下采樣得到與卷積核對應的整句話特征,最后輸出層輸出句子的最終特征表示。卷積層使用K個大小為s的卷積核在向量序列上以步長1進行滑動來提取局部特征。

圖4 CNN模型
循環(huán)神經網絡(Recurrent Neural Networks, RNN)是一種能夠對時序數據進行精準建模的網絡。雖然理論上RNN能夠捕獲長距離依賴性,在實踐中卻由于梯度消失或爆炸而失敗。LSTM[17]是RNN的變種,主要應對梯度消失問題。LSTM模型有3個乘法控制單元:輸入門(it)用來決定在細胞狀態(tài)(ct)中存儲哪些新信息;遺忘門(ft)決定將哪些信息從ct中丟棄;輸出門(ot)決定哪些信息作為輸出。LSTM單元在t時刻更新的公式如下:
it=σ(Wiht-1+Uixt+bi)
(1)
ft=σ(Wfht-1+Ufxt+bf)
(2)
(3)
(4)
ot=σ(Woht-1+Uoxt+b0)
(5)
ht=ot⊙tanh(ct)
(6)

CRF[19]是一種用于標注和切分有序數據的條件概率模型,結合最大熵模型和隱馬爾可夫模型特點的全局歸一化,在考慮連續(xù)標簽之間依賴關系的情況下找到最佳輸出序列。可以將命名實體識別任務轉化成序列標注任務。對于給定的觀察序列X=(x1,x2,...,xn),xi表示第i個字的輸入向量。標記序列y的概念可以定義為:
(7)
其中tj(yi-1,yi,X,i)為概率轉移方程,表示輸入序列X在其標注為yi-1和yi之間的轉移概率。sk(yi,X,i)為狀態(tài)函數,表示對于序列X其i位置的標記為yi的概率,λj,μk分別對應相應函數的權重。
本研究實驗環(huán)境為inter@Corei5CPU@3.30GHz*4,操作系統(tǒng)選用Ubuntu16.04,模型框架為Keras,Keras是以TensorFlow為底層的高級的深度學習鏈接庫,編程語言為Python。實驗數據集是由山東省某三甲醫(yī)院神經內科提供的2010-2017年3 127份癲癇患者電子病歷。采用準確率(Precision,P)、召回率(Recall,R)和F1值(F1-score,F(xiàn)1)3個指標作為模型的衡量標準。其中準確率是指正確識別的實體數占總識別實體數的比例,召回率是指正確識別的實體數占總實體數的比例,而F1值是準確率和召回率的調和平均值。各項指標具體公式如下:
(8)
(9)
(10)
其中M代表識別出的實體個數,N代表測試集中總實體個數,n代表正確識別的實體數。
3.2.1 數據預處理 對收集的3 127份癲癇患者電子病歷,在結合癲癇發(fā)病原理和相關文獻[20]的基礎上制定相應標注規(guī)范。首先將數據中實體類型分為3類,即疾病、癥狀、治療。為清楚表示語料中待識別的命名實體,采用BIO標記方式來標記實體,其中B表示實體的開始,I表示實體的中間位置,O表示不屬于預分類的實體。然后分別進行數據去敏清洗及分句處理,利用jieba分詞加載外部用戶詞典,在領域專家的指導下對病歷文本進行自動化標注,完成語料庫構建,分配模型訓練集、驗證集和測試集,分配比例分別是6∶2∶2。
3.2.2 實驗參數設置 本研究所有詞向量的維度設置為100,在訓練過程中優(yōu)化器采用Adam,學習率設置為0.1,為減輕過擬合,在CNN模塊使用Relu作為非線性激活函數,同時在CNN的輸入、BiLSTM的輸入和輸出中使用Dropout,取值為0.5。
3.2.3 實驗結果分析 為驗證本研究模型結構的有效性,設計3組對比實驗,分別與LSTM、BiLSTM、BiLSTM-CRF模型進行對比。實驗結果,見表1。可以發(fā)現(xiàn)BiLSTM模型較LSTM模型F1值提高5.01%。LSTM模型的神經元信息只能從前向后傳遞,當前時刻的輸入信息僅能利用之前時刻的信息,且命名實體識別的標簽之間具有強烈的依賴關系,而BiLSTM則既能利用當前又能利用之后時刻的信息,說明BiLSTM模型在中文電子病歷文本命名實體識別任務中具有良好的適應性。另外BiLSTM-CRF模型較BiLSTM模型F1值提高5.74%。由于BiLSTM模型的輸出是對于句子中每個單詞對應的標簽類別的最高預測分數值,但最高分數值往往存在漂移現(xiàn)象,即B-Dis后面最高分數值會出現(xiàn)I-Tre,非常不合理。而CRF能夠從訓練數據中學習標注序列的一些約束,可以為BiLSTM模塊輸出的最終預測標簽添加一些約束來確保合理有效,即B-Dis后面會出現(xiàn)I-Dis。本研究提出在BiLSTM-CRF基礎上添加CNN模塊,較BiLSTM-CRF準確率提高1.15%,召回率提高1.19%,F(xiàn)1值提高1.47%,說明CNN提取的病歷文本特征可作為上下文特征的補充,通過卷積和池化操作能夠進一步提升模型識別效果。

表1 模型驗證對比實驗結果(%)
本研究充分考慮中文電子病歷的語言特性,結合詞嵌入技術將文字映射成高維向量,通過CNN模塊對每個字向量進行卷積和池化操作,以提取文本序列的空間特征信息,之后輸入BiLSTM模塊學習上下文特征信息,最后通過CRF模塊將BiLSTM輸出解碼出一個最優(yōu)預測標記序列。本研究提出的CNN-BiLSTM-CRF模型與LSTM、BiLSTM、BiLSTM-CRF模型進行實驗對比,F(xiàn)1值為89.16%,相較于其他模型達到較好的識別效果,對醫(yī)學領域的實體識別研究具有一定參考價值。由于本研究模型識別的數據來源于3 127份電子病歷,醫(yī)學實體種類較少,未涉及電子病歷中出現(xiàn)的疾病診斷分類、檢查措施、身體部位等,故下一步工作需要進一步豐富模型的識別種類,充分挖掘中文電子病歷中的醫(yī)療信息,在特征選擇多樣性方面進一步研究。另外可以嘗試訓練字詞聯(lián)合的向量表示,挖掘字詞之間更加緊密的聯(lián)系。