徐永東,權光日,王亞東
(哈爾濱工業大學(威海)計算機科學與技術學院,264209山東威海,ydxu@insun.hit.edu.cn)
在醫療信息化的大背景下,隨著計算機及互聯網技術的發展,以電子病歷為載體的數字化醫療信息呈現海量增長的趨勢,為快速準確獲得所需信息,并將其以規范化的形式存儲,使之方便地實現醫療數據的存儲、傳輸、共享以及數據挖掘已成為人們一種迫切的需求.
電子病歷 (EMR)在美國、日本和英國等[1-2]國家已投入巨資進行了深入的研究和應用.在國內醫學領域[3],電子病歷及相關的醫療信息存儲、傳輸、共享、挖掘等研究仍屬剛剛起步階段.而目前的電子病歷大多以非結構化或者半結構化的文本形式為主,越來越難以滿足現代醫學研究的需求.因此,將病歷信息進行數字化與可計算化轉換是具有重大意義的研究課題.
目前普遍采用基于結構化病歷采集模板的方式采集病歷信息,獲得大規模結構化病歷庫.由于人工創建模式的方法不僅耗時費力,而且由于信息抽取模式的分布不均勻,獲取數目龐大的低頻模式往往變得非常困難.因此目前常用模式自動生成技術來獲取信息抽取模式,包括基于人工語料標注的模式學習方法、基于人工語料分類的模式學習方法、基于種子的模式學習方法等[4-9].國內醫療模式獲取方面主要進行了對中醫藥學的局部信息抽取的研究.文獻[10]提出了 Bubblebootstrapping方法,對中醫藥學中的復方名稱和疾病名稱進行了自動抽取.文獻[11]構建了醫學本體來處理醫學知識.本文通過對大量實際病歷的分析;根據其描述獨特的句法、語法特點以及極強的領域特殊性.根據人工給出的種子對大量訓練病歷進行學習,最終得到每類診察、診斷信息的抽取模式,然后通過匹配信息抽取模式的方法完成對病歷診察信息的抽取.
病歷信息的抽取通常基于模式匹配的方法,即模式以空槽的形式給出應從文本中獲取的各項內容.因此模式的自動獲取是關鍵信息抽取算法的核心.
本文采用滿足HL7標準的數據庫作為數據存儲方案.因此必須首先結合HL7參考信息模型與病歷自身的特點來分析,進而達到對病歷信息有效覆蓋的同時方便抽取的數據進行結構化存儲.
HL7(Health Level Seven)是由美國國家標準局(ANSI)授權的標準開發機構Health Level Seven INC.(HL7組織)研究開發的一個專門用于醫療衛生機構及醫用儀器、設備數據信息傳輸、存儲以及處理的標準.目前已成為全球各國醫療衛生信息化的重要基礎和關鍵技術.在HL7標準中特別定義了用于數據的存儲與交換的信息表示模型——參考信息模型(RIM),它是結構化的信息規范.這個模型包括屬性(Attributes)、關系(Relationships)、約束(Constraints)和狀態(States).它簡明、完整的定義一套結構和詞匯,用于實現廣泛的臨床場景的信息表達需求.
本文利用自動獲取的模式來抽取的信息是診察信息,該類信息在HL7設置的數據模型中,屬于觀察類表的信息.在該模型中很多類信息都屬于觀察類的信息,包括診察信息、診斷信息、實驗結果、過敏反應以及生理現象.如表1所示的是一個觀察類的實例——病述表.

表1 病述表
在病述表中,除了用來識別表內項的主碼“ID”外,用來描述診察癥狀的項分為:癥狀開始時間、癥狀部位、癥狀描述、程度/頻度和持續時間5個部分.
為了能用機器學習的方法自動完成病歷信息的抽取,還需要對病歷本身的結構和特征有充足的認識.表2所示的是一份有代表性的燙傷病歷的診察信息.

