曹茂俊,胡喆
(東北石油大學計算機與信息技術學院,黑龍江大慶 163000)
醫療護理學的形成與發展和人類文明及健康需要密切相關,在不同的歷史發展時期,護理學都在不斷發展以適應當時社會對護理實踐的需求,有望帶來更高效精準的醫療服務。實體關系抽取問題是知識抽取中的一個經典問題,其目的是能夠準確地挖掘相關領域的實體與實體之間的關系[1]。
基于醫療文本的特點,該文提出基于卷積神經網絡(Convolutional Neural Network,CNN)的實體關系抽取模型,模型中應用弱監督學習來進行實體關系標注,并運用Softmax 回歸對語句文本進行分類處理,將所提取的文本特征向量矩陣化,同時將得到的向量輸入到卷積神經網絡中,最終抽取到更為精確的醫療護理學實體關系[2]。
因此,采用卷積神經網絡模型對醫療語料文本進行實體關系抽取,并采用分段最大池化策略,能夠明顯地降低一般最大池化策略對于信息缺失的影響[3]。
CNN 相比于其他模型來說,具有訓練速度快、局部特征提取效率高、權值共享的同時還不易發生過擬合的問題等優勢。因此該文選用卷積神經網絡模型進行實體關系抽取任務,將文本“她去婦科確診了慢性的乳腺炎”作為實例,提出的卷積神經網絡實體關系抽取模型架構如圖1 所示。

圖1 CNN實體關系抽取模型
該模型實際上代表輸入至輸出之間的一種映射,應用一個含有實體對的相對全面的文本作為輸入,最終輸出一個與所有關系類型相對應的概率向量。首先對現有的文本進行文本預處理,特征層主要是對文本進行標記工作,嵌入層使用Word2vec 對于詞序列進行向量化[4]。最大池向量使用卷積核來獲取全局特征。并將采集得到的特征輸送到全連接前饋神經網絡中完成推理。在輸出層,使用Softmax分類器,得到輸出數等于實體之間存在的關系數,最終獲得實體關系的抽取結果。
文本預處理過程包括文本分句、去重、分詞和文本標注。①文本分句: 關系的抽取主要是對文本進行分解抽取,通過將句號當成分隔符,以此對文本進行分句。②去重: 刪除重復句子和只出現單個實體的句子,文本選用卷積神經網絡模型進行實體關系抽取任務,CNN 實體關系抽取模型如圖1 所示。首先,對輸入文本進行預處理,其次,在詞嵌入層使用Word2vec 對詞序列進行向量化,將得到的向量送入CNN 模型,最終,對模型的輸出進行池化和分類,得到關系抽取結果[5]。③分詞:該文將Python 中的jieba庫作為分詞的工具,以此對文本進行分詞操作。④數據標注:實驗數據集是結合收集數據的特點,應用參考文獻的部分關系名稱對數據進行手工標注,總結歸納了以下10 種關系,其中,關系類型和相關術語如表1 所示。

表1 關系類型與術語
最終,經過數據標注操作之后的部分數據樣例如表2 所示。其中,<e1>被放在實體1的后面,<e2>被放在實體2 的后面。

