何 彬,關(guān) 毅
(哈爾濱工業(yè)大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,哈爾濱150001)
醫(yī)學(xué)實(shí)體作為臨床文本中醫(yī)學(xué)知識的主要載體之一,其識別效果對從臨床文本中抽取醫(yī)學(xué)知識尤為關(guān)鍵。目前的研究通常采取監(jiān)督學(xué)習(xí)方法在一定數(shù)量的標(biāo)注數(shù)據(jù)集上訓(xùn)練統(tǒng)計機(jī)器學(xué)習(xí)模型,不過這類模型在特征提取過程中對于已有的自然語言處理工具包比較依賴。然而,在中文臨床文本上,由于公開的數(shù)據(jù)集尤為有限,極大地限制了醫(yī)學(xué)實(shí)體識別模型中所使用特征的提取效果。例如,Xu等人[1]發(fā)現(xiàn)開放域文本上訓(xùn)練的分詞器在臨床文本的分詞上效果不佳,詞邊界的劃分直接影響了實(shí)體邊界的準(zhǔn)確度,這說明了醫(yī)學(xué)實(shí)體識別模型對于特定的分詞器的依賴性較強(qiáng)。因此,構(gòu)建臨床文本上訓(xùn)練的分詞器對于醫(yī)學(xué)實(shí)體識別模型的特征提取十分關(guān)鍵。此外,醫(yī)學(xué)術(shù)語的表述多樣性總會給分詞器帶來一些詞劃分錯誤,這些錯誤會直接傳遞給實(shí)體邊界識別造成錯誤累積,故研究字級別的醫(yī)學(xué)實(shí)體識別模型是避免分詞帶來的錯誤累積問題的一種解決方案。本研究首先構(gòu)建詞級別的醫(yī)學(xué)實(shí)體識別模型,基于該模型上對比了開放域文本和臨床文本上訓(xùn)練的分詞器對于識別性能的影響,同時也探索了字級別的醫(yī)學(xué)實(shí)體識別模型的性能。
在本文中,研究的主要貢獻(xiàn)有:
(1)構(gòu)建了臨床文本上的分詞器用于醫(yī)學(xué)實(shí)體識別模型的詞特征提取,并與開放域分詞器進(jìn)行比較,得出分詞器對于醫(yī)學(xué)實(shí)體識別模型性能的影響。
(2)構(gòu)建了字級別條件隨機(jī)場模型用于醫(yī)學(xué)實(shí)體識別。
(3)實(shí)驗(yàn)結(jié)果表明,臨床文本上訓(xùn)練的分詞器對于醫(yī)學(xué)實(shí)體識別性能有顯著提升,字級別條件隨機(jī)場模型避免了詞切分對醫(yī)學(xué)實(shí)體邊界識別帶來的錯誤累積問題,并且提升了模型性能。
條件隨機(jī)場模型[2]是命名實(shí)體識別任務(wù)中最常用的模型,該模型是在給定輸入序列x=(x1,…,xn)的條件下,求條件概率p(y|x)最大的輸出序列y=(y1,…,yn)。線性鏈條件隨機(jī)場模型可以形式化為:
其中,
此處,tk和sl是特征函數(shù);λk和μl為特征對應(yīng)的權(quán)重;Z(x)為歸一化因子。
基于統(tǒng)計機(jī)器學(xué)習(xí)的模型通??梢詣澐譃閿?shù)據(jù)預(yù)處理、特征提取、模型編碼和解碼模塊。本研究采用條件隨機(jī)場模型來進(jìn)行醫(yī)學(xué)實(shí)體識別,其流程如圖1所示。這里將對該模型的各個功能模塊展開如下研究描述。
圖1 CRF模型流程Fig.1 Flow diagram of the CRF model
本研究使用的醫(yī)學(xué)實(shí)體標(biāo)注語料庫是以文檔為標(biāo)注單元的數(shù)據(jù)集,首先就要對該數(shù)據(jù)集進(jìn)行必要的預(yù)處理操作。涉及的流程步驟可分述如下。
(1)對文本進(jìn)行句子切分。
(2)針對文本中出現(xiàn)的中英文標(biāo)點(diǎn)使用不統(tǒng)一的情況進(jìn)行標(biāo)點(diǎn)替換。
中文文本沒有空格對詞來做出劃分,在模型訓(xùn)練前需要利用分詞器對句子進(jìn)行詞切分。研究中利用斯坦福分詞器(Stanford Word Segmenter)[3-4]對臨床文本進(jìn)行分詞處理,并基于得到的詞序列提取特征。首先,研究利用斯坦福詞性標(biāo)注器(Stanford POS Tagger)[5-6]生成句子的詞性標(biāo)記來提取詞性特征,接著參照文獻(xiàn)[7]提取詞的拼寫特征。拼寫特征由詞內(nèi)的字的字符類型組合而成,同時在文獻(xiàn)[7]中使用的大寫字母(X)、小寫字母(x)和數(shù)字(D)的基礎(chǔ)上增加了漢字(C)、符號(S)和其他(O)的字符類型。研究還從網(wǎng)絡(luò)上爬取了醫(yī)學(xué)術(shù)語來構(gòu)建醫(yī)學(xué)術(shù)語字典(數(shù)據(jù)源有好大夫在線(http://www.haodf.com./ask/)、 萬 方 醫(yī) 學(xué) 網(wǎng) ( http://lczl.med.wanfangdata.com.cn/)、國家食品藥品監(jiān)督管理總局(http://samr.cfda.gov.cn/WS01/CL0001/) 等),術(shù)語規(guī)模見表1。接下來,將通過判斷詞是否出現(xiàn)在術(shù)語字典中或是術(shù)語的組成部分來提取模型的字典特征。表2對詞級別醫(yī)學(xué)實(shí)體識別模型的特征進(jìn)行了舉例說明,詳情見表2。同時,由于臨床文本中許多句子長度過長,故在本研究中未引入句法特征。
表1 醫(yī)學(xué)術(shù)語字典規(guī)模Tab.1 The scale of the medical term dictionary
表2 詞級別醫(yī)學(xué)實(shí)體識別模型的特征Tab.2 Features for the word-based medical entity recognition model
考慮到開放域文本上訓(xùn)練的分詞器在臨床文本上分詞效果不佳的現(xiàn)狀[1],文中基于賓州中文樹庫的分詞規(guī)范[8]構(gòu)建了中文臨床文本上的分詞規(guī)范[9],在138份臨床記錄上標(biāo)注了分詞信息,其中包含2 612個句子,47 426個詞。研究在該數(shù)據(jù)集上訓(xùn)練了基于條件隨機(jī)場的分詞器,使用的特征有ci,ci-1,ci+1,ci-2ci-1,ci-1ci,cici+1,ci+1ci+2, 其中c表示字,i表示當(dāng)前字的索引。而后用該分詞器替換第1.2節(jié)中的分詞器進(jìn)行臨床文本的詞劃分,在保持其它特征不變的情況下重新構(gòu)建了醫(yī)學(xué)實(shí)體識別模型。
雖然本研究在醫(yī)學(xué)實(shí)體識別模型中引入了臨床文本上訓(xùn)練的分詞器,但是分詞器總會產(chǎn)生一些詞切分錯誤,給后續(xù)實(shí)體識別任務(wù)造成錯誤累積。因此,研究中也進(jìn)行了基于字的醫(yī)學(xué)實(shí)體識別構(gòu)建,將分詞信息作為特征的形式加入到模型中,避免詞切分直接造成實(shí)體邊界識別錯誤。這里對基于字的醫(yī)學(xué)實(shí)體識別的字序列和標(biāo)記序列進(jìn)行了舉例說明,詳情參見表3。
表3 基于字的醫(yī)學(xué)實(shí)體識別的字序列和標(biāo)記序列距離Tab.3 An example of the character sequence and label sequence for the character-based medical entity recognition model
在表3中,“O”是實(shí)體外部標(biāo)記,“B-D”是實(shí)體開始標(biāo)記,“I-D”是實(shí)體內(nèi)部標(biāo)記,“E-D”是實(shí)體結(jié)束標(biāo)記,“D”表示疾病。
表2中的特征在適配到字序列上即可得到字級別醫(yī)學(xué)實(shí)體識別模型的特征。在分析時,則使用雙向最大匹配算法對句子進(jìn)行醫(yī)學(xué)術(shù)語匹配,根據(jù)匹配結(jié)果來生成句中每個字對應(yīng)的字典匹配標(biāo)記。此后,就對模型中的特征進(jìn)行了舉例說明,具體見表4。
表4 字級別醫(yī)學(xué)實(shí)體識別模型的特征Tab.4 Features for the character-based medical entity recognition model
研究選取文獻(xiàn)[10]中構(gòu)建的醫(yī)學(xué)實(shí)體標(biāo)注語料庫作為實(shí)驗(yàn)數(shù)據(jù)。并且以文檔為單位對每個科室的數(shù)據(jù)進(jìn)行隨機(jī)等比劃分,得到了包含521份文檔的訓(xùn)練集和471份文檔的測試集。本數(shù)據(jù)集中包含治療、檢查、疾病和癥狀四大類醫(yī)學(xué)實(shí)體,其類別數(shù)量分布見表5。
表5 醫(yī)學(xué)實(shí)體數(shù)據(jù)集類別數(shù)量分布Tab.5 The distribution of entity types in the medical entity dataset
在本研究中,重點(diǎn)選取BIESO的標(biāo)記策略給數(shù)據(jù)打標(biāo)簽。同時運(yùn)用準(zhǔn)確率、召回率和F1值來評價每一個實(shí)體類別的性能,并用所有實(shí)體類別上的微平均F1值來評估模型的整體性能,研究推得其數(shù)學(xué)計算公式如下:
其中,True Positive表示系統(tǒng)輸出中邊界和類型都與標(biāo)準(zhǔn)數(shù)據(jù)相匹配的實(shí)體數(shù)量;False Positive表示系統(tǒng)輸出中未出現(xiàn)在標(biāo)準(zhǔn)數(shù)據(jù)中的實(shí)體數(shù)量;False Negative表示系統(tǒng)輸出中未召回的在標(biāo)準(zhǔn)數(shù)據(jù)中的實(shí)體數(shù)量。
研究中采取了標(biāo)準(zhǔn)的數(shù)據(jù)劃分進(jìn)行實(shí)驗(yàn),并有針對性地設(shè)計了下列3種模型在該數(shù)據(jù)集上做出比較。這3種模型的功能設(shè)計可描述如下。
(1)詞級別的條件隨機(jī)場模型(CRF):該模型以詞序列作為輸入,使用斯坦福分詞器對實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分詞處理。
(2)引入臨床文本上訓(xùn)練的分詞器的CRF模型(CRF+CWS):研究使用臨床文本的分詞語料上訓(xùn)練的分詞器替換CRF模型中的分詞器來進(jìn)行詞劃分,其它特征保持不變。
(3)字級別的條件隨機(jī)場模型(Char-CRF):該模型以字序列作為輸入,模型中的分詞特征通過臨床文本上訓(xùn)練的分詞器提取。
2.3.1 系統(tǒng)性能
各個醫(yī)學(xué)實(shí)體識別模型的綜合性能對比見表6。表6中,Lex表示詞匯特征;Ort表示拼寫特征;Dic表示字典特征;CWS表示臨床分詞器。從表6中可以看出,基于字的條件隨機(jī)場模型取得了最好的識別結(jié)果,其F1值達(dá)到了91.00%。該模型比使用等同特征集合的詞級別的醫(yī)學(xué)實(shí)體識別模型在F1值上提升了1.02個百分點(diǎn),說明了將分詞信息以特征的形式加入模型訓(xùn)練不僅避免了詞切分對醫(yī)學(xué)實(shí)體邊界識別帶來的錯誤累積問題,還對醫(yī)學(xué)實(shí)體識別性能有所提升。
表6 醫(yī)學(xué)實(shí)體識別模型性能比較Tab.6 Performance comparison of medical entity recognition models
在只使用詞匯特征的模型上,引入臨床文本上訓(xùn)練的分詞器對醫(yī)學(xué)實(shí)體識別效果有大幅的提升,模型F1值提升了5.49個百分點(diǎn),這說明了臨床文本具備的獨(dú)特的文本特點(diǎn)使得開放域分詞器直接作用在該文本類型上時會出現(xiàn)領(lǐng)域適應(yīng)問題,不同的文本特點(diǎn)降低了開放域分詞器的分詞精度。為減少對后續(xù)任務(wù)造成的錯誤累積,訓(xùn)練面向臨床文本的分詞器是有必要的。
在使用詞匯特征的模型中先后增加了拼寫特征和字典特征后,模型的F1值分別提升了0.15和0.33個百分點(diǎn),驗(yàn)證了詞內(nèi)的字符類型表達(dá)與醫(yī)學(xué)術(shù)語字典對于醫(yī)學(xué)實(shí)體識別性能上的增益作用。
2.3.2 各類醫(yī)學(xué)實(shí)體的識別效果
針對每一種醫(yī)學(xué)實(shí)體類型,研究也比較了上述各個醫(yī)學(xué)實(shí)體識別模型的識別性能,相應(yīng)比較結(jié)果見表7。表7中,Lex表示詞匯特征;Ort表示拼寫特征;Dic表示字典特征;CWS表示臨床分詞器;表7中,括號里的數(shù)值是與前一模型對比的差值。
表7 各類醫(yī)學(xué)實(shí)體的識別性能比較Tab.7 Performance comparison on each medical entity type
研究發(fā)現(xiàn),臨床分詞器對于所有醫(yī)學(xué)實(shí)體類別都有識別性能提升,尤其是檢查和癥狀實(shí)體,分別在F1值上提升了5.39和7.64個百分點(diǎn)。通過對比斯坦福分詞器和臨床分詞器對于醫(yī)學(xué)實(shí)體邊界的切分結(jié)果,研究中對分詞結(jié)果與測試集標(biāo)準(zhǔn)中實(shí)體邊界沖突的數(shù)量進(jìn)行了統(tǒng)計,統(tǒng)計后結(jié)果見表8。從表8中可以看出,與斯坦福分詞器相比,臨床分詞器可以大量減少分詞結(jié)果與實(shí)體邊界的沖突,其中癥狀實(shí)體減少得最多,檢查實(shí)體次之,這也解釋了在加入臨床分詞器后對于各類醫(yī)學(xué)實(shí)體性能提升的幅度。
表8 分詞結(jié)果與測試集標(biāo)準(zhǔn)中實(shí)體邊界的沖突Tab.8 Conflict between word segmentation results and entity boundaries in the test set
在模型中加入字典特征后,各類醫(yī)學(xué)實(shí)體的識別效果都有所提升。結(jié)合表1中對于各類醫(yī)學(xué)術(shù)語字典規(guī)模的統(tǒng)計值可以發(fā)現(xiàn),加入字典特征后的模型提升幅度與字典規(guī)模成正比。因此,收集更豐富的醫(yī)學(xué)術(shù)語資源是提高醫(yī)學(xué)實(shí)體識別的一種可行的措施。
醫(yī)學(xué)實(shí)體識別任務(wù)通常采取2種方法,分別是:基于字典和規(guī)則的方法和基于機(jī)器學(xué)習(xí)的方法。對該部分內(nèi)容可依次給出探討論述如下。
在醫(yī)學(xué)領(lǐng)域,大量的醫(yī)學(xué)術(shù)語給該領(lǐng)域的實(shí)體識別研究增加了難度,故醫(yī)學(xué)術(shù)語的術(shù)語表在該任務(wù)中發(fā)揮了巨大的作用,這些術(shù)語表通??煞Q為受控詞表(controlled vocabulary)。目前,在醫(yī)學(xué)術(shù)語上收錄最全的是UMLS超級敘詞表,該表中匯集了100多種受控詞表,而躋身其間的最著名的受控詞表有 ICD-10[11]、MeSH[12]、SNOMED CT[13]等。 基于字典模式來識別醫(yī)學(xué)實(shí)體的典型系統(tǒng)是梅奧診所的cTAKES(clinical Text Analysis and Knowledge Extraction System)[14],該系統(tǒng)利用淺層句法來識別所有的名詞短語作為字典的查找窗口,而后利用UMLS中的字典子集來識別疾病、治療過程、解剖學(xué)部位、藥品實(shí)體。
基于字典和規(guī)則的方法雖然在識別準(zhǔn)確率上有一定的可靠性,但是同一個醫(yī)學(xué)術(shù)語的多種表達(dá)方式以及術(shù)語表對所有醫(yī)學(xué)術(shù)語表述覆蓋不全的問題,則使得該方法在識別的泛化能力上要遜色于基于機(jī)器學(xué)習(xí)的方法。i2b2(Informatics for Integrating Biology&the Bedside)在2010年首次對臨床文本上的醫(yī)學(xué)實(shí)體進(jìn)行系統(tǒng)分類,并參照UMLS中的語義類型把醫(yī)學(xué)實(shí)體劃分為醫(yī)療問題、檢查和治療三類[15]。這3種醫(yī)學(xué)實(shí)體一定程度上體現(xiàn)出臨床文本的面向問題的組織方式[16],檢查是為了揭示或證實(shí)醫(yī)療問題,治療是為了治愈或緩解醫(yī)療問題。在2010 i2b2/VA評測中,大多數(shù)參與者采用基于統(tǒng)計學(xué)習(xí)模型的方法,有一些參與者還選取基于規(guī)則的方法,將其用于研發(fā)所涉及的預(yù)處理或后處理。de Bruijn等人[17]采用半馬爾科夫模型對詞序列進(jìn)行醫(yī)學(xué)實(shí)體識別,并選用4種標(biāo)記(outside,problem,treatment,test)替代BIO標(biāo)記體系給詞序列打標(biāo)簽。研究中借助半監(jiān)督學(xué)習(xí)方法提取的詞級聚類特征,同時還利用cTAKES和UMLS來抽取詞級特征。在實(shí)驗(yàn)過程中,通過采取自訓(xùn)練方式的半監(jiān)督學(xué)習(xí)方法對未標(biāo)注數(shù)據(jù)加以利用,訓(xùn)練出的模型在2010 i2b2/VA評測上取得了最佳效果。
在評測結(jié)束后,Tang等人[18]在評測數(shù)據(jù)集上對比了使用相同特征情況下結(jié)構(gòu)化支持向量機(jī)(Structural Support Vector Machine,SSVM)和條件隨機(jī)場模型的性能,并在系統(tǒng)中引入了基于聚類的和分布式的詞表示特征。實(shí)驗(yàn)表明,SSVM模型比CRF模型具有更好的泛化能力,在醫(yī)學(xué)實(shí)體識別上取得了更好的效果,而且2種詞表示特征對模型效果提升也是有利的。Lv等人[19]利用基于實(shí)例的遷移學(xué)習(xí)方法TrAdaBoost來探索從一個醫(yī)療機(jī)構(gòu)的數(shù)據(jù)上訓(xùn)練的實(shí)體識別模型在應(yīng)用到另一個醫(yī)療機(jī)構(gòu)的數(shù)據(jù)上時的效果。在此次工作中,為了能夠負(fù)遷移帶來的影響,研究使用Bagging策略來進(jìn)行權(quán)重更新。實(shí)驗(yàn)表明,該方法只需使用目標(biāo)領(lǐng)域上少量的標(biāo)注數(shù)據(jù)就能夠達(dá)到更優(yōu)的性能,因而對解決跨醫(yī)療機(jī)構(gòu)臨床文本的實(shí)體識別任務(wù)十分有效。
中文臨床文本上的醫(yī)學(xué)實(shí)體識別研究起步較晚,以葉楓等人[20]利用條件隨機(jī)場模型在中文臨床文本上識別疾病、臨床癥狀、手術(shù)操作這3類醫(yī)學(xué)實(shí)體的研究作為標(biāo)識,隨即開啟了中文臨床文本上的醫(yī)學(xué)實(shí)體識別研究進(jìn)程,不過該研究中定義的醫(yī)學(xué)實(shí)體類型還未臻至全面。借鑒2010 i2b2/VA評測中的醫(yī)學(xué)實(shí)體分類體系,Xu等人[1]在336份出院小結(jié)上構(gòu)建了分詞和醫(yī)學(xué)實(shí)體的語料庫,增加了藥品和解剖學(xué)部位這2類實(shí)體。研究中基于CRF模型,對比了獨(dú)立模型、增量模型、標(biāo)簽聯(lián)合模型和對偶分解聯(lián)合模型,實(shí)驗(yàn)結(jié)果表明,對偶分解模型結(jié)合了分詞與醫(yī)學(xué)實(shí)體識別任務(wù)的相關(guān)關(guān)系,在醫(yī)學(xué)實(shí)體識別任務(wù)上的效果達(dá)到了最好。與Xu等人的研究類似,Lei等人[21]將治療細(xì)分為藥物和過程,在北京協(xié)和醫(yī)院的臨床文本上構(gòu)建了800份醫(yī)學(xué)實(shí)體語料庫。研發(fā)時重點(diǎn)基于字袋、分詞、詞性、區(qū)段信息等特征在該語料庫上對比了CRF、SVM、ME和SSVM模型的效果。實(shí)驗(yàn)結(jié)果表明分詞和區(qū)段信息的特征組合取得了最佳的識別效果,SSVM模型在該任務(wù)上的效果要優(yōu)于其它3種統(tǒng)計機(jī)器學(xué)習(xí)模型?;贚ei等人構(gòu)建的數(shù)據(jù)集,Wu等人[22]利用深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練醫(yī)學(xué)實(shí)體識別模型,并基于中文臨床文本訓(xùn)練詞向量加入模型訓(xùn)練,實(shí)驗(yàn)結(jié)果表明該模型效果優(yōu)于CRF模型,并且驗(yàn)證了中文臨床文本上訓(xùn)練的詞向量對模型性能有較大提升。
前述研究都是面向所有科室的臨床文本進(jìn)行醫(yī)學(xué)實(shí)體識別,但對于特定疾病的信息抽取任務(wù)時,現(xiàn)有的實(shí)體分類體系就顯得比較粗糙。為了抽取腫瘤相關(guān)信息,Wang等人[23]在肝癌手術(shù)記錄上探索了基于規(guī)則和基于CRF模型的抽取方法。但是該模型中利用的特征比較局限,并未引入更多的語言學(xué)特征,導(dǎo)致模型效果受限。
在中文臨床文本上,中醫(yī)的臨床文本也是位列其中的一種數(shù)據(jù)類型。Wang等人[24]在中醫(yī)臨床文本的主訴上研究癥狀實(shí)體識別方法。通過在標(biāo)注單元、序列標(biāo)注單元選取、標(biāo)記集合上進(jìn)行適配,研究對比了HMM、MEMM和CRF模型在該任務(wù)上的性能。實(shí)驗(yàn)表明,針對主訴內(nèi)容采取的序列標(biāo)注策略適配在該任務(wù)上是合適且有效的,CRF模型的效果在該任務(wù)上要優(yōu)越于HMM和MEMM模型。
本文面向臨床文本的特點(diǎn)提出了不同的模型進(jìn)行醫(yī)學(xué)實(shí)體識別。臨床文本上訓(xùn)練的分詞器改善了詞邊界切分的準(zhǔn)確度,有效地提升了模型識別性能。此外,字級別的條件隨機(jī)場模型將分詞結(jié)果以特征的方式引入到模型訓(xùn)練中,避免了詞邊界錯誤給醫(yī)學(xué)實(shí)體識別帶來的錯誤累積,并且進(jìn)一步提升了模型性能。