武學鴻 楊 峰
(1中南大學計算機學院 長沙 410083 2湖南科創信息技術股份有限公司 長沙 410205) (中南大學計算機學院 長沙 410083)
李建華 徐 倩
(湖南科創信息技術股份有限公司 長沙 410205) (中南大學湘雅醫學院 長沙 410003)
中文電子病歷的命名實體識別研究最初主要是基于詞典和規則的方法[1-4],形成了醫療領域3個代表性通用工具,即MedLEE、MedKA和cTAKES[5]。目前最常用的是基于機器學習的研究方法[6-10]。Wang Y、Yu Z和Chen L等[11]通過基于規則和條件隨機場的算法對病歷數據進行實體識別。Lei J、Tang B和 Lu X等[9]對比分析條件隨機場、支持向量機、最大熵和結構支持向量機等不同算法在中文電子病歷命名實體識別中的效果。于楠、王普和翁壯等[12]提出基于多特征融合的中文電子病歷命名實體識別方法,多特征融合的條件隨機場模型在僅選取基本特征、上下文窗口為7時識別效果最好。中文命名實體識別研究方法常將詞向量、字向量或者二者的簡單結合作為分類模型的輸入特征[13-14]。本文構建醫學語料庫來訓練醫學專業詞向量,同時設計詞屬性推理模型,以詞語中的每個字作為輸入得到詞語的詞屬性向量,將其作為詞語的內部特征,最后將二者結合作為模型的輸入特征,見圖1。

圖1 融合詞向量及詞屬性推理的中文電子病歷命名實體識別方法
首先構建豐富的醫學語料庫,通過收集及預處理獲取語料庫內容,見表1。

表1 醫學語料庫
2.2.1 相似詞分析法 采用skip-gram方法依次將語料分割為單個詞、初始化向量、二次抽樣、使用詞典查找方法和正則表達式來修正、訓練并保存skip-gram隱含層節點參數,從而生成醫學專業領域詞向量。采用歐式距離的倒數表示詞語之間的相似度,歐式距離越小則詞語之間語義越相關。假設有兩個詞語A、B,向量分別為a(x11,x12,…,x1n),b(x21,x22,…,x2n),則A與B的歐氏距離dab的計算公式為:
公式1
A、B之間的相似度simAB計算公式為:
公式2
本文列舉了部分典型詞語,分別計算其在通用領域和專業領域詞向量空間模型中排名前3的最相似詞,見表2、表3。對比表2及表3,如“發燒”,在前者中最相似詞分別是“發熱”“燃燒”“發光”,而在后者中則是“發熱”“感冒”“高熱”;又如“拍片”在前者中最相似詞分別是“拍電影”“拍視頻”“照相”,而在后者中則是“CT”“造影”“B超”。基于常識分析來看,醫學領域詞向量模型中推薦的相似詞更加準確。

表2 基于通用領域詞向量空間中最相似詞

表3 基于醫學領域詞向量空間中最相似詞
2.2.2 類比推理法 除相似詞分析外,類比推理也是一種評價詞向量空間模型的有效方法。該方法給出一對有語義聯系的詞語對A與B,然后給定一個詞語C,可以計算得到與C有同類語義聯系的詞語D,見表4。從表4中結果可以看出兩種詞向量空間模型對詞語的語義特征提取存在差別。如“緊張”一詞,參考“升高-降低”詞語對的反義性,專業領域詞向量模型推理出為“松軟”,而通用領域詞向量模型推理結果為“放松”。

表4 類比推理結果
2.2.3 結果分析 綜上所述專業領域詞向量中詞語的語義特征比通用領域詞向量更接近詞語在醫療語境的含義。
詞屬性推理機制是指根據詞語中的每個字推理出其屬性分類信息,再與詞語向量結合形成融合后的文本特征輸入到分類模型中去。詞屬性推理機制本質上屬于分類任務,為了盡可能地提取到詞語中單個字與多個字的信息,使用多卷積核的卷積神經網絡模型來實現詞屬性推理模型,見圖2。

圖2 詞屬性推理模型結構設計
詞語的字向量輸入詞屬性推理模型后,經過卷積層的輸出為:
c1=conv(f1,X,‘valid’)+b1
公式3
c2=conv(f2,X,‘valid’)+b2
公式4
式中conv表示二維的卷積操作運算,f1、f2表示兩個不同大小的卷積核,X表示輸入詞語的字向量(x1,x2……xi),“valid”是本文選擇的卷積操作處理邊界問題的一種方式,b1、b2分別表示兩個卷積層的偏置量。將c1、c2進行連接操作后輸入到下一層的全連接層中:
c=concat(c1,c2)
公式5
m=c×w1+b3
公式6
式中concat操作表示將兩個卷積層結果連接起來。式中w1是全連接層1的權重矩陣,b3是偏置量。
m′=m×Bernoulli(p)
公式7
n=m′×w2+b4
公式8
以上公式中Bernoulli函數是為了生成概率向量,也就是隨機生成一個只包含0、1的向量,其中p表示生成過程中的概率。將全連接層1的輸出結果與概率向量相乘,相當于隨機丟棄了其中占比為p的信息,這種做法也被稱為dorpout處理。w2是全連接層2的權重矩陣,b4是偏置量。模型最后一層對全連接層2的輸出結果進行softmax操作,結果作為模型的最終輸出,計算公式如下:

公式9
為了分析詞向量以及詞屬性推理機制對實驗結果的影響,設計3個基于BiLSTM-CRF[15]的擴展模型:模型CEMRNER使用通用領域詞向量,模型CEMNER_WA使用通用領域詞向量并結合詞屬性推理機制,模型CEMRNER_DW_WA使用專業領域詞向量并結合詞屬性推理機制。3個模型都基于tensorflow框架開發實現。
實驗數據來自于臨床電子病歷,采用eHost工具對1 000份電子病歷標注并審核確認,標注的實體類別有:疾病、癥狀、藥品、部位、治療以及檢查。每份電子病歷的標注結果都會輸出對應的xml文件。Annotations標簽為根標簽,其屬性textSource記錄了病歷文件名稱,每個實體信息由annotation以及classMention兩個標簽描述,其中annotation標簽中的span子標簽描述該實體在病歷中的位置,spannedText為實體內容,classMention標簽中的metionClass子標簽指明了當前實體類別。標注完成后,將實驗數據按照8:1:1的比例隨機劃分出訓練集、驗證集以及測試集。
對比分析模型CEMRNER與CEMRNER_DW在測試集上F1值可知,結合詞屬性推理機制的模型CEMRNER_WA較沒有引入詞屬性推理機制的模型CEMRNER在總體水平上有所提升,F1值由0.85提升到0.88,從各實體類別來看整體識別效果更好。對比分析模型CEMRNER_WA與CEMRNER_DW_WA在測試集上的表現可知,使用領域詞向量的模型表現更優,總體F1值從0.88上升到0.90。針對每類實體識別結果,CEMRNER_DW_WA都表現出1%~2%的提升。
本文介紹了融合詞向量及詞屬性推理的中文電子病歷實體識別方法,以BiLSTM-CRF為基準模型分別實現3個對比模型。實驗結果表明詞屬性推理機制的引入可以提升模型實體識別效果,同時也證明了專業領域詞向量比通用領域詞向量在醫療命名實體識別任務中表現更好。