表2 數據樣例
該文將文本之間的所有詞使用5 個相對分散的特征進行表示,如下所示。
1)W:指代文本中所出現的詞語,圖1 中的模型中用v1-v8 來代表文本中的詞;
2)P1:當前詞和第一個實體的間隔,如圖1 中所出現的第一個實體“婦科”,“慢性”一詞與“婦科”之間的間距為3,“去”同“婦科”之間的間距為-1。
3)P2:現有當前的詞同相鄰第二個實體之間的間距,與P1 的計算方法相似。
4)N:詞性的標簽,如上述文本分詞所示,該文對文本語句進行分詞并且對詞性進行標注。選取jieba分詞進行功能標注。
5)T:指代實體的類型,將處理后的句子進行實體類型標注,因為醫療文本語料常常涉及醫療事件、醫療藥物處理等,該文所采用命名實體識別標注法,即用BMEO 進行標注。B 指代實體詞的開頭部分,M指代實體詞的中間詞部分,E 指代實體詞的詞尾部分,O 則指代與實體詞有關的詞。
詞嵌入層利用查找表把所有的特征轉變為嵌入向量,并將其串聯在一起。將語料文本中每個詞以及實體e1、e2 之間的距離依次代表p1 和p2 維向量,獲得語料文本所對應的位置向量的矩陣。同傳統的文本詞向量化表示方法相比,詞嵌入技術能夠更全面地獲取文本特征。
實驗采用Google公司于2013年所開源的Word2vec工具,其能夠通過卷積神經網絡訓練語料文本,并將文本中的詞語轉化為k維的向量進行運算[6]。Word2vec 工具面向詞向量的訓練共包含兩種模型,分別是CBOW 模型以及Skip-gram 模型。其中Skipgram 模型主要基于現有的詞語文本對上下文出現詞的概率進行推理預測,如現有一個詞w(t),對其進行上下文的概率推測,模型的結構示意圖如圖2 所示,Skip-gram 模型共含有輸入層、映射層以及輸出層三層神經網絡結構模型,最大化的目標函數如式(1)所示:

圖2 Skip-gram模型
式中,w1,w2,w3,…,wt表示文本中的一組詞語的排列順序,該文窗口大小選的是5,詞向量維度數為100。
卷積層作為卷積神經網絡的核心,其本質上為特征抽取層,能夠將所輸入的醫療語料文本通過卷積核進行卷積操作,從而抽取語料文本中的部分特征[7]。
卷積層主要由濾波器來完成操作,再實驗過程中,濾波器的數量通常和所提取特征的數量成正比。當面對不同位置的輸入數據時,濾波器通常使用“滑動窗口”的方法來取得數據的特征,最終變為一個特征集合。同時,當前層取得的特征會作為下一層的輸入數據進行抽取,輸入文本的特征向量序列為x1,x2,x3…,xm,在該序列中,xi∈Rd代表第i個詞含有的特征向量,xi;i+j則代表xi-xi+j的特征相互連接[8]。假設存在權重向量參數化類型的卷積核,權重向量應由w∈Rcd所指代;c指代卷積核的長度值,因而卷積層的輸出序列為hi=f(w·xi;i+c-l+b),其中,i=1,2,…m-c+1,操作“·”代表點乘,f為線性的整流函數,b∈R為偏倚項,w和b均為學習參數,并且對于所有的i=1,2,…,m-c+1 參數值均保持不變。
卷積神經網絡的池化階段能夠獲得整個卷積進程中的重要特征,池化層的效用即為將獲取的特征進行過濾,清除前一層輸出中的噪音,并且通過降低卷積節點數量使得訓練參數的數量減小,相應的去除模型過擬合的問題[9]。
該文應用最大池層獲取長度相對固定語料文本的全局特征,目的是要保存文本語料中有價值的信息,即僅考慮所有語料中相對來說最具有價值的特征。池化處理對于提升卷積神經網絡的訓練結果和效率起到促進作用,并且在不缺失主要特征的前提下能夠減小輸出結果的維度,能夠減小整體模型的計算量[10],卷積層最終的輸出長度(m-c+1)取決于文本中m的個數,如式(2)所示:
依據上所述過程,表達了如何利用單個過濾器從整個文本中提取一個特征。依據圖1 可知,實驗所利用長度為3 和4 的過濾器(卷積核)全面地提取了4 個特征。為了判斷過濾器長度對提取效果的影響,對不同長度過濾器進行實驗比較,同時也可以判斷上下文在不同的窗口大小時周圍的詞。卷積神經網絡的池化層基于大小不同的濾波器獲得較為重要的特征,同時把獲取到的特征傳遞給輸出層,最后輸出層應用Softmax 函數對池化層得到的特征進行分類,如式(3)所示:
式中,wy和by是分類函數的權重和偏置。
基于醫療領域的關系抽取研究較少,這是在護理學關系抽取任務中的一個難點。因此,該文根據專業醫生所提供的數據作為語料來源,構建醫療護理學領域的語料數據庫。通過1.1 節的預處理和數據標注工作,篩選出包含實體對和它們之間關系的句子,作為實驗語料。實驗主要針對于醫療護理領域的相關數據,如表3 所示。