表2 病歷診察信息
診察信息除了在表達方式上具有顯著的醫學領域特征外,與HL7的參考信息模型相比有以下特點:
1)與參考信息模型的數據相比,普通診察信息沒有癥狀開始時間與持續時間2個部分.上述信息在病歷中以病史及入院經過信息出現.病歷中出現的診察信息全部以靜態信息出現,時間默認為病歷生成時間.
2)普通診察信息的表述具有自然語言的特點,信息的表述與參考信息模型的代碼表述相比較復雜.
因此,模式的表達方式經過消減與細分后可分為:對象的修飾、對象、程度/頻度、性質和描述5個部分.根據上述信息特點本文設計了病歷信息的五元組表示形式:<對象修飾,對象,程度,性質,對象描述>.其中對象與描述部位必須出現.而病歷信息抽取模式就是五元組的子集.
另外,由于語言使用的靈活性,五元組中的主體修飾與程度部分的位置也具有一定的靈活性.因此模式格式的定義中各元素的相對位置并不是唯一的.
根據對大量的病歷中診察信息的特征結合HL7參考信息模型的分析,發現診察信息基本上是由主體和描述2部分組成,這部分診察信息本文稱為第1類診察信息(文中沒有明確說明是哪一類的都是指第1類診察信息),通過診察抽取模式對它進行獲取,如“頭痛、面色無華、口干、舌質暗紅、心煩”等.
其中信息的主體是由對象和描述2部分組成,如“頭痛、面色無華、口干”等,本文可以采用二元組來表示:<對象,描述>.
例如,對于語句“右臂前部劇烈腫痛”,經過詞法分析處理后為“右 /f,臂 /n,前部 /f,劇烈 /a,腫/v,痛/a”,采用 <對象,描述 >二元關系模式可以得到特例模式:<臂/n,痛/a>.采用五元組對它進行匹配可得到一個六元組的特例模式:< 右 /f,臂 /n,前部 /f,劇烈 /a,腫 /v,痛 /a >.
五元組中除二元關系外其他3個部分(即主體修飾詞、程度和性質)稱為模式抽取語義類.語義類雖然不是診察信息必須的組成部分,但它們對抽取模式的表示具有非常重要的作用.
1)解決同義詞表述問題,簡化二元關系模板.
2)去掉修飾語中的否定性詞匯,使模板得到統一和簡化,解決語句歧義問題.
3)可以更加精確的對信息進行量化,例如含有修飾詞“無”的癥狀可以量化成0;含有修飾詞“輕微的可以量化成0.5;含有修飾詞“極”、“非常”可以量化成2等等;方便后續數據的轉換、量化分析、數據挖掘.
4)去掉導致模板抽取的錯誤的無效信息.
表3是對語義類的一些應用舉例.本文利用《同義詞詞林》并針對它們在醫學領域的語義特點,設計了病歷信息語義類同義詞林,并用一個對象來替換模板中出現的多個同類詞.這個對象可能為詞組,如“部位”,也可能為各類復合詞組如表示數值的“程度1.5”或者直接刪除.

表3 語義類舉例
二元關系特例模式只能概括生成它的文本,要想使其能概括別的文本片段,則需要對特例模式泛化,生成泛化模式.一般對特例模式進行泛化有2種方法:基于語法的泛化和基于語義的泛化.基于語法的泛化是把特例模式中具有相同語法的對象進行抽象,得到泛化模式;基于語義的泛化是指把多個特例模式中具有相同語義類型的單元進行抽象,得到泛化模式.本文采用語法與語義相結合的泛化方法,進行二元關系泛化和語義類泛化2個階段的處理.
1.2.1 模式的二元關系泛化算法
二元關系泛化的主要目的為:去除否定性詞匯;生成可發現新二元關系的模式.二元關系泛化算法如圖1所示.
例如文本片段“右膝無腫痛”與二元關系“膝痛”進行匹配,找到一個對象類命名實體和一個描述類命名實體.可以生成一個特例模式為:<{右 /adj},{膝 /n},{無 /v},{腫 /v},{痛 /v}>.該特例模式經過二元關系泛化后可得到二元關系泛化模式:<{右 /adj},對象,{腫 /v},描述}>.

圖1 二元關系泛化算法描述圖
1.2.2 模式的語義類泛化算法
由于本文處理的信息具有醫學領域的獨特特性,特別是句法結構比較簡單.易于建立簡單的語義理解規則.因此提出了一個基于規則與語義類表的語義類泛化算法.該算法的主要思想為:利用二元關系泛化模式的對象與描述部位的槽,將模式分割為3部分,分別為:對象前部、對象與描述中間部位和描述后部.將對象前部的全部詞作為對象描述信息,與對象修飾語義類進行比較替換.中間部位的信息的詞集合一定屬于對象修飾類、程度類與性質類構成的總集合的子集,且具有順序性,因此這部分信息按照該順序規則進行匹配替換.描述后部的詞作為程度類信息進行匹配替換.替換后的泛化模式存入模式庫.
語義類泛化算法具體描述如圖2所示.

圖2 語義類泛化算法描述圖
例如將二元關系泛化模式 <{右 /adj},對象,{關節 /n},{腫 /v},描述,{嚴重 /adj}> 按照對象實體和描述實體進行分割,形成3個片段<{右 /adj}>、<{關節/n}{腫 /v}>、<{嚴重/adj}>.分別對其進行語義類泛化并重新組合,生成語義類泛化模式{<部位 >,對象,<部位 >,<性質001>,描述,<程度2>}.
在抽取模式和模式泛化的定義的基礎上,針對診察信息的特點,本文設計了一個基于Bootstrapping算法的模式自動獲取算法,用于獲取病歷信息的二元關系,從而得到該類信息的抽取模式.Bootstrapping算法是一種從自由文本中進行信息抽取實現結構化數據存儲的新的信息抽取模式獲取方法.它不需要預先標注的手工訓練集,只需要以少數數據(種子)和大量的未標注語料為基礎,通過由種子詞產生模式,再由模式產生種子詞的不斷循環迭代,最終產生所需的模式庫.其整體流程如圖3所示.

