陳琛
(廈門醫(yī)學(xué)院 福建省廈門市 361023)
近年來,隨著我國信息化水平顯著提升,大量醫(yī)療領(lǐng)域內(nèi)生物醫(yī)學(xué)內(nèi)容以非結(jié)構(gòu)化形式存儲在電子文本中,無法得到充分利用。利用命名實體識別技術(shù)將醫(yī)療文本中的實體識別出來是將醫(yī)療文本轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)的基礎(chǔ)步驟,為進一步挖掘利用其中蘊含的豐富知識并進行應(yīng)用奠定了基礎(chǔ)。國外醫(yī)療領(lǐng)域命名實體識別工作開展較早,已有如JNLPBA2004、ib2b2006、ib2b2010 等測評會議和生物醫(yī)學(xué)領(lǐng)域公開數(shù)據(jù)集。近年來,我國醫(yī)療領(lǐng)域命名實體識別工作也逐步展開, 出現(xiàn)了如CCKS2017、CCKS2018 和CCKS2019 等測評競賽和公開數(shù)據(jù)集。但總體來說,國內(nèi)生物醫(yī)療領(lǐng)域的命名實體識別工作開展較遲,公開數(shù)據(jù)集也較為缺乏。目前,國內(nèi)已有多名學(xué)者在生物醫(yī)學(xué)領(lǐng)域文本的命名實體領(lǐng)域開展了研究,如Lei 等人[1]用結(jié)構(gòu)化SVM在中文電子病歷的命名實體識別中取得了良好效果。Liu 等[2]基于CRF 模型探究了不同特征對醫(yī)療領(lǐng)域文本識別效果的影響。
傳統(tǒng)機器學(xué)習(xí)方法在解決命名實體識別問題時主要有兩種方法,第一種是基于規(guī)則和字典,由語言學(xué)專家手工構(gòu)造規(guī)則模板,該方法主要憑借專家經(jīng)驗,且系統(tǒng)可移植性差、耗時耗力;第二種是基于統(tǒng)計的學(xué)習(xí)方法:如支持向量機(SVM)[3]、隱馬爾科夫模型(HMM)[4]、最大熵(Maxmium Entropy)[5]和條件隨機場(CRF)[6]等。此類方法特征工程復(fù)雜,需大量的標(biāo)注數(shù)據(jù)。本文提出一種基于Word2Vec[7]訓(xùn)練的字向量的BiGRU-CRF 模型,該方法基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí),較傳統(tǒng)機器學(xué)習(xí)方法的優(yōu)勢是,無需特征工程和人工構(gòu)造規(guī)則模板,節(jié)省了人力物力。實驗表明,該模型較CRF等傳統(tǒng)模型有提升了的命名實體識別率,在瑞金醫(yī)院糖尿病標(biāo)注數(shù)據(jù)集中有較好的識別效果。
BiGRU-CRF 模型如圖1 所示,模型分為3 個部分,通過Word2Vec 進行預(yù)訓(xùn)練獲得詞嵌入表示,再將生成向量輸入 BiGRU模型進行進一步語義編碼,最后通過CRF層輸出概率最優(yōu)標(biāo)簽序列。
圖1:基于BiGRU-CRF 的命名實體模型
1.1.1 BiGRU 模型
GRU[8]的 (Gated Recurrent Unit,GRU),是一種特殊循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN,Recurrent Neural Network)。RNN 可以利用順序信息來處理序列化信息,但在處理序列過長問題時會出現(xiàn)梯度消失等問題。同時,RNN 也缺乏學(xué)習(xí)長期依賴的能力。GRU 模型是LSTM 模型[9]的一種變體,通過將LSTM 模型的輸入門、遺忘門和輸出門三個門結(jié)構(gòu)進行改進,合并遺忘門和輸入們?yōu)楦麻T,混合細胞狀態(tài)和隱藏狀態(tài),使用重置門和更新門兩個門控決定哪些信息可以最終作為門控循環(huán)單元的輸出。GRU 模型簡單,較LSTM 模型訓(xùn)練時間短,能節(jié)約利用硬件的計算能力和降低訓(xùn)練時間成本,廣泛應(yīng)用于工業(yè)界和大數(shù)據(jù)量的深度學(xué)習(xí)任務(wù)中。其內(nèi)部結(jié)構(gòu)如圖2 所示。
更新門用于控制哪些信息流向下一時刻:
重置門用于控制哪些過去信息需要被丟失
符號·表示按點乘運算,σ 表示sigmoid 函數(shù),隱藏狀態(tài)輸出向量ht由zt和rt決定。
1.1.2 BiGRU
單向GRU 模型只能獲取前向時刻的信息,使用雙向GRU 模型獲得前向和后向的信息。BiGRU 模型同一時刻包含兩個分別按前向和后向順序進行記憶的記憶單元,能有效利用上下文信息,將該時刻兩個方向的輸出進行拼接,公式如下:
vt,wt是權(quán)重,bt為偏置。
模型最上層是CRF 層[10],使用該層執(zhí)行序列級別的單詞標(biāo)記,在訓(xùn)練數(shù)據(jù)的過程中,該層自動學(xué)習(xí)標(biāo)簽之間的約束,確保預(yù)測的標(biāo)簽是合法的。使用一個(k+2)×(k+2)的轉(zhuǎn)換矩陣A 作為參數(shù),其中k 是標(biāo)簽號,Aij表示標(biāo)簽的轉(zhuǎn)移分?jǐn)?shù)。如果標(biāo)記序列由y=(y1,y2,...,yn)表示,而n 等于句子長度,則用于測量句子x 的標(biāo)記等于標(biāo)記序列y 的概率的公式如下所示。
圖2:GRU 單元結(jié)構(gòu)
Score(x,y)由轉(zhuǎn)換矩陣A 和該字符的第yi個標(biāo)簽的分?jǐn)?shù)矩陣P組成,為句子中所有單詞的打分。使用Softmax函數(shù)進行歸一化處理,公式如下。
訓(xùn)練時,對于訓(xùn)練樣本(x,yx),采用以下公式最大化標(biāo)記序列的對數(shù)概率。
本實驗采用維特比算法求動態(tài)規(guī)劃的概率最大路徑,公式如下:
本次實驗使用數(shù)據(jù)集為瑞金醫(yī)院糖尿病標(biāo)注數(shù)據(jù)集[11]。隨機取其中的90%作為訓(xùn)練集,10%作為測試集。數(shù)據(jù)集中共包含15 種實體,實驗中使用BIOES標(biāo)注模式對數(shù)據(jù)集中的實體字符進行標(biāo)注。其中B-Type 標(biāo)注實體首字和I-Type 標(biāo)注實體中間字,E-Type 表示實體末字,Type 表示不同實體分類,S 表示實體單字,O 標(biāo)注非實體。
表1:各命名實體模型識別效果比較
本文實驗使用準(zhǔn)確率P、召回率R 和F1 值作為模型識別效果和模型性能判定指標(biāo)。公式如下:其中Tp為模型正確識別出的實體的數(shù)量、Fp為模型識別出的無關(guān)實體的數(shù)量、Fn為模型未能識別的相關(guān)實體的數(shù)量。
實驗參數(shù)設(shè)置為
(1)Word2Vec 參數(shù):Skip-gram 模型,size=300,windows=5,生成詞向量時使用jieba 進行分詞。
(2)Bi_GRU 模型參數(shù):Word2Vec 詞向量維度為300,最大序列長度128,批處理大小為32,隱藏層節(jié)點數(shù)128,Dropout0.5,Epoch 為10,使用Adam 進行優(yōu)化。
所有實驗采用的環(huán)境為16 核CPU、GPU 為GeForce GTX 1080 Ti,Python 版本為3.6、Tensorflow 版本為1.15.0。
2.5.1 多模型實驗對比
本實驗使用Word2Vec 的Skip-gram 詞向量模型進行基于字和基于詞的醫(yī)療領(lǐng)域詞向量訓(xùn)練。對比基于字符的BiGRU-CRF 模型和基于詞的BiGRU-CRF 模型和基于字的BiGRU、基于字的CRF模型的識別結(jié)果如表1 所示。
2.5.2 實驗結(jié)論
如表1 所示,基于Word2Vec 訓(xùn)練的字向量的BiGRU-CRF 較基于詞向量的BiGRU-CRF 模型識別效果提升0.014,其主要原因是在專業(yè)領(lǐng)域內(nèi)專業(yè)名詞與日常用詞習(xí)慣不同,詞語邊界不清,使用jieba 等分詞工具容易引起分詞錯誤。而分詞錯誤發(fā)生傳導(dǎo)導(dǎo)致的最后識別效果較差。實驗證明,基于字向量BiGRU-CRF 模型在醫(yī)療領(lǐng)域的命名實體識別中,較CRF 等模型有更好的表現(xiàn)。相比于傳統(tǒng)的機器學(xué)習(xí)的方式,該模型不依賴人工特征工程,不需要規(guī)則模板,極大地降低了人力物力的消耗。
本文提出一種基于字向量的BiGRU-CRF 的方法,在瑞金醫(yī)院糖尿病標(biāo)注數(shù)據(jù)集中較CRF 等模型顯著提升了識別效果,證明了該模型的有效性。該模型還有很大的改進空間,未來可以考慮引入BERT 模型[12]、ALBERT 模型[13]等方式進一步改進模型,提高醫(yī)療領(lǐng)域文本的識別率,為實現(xiàn)醫(yī)療自動問答系統(tǒng)、醫(yī)療知識圖譜和醫(yī)療事件抽取等任務(wù)做基礎(chǔ)。