表3 醫療護理鄰域相關數據
實驗共收集了294 149 條數據,包括疾病診斷項目、醫療科目、疾病名稱以及藥品名稱等。應用詞頻統計的策略,將所獲取的數據進行剖釋處理,了解所收集到的醫療語料知識,并且依據預料文本進行匯總,共定義了10 種實體關系類型。
數據標注部分主要依靠自己開發設計的醫療語料的標注系統,將語料的格式進行確認后直接進行標注工作。在預料標注系統中,只需要選擇與要標注的實體以及上述的各種關系即可完成對實體和彼此的關系標注,使用該系統可以降低繁瑣的人為操作,同時提高了準確率,最終完成基于該系統的半自動化標注[11]。文本標注的結果如例1 所示,將被標注的部分結果進行了人工的校對,能夠獲得最終的實驗數據。
例1:<e1>乳腺增生</e1>疾病檢查<e2>婦科</e2>。
其中,“乳腺增生”被標注為實體1,“婦科”被標注為實體2。兩者之間的關系為“疾病檢查”。
在該實驗期間,共用到了如下評價指標:準確率P、召回率R和F1 值,所應用到的公式如式(4)-(6)所示:
式中,V表示正確識別的實體關系個數;V1表示總的識別實體關系數;V2表示總的實體關系個數。該實驗中,共獲取并標注的數據為294 149 條,每次實驗都會隨機選擇10 000 條數據成為訓練數據,并進行3 次實驗,最終將3 次實驗的平均數作為該實驗的結果。
該文通過單個濾波器和組合濾波器對評價指標的影響進行實驗,實驗結果顯示了不同長度的濾波器對準確率、召回率以及F1值的影響效果,如表4所示。

表4 濾波器對訓練模型的影響效果
如表4 所示,在實驗過程中,當濾波器(卷積核)長度為3 時,其準確率、召回率以及F1 值均小于濾波器(卷積核)長度為4 以及濾波器長度為5 時的數值,因此,相應地填充單個濾波器的長度,能夠相對明顯地提高該實驗評價指標的百分比[12]。但是當濾波器長度大于5 時,實驗的測量數值明顯呈現下降趨勢。對組合濾波器進行實驗時,可以發現[3,4]組合濾波器的評價數值相對單個濾波器的較大值有所提升。因此,由表4 的實驗結果可知,3 和4 兩個濾波器整合的實驗效果可以達到最優,F1 值為89.77%。該文所標注的數據共294 149 條,命名的實體關系對共10 種,在此過程中,相較其他的標注來說“疾病-推薦藥品”類中所標注語料最多,為59 467 條[13]。
關系抽取模型對比結果如圖3 所示,能夠得出該文方法與基于LSTM 和Bi-LSTM 的方法相比較,其準確率P、召回率R包括F1 值都存在相對明顯的提高,其中,相對于LSTM,準確率P,召回率R、F1 值指標提升較為明顯[14]。對比實驗表明,該文所使用的方法能夠更好地應用于醫療數據的領域關系抽取。

圖3 關系抽取模型對比結果
該文研究了基于卷積神經網絡在醫療護理領域的實體關系抽取情況。從醫療護理領域出發,從近30 萬條數據中抽取了10 種實體-關系對,并基于此構建關系語料庫[15]。最終,在池化層部分,采用了分段最大池化的策略,有效地降低了部分關鍵醫療實體特征的損耗。同時,該文基于LSTM 以及Bi-LSTM的方法同CNN 模型進行對比,最終得出該文所采用的卷積神經網絡方法模型可以極大地增強醫療護理學實體關系抽取的成果,具有更好的性能[16]。