圖3 Bootstrapping算法流程圖
基于Bootstrapping的模式獲取方法由3個部分組成:
l)初始條件.給定一個醫院病歷文檔集合D={d1,d2,…,dn}、醫學術語庫、語義類庫、詞法分析模塊和人工給初的少量種子二元關系.定義二元關系類別SR=<n,v>,其中:n為文本串中名詞性短語NP的中心詞;v為文本串中修飾n的動詞或形容詞短語的中心詞.
2)Bootstrapping迭代.目標為從D中學習SR的二元關系模式集合P和屬于SR的二元關系集合R.首先利用種子關系檢索病歷文本集合,產生可信度高的新二元關系實例;然后利用新模式去匹配語料集,抽取新的種子關系.由此循環迭代,至達到規定的迭代次數或種子關系不再增加為止.
3)輸出結果.目標詞和用于抽取目標詞的模式.
算法的具體描述如圖4所示.

圖4 Bootstrapping算法描述圖
利用已有的模式庫對病歷中的診察信息進行抽取.問題在于:模式庫中的診察信息抽取模式經過模式的2階段泛化,已經成為抽象的字符串組合.這種組合已經脫離了自然語言的范疇,無法直接用來與診察信息中的語句進行匹配,并抽取相應信息.因此,需要將抽象化的模式與診察信息語句建立對應關系.
算法思想為:二元關系庫中的二元關系既是用來進行模式生成的種子,也是模式抽取的對象.因此,若一條語句能夠被診察信息抽取模式所匹配,則在二元關系庫中至少有一個二元關系能與該語句進行匹配.找出與所要抽取的語句能夠匹配的所有二元關系,從這些二元關系中依次取出二元關系并對待抽取語句調用一次模式泛化算法,獲得的模式與模式庫中的模式進行匹配.算法的流程如圖5所示.

圖5 自動獲取模式的信息抽取算法流程圖
衡量信息抽取系統性能主要根據3個常用的評價指標:召回率R、準確率P和F度量值.對于需要抽取的n個狀態,則評價指標為

式中:ce為對于第i個狀態抽取出的正確信息個數;te為沒有抽取出的正確信息個數;fe為抽取出的錯誤信息個數.
實驗數據采用由長春市市醫院燒傷科提供的312份2005年~2008年間燒傷科住院病歷.本文從中取出30份病歷作為抽取測試數據,其余病歷作為訓練語料.
系統主要包括模式庫建立、信息抽取2個處理部分,總體流程如圖6所示.首先進行語料預處理,根據各個部位相應的關鍵詞提示,如“病人特點”、“查體”、“入院經過”等,將相關信息分類.然后對含有并列詞語句拆分成單句,并對單句進行分詞與詞性標注,本文采用的資源是《新編全醫藥學大辭典》公布的醫學術語庫.最后進行模式自動抽取和結構化轉換處理.

圖6 系統總體流程圖
本文選取的對象詞包括:皮膚、傷口、肩、膝、腺、腹、頭、創面;選取描述詞:腫脹、痛、色、活動和傷口等.組合后生成29個種子二元關系.根據這29個種子二元關系匹配病歷庫,共得到865個特例模式.經過泛化歸并后得到110個泛化模式.然后在這些泛化模式的指導下,對30份病歷進行了測試.實驗數據如表4~表6所示.

表4 種子二元關系舉例
從上述實驗數據可以看出,二元關系達到了較高的準確率與召回率,主要是因為病歷信息相對來說句子結構簡單,沒有長句子,且語法簡單,而且對二元關系的抽取沒有經過語義類泛化,模式比較準確.對性質語義類的抽取得到了較高的召回率.這主要是因為性質的種類較少,易于抽取.但準確率較低,這是由于部分的描述詞前面直接出現程度類詞,而沒有出現性質類詞,導致識別錯誤.

表5 泛化模式舉例

表6 模式抽取實驗結果
對于主體修飾和程度語義類來說,準確率很高,但召回率很低,主要是因為這2類詞匯出現的位置變化比較大,而且出現的種類也比較多,特別是語義類的引入易導致出現識別錯誤.
1)通過對電子病歷文本信息的描述特征的分析,提出了符合HL7標準的五元組抽取模式,并進一步細分為二元關系和語義類2部分,為進一步的模式自動獲取提供了抽取對象和標準的形式化描述.
2)利用基于Bootstrapping算法的模式自動學習技術,實現了診察信息抽取模式的自動學習,并提出了基于模式的電子病歷關鍵信息抽取算法.
3)通過實際住院病歷作為測試數據的實驗表明本文提出的方法可以有效地抽取二元關系模式,并對各種語義類也有較好的識別.
[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]金偉.電子病歷系統的存儲與交換的研究[D].上海:上海交通大學,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,Florida: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]周肖彬,曹存根.基于本體的醫學知識獲取[J].計算機科學.2003,30(10):35-39.
[11]郭玉峰,劉保延,周雪忠.面向中醫臨床科研需求的術語分類框架研究[J].環球中醫藥,2008(2):9-12.