徐永東,權(quán)光日,王亞東
(哈爾濱工業(yè)大學(xué)(威海)計算機科學(xué)與技術(shù)學(xué)院,264209山東威海,ydxu@insun.hit.edu.cn)
在醫(yī)療信息化的大背景下,隨著計算機及互聯(lián)網(wǎng)技術(shù)的發(fā)展,以電子病歷為載體的數(shù)字化醫(yī)療信息呈現(xiàn)海量增長的趨勢,為快速準確獲得所需信息,并將其以規(guī)范化的形式存儲,使之方便地實現(xiàn)醫(yī)療數(shù)據(jù)的存儲、傳輸、共享以及數(shù)據(jù)挖掘已成為人們一種迫切的需求.
電子病歷 (EMR)在美國、日本和英國等[1-2]國家已投入巨資進行了深入的研究和應(yīng)用.在國內(nèi)醫(yī)學(xué)領(lǐng)域[3],電子病歷及相關(guān)的醫(yī)療信息存儲、傳輸、共享、挖掘等研究仍屬剛剛起步階段.而目前的電子病歷大多以非結(jié)構(gòu)化或者半結(jié)構(gòu)化的文本形式為主,越來越難以滿足現(xiàn)代醫(yī)學(xué)研究的需求.因此,將病歷信息進行數(shù)字化與可計算化轉(zhuǎn)換是具有重大意義的研究課題.
目前普遍采用基于結(jié)構(gòu)化病歷采集模板的方式采集病歷信息,獲得大規(guī)模結(jié)構(gòu)化病歷庫.由于人工創(chuàng)建模式的方法不僅耗時費力,而且由于信息抽取模式的分布不均勻,獲取數(shù)目龐大的低頻模式往往變得非常困難.因此目前常用模式自動生成技術(shù)來獲取信息抽取模式,包括基于人工語料標注的模式學(xué)習(xí)方法、基于人工語料分類的模式學(xué)習(xí)方法、基于種子的模式學(xué)習(xí)方法等[4-9].國內(nèi)醫(yī)療模式獲取方面主要進行了對中醫(yī)藥學(xué)的局部信息抽取的研究.文獻[10]提出了 Bubblebootstrapping方法,對中醫(yī)藥學(xué)中的復(fù)方名稱和疾病名稱進行了自動抽取.文獻[11]構(gòu)建了醫(yī)學(xué)本體來處理醫(yī)學(xué)知識.本文通過對大量實際病歷的分析;根據(jù)其描述獨特的句法、語法特點以及極強的領(lǐng)域特殊性.根據(jù)人工給出的種子對大量訓(xùn)練病歷進行學(xué)習(xí),最終得到每類診察、診斷信息的抽取模式,然后通過匹配信息抽取模式的方法完成對病歷診察信息的抽取.
病歷信息的抽取通?;谀J狡ヅ涞姆椒ǎ茨J揭钥詹鄣男问浇o出應(yīng)從文本中獲取的各項內(nèi)容.因此模式的自動獲取是關(guān)鍵信息抽取算法的核心.
本文采用滿足HL7標準的數(shù)據(jù)庫作為數(shù)據(jù)存儲方案.因此必須首先結(jié)合HL7參考信息模型與病歷自身的特點來分析,進而達到對病歷信息有效覆蓋的同時方便抽取的數(shù)據(jù)進行結(jié)構(gòu)化存儲.
HL7(Health Level Seven)是由美國國家標準局(ANSI)授權(quán)的標準開發(fā)機構(gòu)Health Level Seven INC.(HL7組織)研究開發(fā)的一個專門用于醫(yī)療衛(wèi)生機構(gòu)及醫(yī)用儀器、設(shè)備數(shù)據(jù)信息傳輸、存儲以及處理的標準.目前已成為全球各國醫(yī)療衛(wèi)生信息化的重要基礎(chǔ)和關(guān)鍵技術(shù).在HL7標準中特別定義了用于數(shù)據(jù)的存儲與交換的信息表示模型——參考信息模型(RIM),它是結(jié)構(gòu)化的信息規(guī)范.這個模型包括屬性(Attributes)、關(guān)系(Relationships)、約束(Constraints)和狀態(tài)(States).它簡明、完整的定義一套結(jié)構(gòu)和詞匯,用于實現(xiàn)廣泛的臨床場景的信息表達需求.
本文利用自動獲取的模式來抽取的信息是診察信息,該類信息在HL7設(shè)置的數(shù)據(jù)模型中,屬于觀察類表的信息.在該模型中很多類信息都屬于觀察類的信息,包括診察信息、診斷信息、實驗結(jié)果、過敏反應(yīng)以及生理現(xiàn)象.如表1所示的是一個觀察類的實例——病述表.
表1 病述表
在病述表中,除了用來識別表內(nèi)項的主碼“ID”外,用來描述診察癥狀的項分為:癥狀開始時間、癥狀部位、癥狀描述、程度/頻度和持續(xù)時間5個部分.
為了能用機器學(xué)習(xí)的方法自動完成病歷信息的抽取,還需要對病歷本身的結(jié)構(gòu)和特征有充足的認識.表2所示的是一份有代表性的燙傷病歷的診察信息.
表2 病歷診察信息
診察信息除了在表達方式上具有顯著的醫(yī)學(xué)領(lǐng)域特征外,與HL7的參考信息模型相比有以下特點:
1)與參考信息模型的數(shù)據(jù)相比,普通診察信息沒有癥狀開始時間與持續(xù)時間2個部分.上述信息在病歷中以病史及入院經(jīng)過信息出現(xiàn).病歷中出現(xiàn)的診察信息全部以靜態(tài)信息出現(xiàn),時間默認為病歷生成時間.
2)普通診察信息的表述具有自然語言的特點,信息的表述與參考信息模型的代碼表述相比較復(fù)雜.
因此,模式的表達方式經(jīng)過消減與細分后可分為:對象的修飾、對象、程度/頻度、性質(zhì)和描述5個部分.根據(jù)上述信息特點本文設(shè)計了病歷信息的五元組表示形式:<對象修飾,對象,程度,性質(zhì),對象描述>.其中對象與描述部位必須出現(xiàn).而病歷信息抽取模式就是五元組的子集.
另外,由于語言使用的靈活性,五元組中的主體修飾與程度部分的位置也具有一定的靈活性.因此模式格式的定義中各元素的相對位置并不是唯一的.
根據(jù)對大量的病歷中診察信息的特征結(jié)合HL7參考信息模型的分析,發(fā)現(xiàn)診察信息基本上是由主體和描述2部分組成,這部分診察信息本文稱為第1類診察信息(文中沒有明確說明是哪一類的都是指第1類診察信息),通過診察抽取模式對它進行獲取,如“頭痛、面色無華、口干、舌質(zhì)暗紅、心煩”等.
其中信息的主體是由對象和描述2部分組成,如“頭痛、面色無華、口干”等,本文可以采用二元組來表示:<對象,描述>.
例如,對于語句“右臂前部劇烈腫痛”,經(jīng)過詞法分析處理后為“右 /f,臂 /n,前部 /f,劇烈 /a,腫/v,痛/a”,采用 <對象,描述 >二元關(guān)系模式可以得到特例模式:<臂/n,痛/a>.采用五元組對它進行匹配可得到一個六元組的特例模式:< 右 /f,臂 /n,前部 /f,劇烈 /a,腫 /v,痛 /a >.
五元組中除二元關(guān)系外其他3個部分(即主體修飾詞、程度和性質(zhì))稱為模式抽取語義類.語義類雖然不是診察信息必須的組成部分,但它們對抽取模式的表示具有非常重要的作用.
1)解決同義詞表述問題,簡化二元關(guān)系模板.
2)去掉修飾語中的否定性詞匯,使模板得到統(tǒng)一和簡化,解決語句歧義問題.
3)可以更加精確的對信息進行量化,例如含有修飾詞“無”的癥狀可以量化成0;含有修飾詞“輕微的可以量化成0.5;含有修飾詞“極”、“非?!笨梢粤炕?等等;方便后續(xù)數(shù)據(jù)的轉(zhuǎn)換、量化分析、數(shù)據(jù)挖掘.
4)去掉導(dǎo)致模板抽取的錯誤的無效信息.
表3是對語義類的一些應(yīng)用舉例.本文利用《同義詞詞林》并針對它們在醫(yī)學(xué)領(lǐng)域的語義特點,設(shè)計了病歷信息語義類同義詞林,并用一個對象來替換模板中出現(xiàn)的多個同類詞.這個對象可能為詞組,如“部位”,也可能為各類復(fù)合詞組如表示數(shù)值的“程度1.5”或者直接刪除.
表3 語義類舉例
二元關(guān)系特例模式只能概括生成它的文本,要想使其能概括別的文本片段,則需要對特例模式泛化,生成泛化模式.一般對特例模式進行泛化有2種方法:基于語法的泛化和基于語義的泛化.基于語法的泛化是把特例模式中具有相同語法的對象進行抽象,得到泛化模式;基于語義的泛化是指把多個特例模式中具有相同語義類型的單元進行抽象,得到泛化模式.本文采用語法與語義相結(jié)合的泛化方法,進行二元關(guān)系泛化和語義類泛化2個階段的處理.
1.2.1 模式的二元關(guān)系泛化算法
二元關(guān)系泛化的主要目的為:去除否定性詞匯;生成可發(fā)現(xiàn)新二元關(guān)系的模式.二元關(guān)系泛化算法如圖1所示.
例如文本片段“右膝無腫痛”與二元關(guān)系“膝痛”進行匹配,找到一個對象類命名實體和一個描述類命名實體.可以生成一個特例模式為:<{右 /adj},{膝 /n},{無 /v},{腫 /v},{痛 /v}>.該特例模式經(jīng)過二元關(guān)系泛化后可得到二元關(guān)系泛化模式:<{右 /adj},對象,{腫 /v},描述}>.
圖1 二元關(guān)系泛化算法描述圖
1.2.2 模式的語義類泛化算法
由于本文處理的信息具有醫(yī)學(xué)領(lǐng)域的獨特特性,特別是句法結(jié)構(gòu)比較簡單.易于建立簡單的語義理解規(guī)則.因此提出了一個基于規(guī)則與語義類表的語義類泛化算法.該算法的主要思想為:利用二元關(guān)系泛化模式的對象與描述部位的槽,將模式分割為3部分,分別為:對象前部、對象與描述中間部位和描述后部.將對象前部的全部詞作為對象描述信息,與對象修飾語義類進行比較替換.中間部位的信息的詞集合一定屬于對象修飾類、程度類與性質(zhì)類構(gòu)成的總集合的子集,且具有順序性,因此這部分信息按照該順序規(guī)則進行匹配替換.描述后部的詞作為程度類信息進行匹配替換.替換后的泛化模式存入模式庫.
語義類泛化算法具體描述如圖2所示.
圖2 語義類泛化算法描述圖
例如將二元關(guān)系泛化模式 <{右 /adj},對象,{關(guān)節(jié) /n},{腫 /v},描述,{嚴重 /adj}> 按照對象實體和描述實體進行分割,形成3個片段<{右 /adj}>、<{關(guān)節(jié)/n}{腫 /v}>、<{嚴重/adj}>.分別對其進行語義類泛化并重新組合,生成語義類泛化模式{<部位 >,對象,<部位 >,<性質(zhì)001>,描述,<程度2>}.
在抽取模式和模式泛化的定義的基礎(chǔ)上,針對診察信息的特點,本文設(shè)計了一個基于Bootstrapping算法的模式自動獲取算法,用于獲取病歷信息的二元關(guān)系,從而得到該類信息的抽取模式.Bootstrapping算法是一種從自由文本中進行信息抽取實現(xiàn)結(jié)構(gòu)化數(shù)據(jù)存儲的新的信息抽取模式獲取方法.它不需要預(yù)先標注的手工訓(xùn)練集,只需要以少數(shù)數(shù)據(jù)(種子)和大量的未標注語料為基礎(chǔ),通過由種子詞產(chǎn)生模式,再由模式產(chǎn)生種子詞的不斷循環(huán)迭代,最終產(chǎn)生所需的模式庫.其整體流程如圖3所示.
圖3 Bootstrapping算法流程圖
基于Bootstrapping的模式獲取方法由3個部分組成:
l)初始條件.給定一個醫(yī)院病歷文檔集合D={d1,d2,…,dn}、醫(yī)學(xué)術(shù)語庫、語義類庫、詞法分析模塊和人工給初的少量種子二元關(guān)系.定義二元關(guān)系類別SR=<n,v>,其中:n為文本串中名詞性短語NP的中心詞;v為文本串中修飾n的動詞或形容詞短語的中心詞.
2)Bootstrapping迭代.目標為從D中學(xué)習(xí)SR的二元關(guān)系模式集合P和屬于SR的二元關(guān)系集合R.首先利用種子關(guān)系檢索病歷文本集合,產(chǎn)生可信度高的新二元關(guān)系實例;然后利用新模式去匹配語料集,抽取新的種子關(guān)系.由此循環(huán)迭代,至達到規(guī)定的迭代次數(shù)或種子關(guān)系不再增加為止.
3)輸出結(jié)果.目標詞和用于抽取目標詞的模式.
算法的具體描述如圖4所示.
圖4 Bootstrapping算法描述圖
利用已有的模式庫對病歷中的診察信息進行抽取.問題在于:模式庫中的診察信息抽取模式經(jīng)過模式的2階段泛化,已經(jīng)成為抽象的字符串組合.這種組合已經(jīng)脫離了自然語言的范疇,無法直接用來與診察信息中的語句進行匹配,并抽取相應(yīng)信息.因此,需要將抽象化的模式與診察信息語句建立對應(yīng)關(guān)系.
算法思想為:二元關(guān)系庫中的二元關(guān)系既是用來進行模式生成的種子,也是模式抽取的對象.因此,若一條語句能夠被診察信息抽取模式所匹配,則在二元關(guān)系庫中至少有一個二元關(guān)系能與該語句進行匹配.找出與所要抽取的語句能夠匹配的所有二元關(guān)系,從這些二元關(guān)系中依次取出二元關(guān)系并對待抽取語句調(diào)用一次模式泛化算法,獲得的模式與模式庫中的模式進行匹配.算法的流程如圖5所示.
圖5 自動獲取模式的信息抽取算法流程圖
衡量信息抽取系統(tǒng)性能主要根據(jù)3個常用的評價指標:召回率R、準確率P和F度量值.對于需要抽取的n個狀態(tài),則評價指標為
式中:ce為對于第i個狀態(tài)抽取出的正確信息個數(shù);te為沒有抽取出的正確信息個數(shù);fe為抽取出的錯誤信息個數(shù).
實驗數(shù)據(jù)采用由長春市市醫(yī)院燒傷科提供的312份2005年~2008年間燒傷科住院病歷.本文從中取出30份病歷作為抽取測試數(shù)據(jù),其余病歷作為訓(xùn)練語料.
系統(tǒng)主要包括模式庫建立、信息抽取2個處理部分,總體流程如圖6所示.首先進行語料預(yù)處理,根據(jù)各個部位相應(yīng)的關(guān)鍵詞提示,如“病人特點”、“查體”、“入院經(jīng)過”等,將相關(guān)信息分類.然后對含有并列詞語句拆分成單句,并對單句進行分詞與詞性標注,本文采用的資源是《新編全醫(yī)藥學(xué)大辭典》公布的醫(yī)學(xué)術(shù)語庫.最后進行模式自動抽取和結(jié)構(gòu)化轉(zhuǎn)換處理.
圖6 系統(tǒng)總體流程圖
本文選取的對象詞包括:皮膚、傷口、肩、膝、腺、腹、頭、創(chuàng)面;選取描述詞:腫脹、痛、色、活動和傷口等.組合后生成29個種子二元關(guān)系.根據(jù)這29個種子二元關(guān)系匹配病歷庫,共得到865個特例模式.經(jīng)過泛化歸并后得到110個泛化模式.然后在這些泛化模式的指導(dǎo)下,對30份病歷進行了測試.實驗數(shù)據(jù)如表4~表6所示.
表4 種子二元關(guān)系舉例
從上述實驗數(shù)據(jù)可以看出,二元關(guān)系達到了較高的準確率與召回率,主要是因為病歷信息相對來說句子結(jié)構(gòu)簡單,沒有長句子,且語法簡單,而且對二元關(guān)系的抽取沒有經(jīng)過語義類泛化,模式比較準確.對性質(zhì)語義類的抽取得到了較高的召回率.這主要是因為性質(zhì)的種類較少,易于抽取.但準確率較低,這是由于部分的描述詞前面直接出現(xiàn)程度類詞,而沒有出現(xiàn)性質(zhì)類詞,導(dǎo)致識別錯誤.
表5 泛化模式舉例
表6 模式抽取實驗結(jié)果
對于主體修飾和程度語義類來說,準確率很高,但召回率很低,主要是因為這2類詞匯出現(xiàn)的位置變化比較大,而且出現(xiàn)的種類也比較多,特別是語義類的引入易導(dǎo)致出現(xiàn)識別錯誤.
1)通過對電子病歷文本信息的描述特征的分析,提出了符合HL7標準的五元組抽取模式,并進一步細分為二元關(guān)系和語義類2部分,為進一步的模式自動獲取提供了抽取對象和標準的形式化描述.
2)利用基于Bootstrapping算法的模式自動學(xué)習(xí)技術(shù),實現(xiàn)了診察信息抽取模式的自動學(xué)習(xí),并提出了基于模式的電子病歷關(guān)鍵信息抽取算法.
3)通過實際住院病歷作為測試數(shù)據(jù)的實驗表明本文提出的方法可以有效地抽取二元關(guān)系模式,并對各種語義類也有較好的識別.
[1]FLETCHER M.President promotes switching to electronic medical records:Bush says paperless system would cut costs and improve care[N].Washington Post,2005-01-28(A07).
[2]HALAMKA J.Electronic health record and revolution of clinical information technology—current status and future impact[J]. Zhonghua Yixue Za Zhi,2005,85(22):1513-1515.
[3]金偉.電子病歷系統(tǒng)的存儲與交換的研究[D].上海:上海交通大學(xué),2006.
[4]AGICHTEIN E,GRAVANO L.Snowball:Extracting relations from large plain-text collections[C]//Proceedings of the 5th ACM International Conference on Digital Libraries.New York,NY:ACM,2000:213-219.
[5]BRIN S.Extracting patterns and relations from the World Wide Web[C]//Proceedings WebDB '98 Selected papers from the International Workshop on The World Wide Web and Databases.London,UK:Springer-Verlag,1999:172-183.
[6]AGICHTEIN Y.Extracting relations from large text collections[C]//Doctoral Dissertation Extracting Relations from Large Text Collections.New York,NY:Columbia University,2005:157.
[7]MUSLEA I.Extraction patterns for information extraction task:A survey[C]//Procedings of AAAI-99 Workshop on Machine Learning for Information Extraction.Orlando,F(xiàn)lorida:AAAI Press,1999:1 -6.
[8]RILOFF E.Automatically generating extraction patterns from untagged text[C]//Proceedings of the Thirteenth National Conference on Artificial Intelligence.Portland,Oregon:AAAI Press,1996:1044 -1049.
[9]HUFFMAN S B.Learning information extraction patterns from examples[C]//Proceedings of Connectionist,Statistical,and Symbolic Approaches to Learning for Natural Language Processing.London,UK:Springer-Verlag,1996:246-260.
[10]周肖彬,曹存根.基于本體的醫(yī)學(xué)知識獲取[J].計算機科學(xué).2003,30(10):35-39.
[11]郭玉峰,劉保延,周雪忠.面向中醫(yī)臨床科研需求的術(shù)語分類框架研究[J].環(huán)球中醫(yī)藥,2008(2):9-12.