童 剛,姜 寧,劉 煥
(青島科技大學 信息科學技術學院,山東 青島 266061)
數據挖掘是指從大量的數據中通過算法搜索其中重要信息的過程。在醫學中,醫療診斷的方法及選擇模式尤其重要,將數據挖掘技術應用在此便于醫生對疾病進行診斷,從而在醫療科研方面提供了科學依據[1]。隨著醫療信息系統的發展,醫院的數據庫信息在醫療分類診斷上變得更加重要,如何有效利用這些信息進行分類挖掘是很多研究者的工作重心。冠心病是目前威脅人類身體健康的一項重大疾病,利用當今流行的數據挖掘技術提煉出冠心病積累的臨床信息資料中的有用信息,并通過神經網絡算法進行分類診斷,診斷的精確率已經高達90%[2]。除此之外,在其他相關疾病診斷中,此類技術的應用也達到了預期效果。Chen等[3]在提取規則方面,運用了決策樹算法,然后采用CBR技術修改過往問題的解決流程,并應用到腫瘤疾病的新情況中進行診斷。Murate等[4]將神經網絡算法及支持向量機算法應用在早期前列腺疾病的診斷中。Anand等[5]在疾病的診斷分類中,將病人的醫學數據通過混合人工神經網絡進行分析,在分類精度上有所提高。Huang Z等[6]提出了增強迭代次數的分類算法,對處理急性冠脈綜合征患者心臟不良事件失衡問題有顯著效果。肖勤[7]在建立乳腺X線分類模型上選用決策樹算法,在分類診斷上取得了很好的效果。Feng等[8]在慢性胃炎中的分類診斷中應用了信息熵決策樹算法。劉綠[9]將一些分類算法進行了性能對比,結果顯示決策樹的綜合性能最佳。許騰[10]在甲狀腺疾病的分析研究中,將紋理及超聲圖像進行了融合運用。于霄[11]創建了基于分類算法的醫療服務系統,并彌補了決策樹本身存在的過擬合問題。
電子病歷中包含的醫療信息十分豐富。對其數據的有效處理和利用,是一項非常有意義的工作。通過數據預處理等[12]可部分消除數據中的噪聲和不完整性,實現數據的規范化和有效壓縮,從而使數據的再處理更加有效。最終將非結構化的電子病歷文本數據轉換成可直接挖掘利用的結構化數據。在電子病歷中,病程記錄是其重要組成部分,病程記錄中包含了大量可供挖掘的患者就診信息及過往病史信息,因此病程記錄可以作為數據抽取的關鍵。首次病程記錄的內容結構如圖1所示。

圖1 首次病程記錄的內容結構
數據抽取又叫信息抽取,是數據預處理技術中的關鍵?;谀壳暗膶嶓w抽取模型的優劣性并結合研究數據的特點,文中采用了基于條件隨機場的多特征融合的醫療實體識別方法[13-14]。具體識別流程如圖2所示。
如圖2所示,首先將原始語料庫進行相應的中文分詞和標注處理后,變為訓練語料,再將訓練語料分詞進行同樣的處理形成訓練模型。其次將測試語料輸入到訓練模型中進行實體識別。最后將識別后形成的結果按照一定的方法規則進行評測,得到評測結果來檢驗整體模型的科學性。

圖2 基于條件隨機場的實體識別方法框架
中文分詞被視為最基礎的問題,中文分詞常用的方法有三種:基于詞典的分詞、基于統計的分詞、基于理解的分詞。根據電子病歷中醫療術語較多的特點,采用基于詞典的分詞算法[15],即將分字符串中的詞,按照一定的標準和規則與詞典中的詞進行比對,若可以在詞典中找到該字符串,則匹配成功。若找不到,則按照一定的算法策略繼續匹配?;谠~典的分詞算法中逆向最大匹配法的分詞精確率較高,缺點是分詞速度較慢[16]。為解決這個問題,結合電子病歷數據的表達特點提出了改進后的逆向最大匹配算法,在分詞速度上有明顯提高。
逆向最大匹配算法的思想如下:事先設置一個n值,然后從最后一個字開始向前截取n個字,先把這n個字與詞典進行匹配,看能否找到匹配的詞語,若匹配成功,即識別出一個詞。若不能,則刪除這n個字最左邊的字,然后再把這n-1個字與詞典繼續匹配直到匹配成功,或者前n-1個字都沒匹配成功,那就把第n個字當成一個獨立的詞,然后再向前移動分出來的詞的長度,再截取n個字直到全部分好詞為止。
改進后的算法思想:
(1)將分字符串中的詞A與詞典中的詞B進行對比,如果詞典B中沒有A,則選擇逆向最大匹配法進行分詞。
(2)如果詞典B中有A,將A前后位置的詞分別與A進行組詞,將新組成的分詞與詞典B進行比對:若有一個存在于詞典B中,將A和新匹配的詞一起作為一個分詞,并在此處將字符串分為兩段,最后再利用逆向最大匹配算法將這兩段進行分詞;若兩個詞都存在于詞典B中,采用最大概率分詞法進行確定;若在詞典B中兩個詞均無法找到,那么以A為切點將字符串分成前后兩段,再采用逆向最大匹配算法進行分詞。
改進后的算法流程如圖3所示。

圖3 改進后的逆向最大匹配算法流程
電子病歷的語言表達中會有很多單用詞如“和”“到”“若”“及”等,對這些單用詞進行切分,不僅提高了分詞效率和準確率,還不影響最終結果。因此將類似的這類單用詞組建成一個新的詞典,同時找出一些癥狀專有名詞和疾病判斷詞也放入新詞典中。最后判斷待分字符串中是否有新詞典中的詞,若有則在此處分詞,對切分后的每個詞,再繼續分詞。利用傳統的逆向最大匹配算法及改進后逆向最大匹配算法分別對電子病歷部分內容進行分詞的對比結果如表1所示。

表1 逆向最大匹配算法改進前后分詞結果比對
利用數據抽取中常用的P值、R值、F值三個評價指標加上分詞速度對實驗結果進行對比評測[17],評測結果如表2所示。

表2 逆向最大匹配算法改進前后性能比對
按照改進之后的逆向最大匹配分詞法對電子病歷分詞后,經過標注處理及相應的特征選擇后,得到初步的數據抽取結果,再對其進行數據清理、數據變換、數據歸約等操作完成整個的數據預處理,圖4為預處理之后的部分截圖。

圖4 預處理之后的腫瘤疾病數據集部分截圖
挖掘實驗過程中的關鍵問題在于挖掘算法的選取,針對醫療數據自身的獨特性,篩選出合適的算法進而實現輔助診斷變得更加重要。然而不同的數據挖掘算法具有不同的特性[18],通過其特性對比發現,在分類選取方面,C4.5算法和BP神經網絡效果最佳[19]。C4.5算法的基點是ID3算法,具備ID3算法的優點,在屬性選擇上用信息增益率進行選擇,由于屬性選擇時會優先選擇取值多的屬性,C4.5算法有效解決了這類問題。不僅可以將連續屬性離散化處理,還能夠處理一些不完整數據。BP神經網絡的主要特點是信號和誤差按照相反方向進行傳播。信號傳播過程中,信號從輸入層進入隱藏層,最后到達輸出層,下一層的信號狀態只由上一層影響。如果最后輸出的信號并不是期望信號,則進入誤差的反向傳播過程。再根據誤差進行調整權值和偏向,最后使得輸出信號不斷逼近期望輸出。因此BP神經網絡具有高度自學習和自適應的能力。下面對這兩種算法進行分類挖掘實驗。
預處理后得到的數據集使用C4.5算法進行挖掘實驗,采用十折交叉驗證法測試算法的準確性[20]。
運行結果如圖5所示。

圖5 C4.5算法疾病分類效果
實驗結果表明,C4.5算法分類結果性能:分類正確率約為86%,錯誤率約為14%,建模時間為129 s。
BP神經網絡算法具有實現任何復雜非線性映射的功能且可以進行復雜的數學運算[21]。它還具有一定的推廣、概括、自學習等能力。在實際應用中,多數神經網絡模型都采用BP神經網絡的變化形式,在分類挖掘應用方面有較好的實驗效果。運行結果如圖6所示。

圖6 BP神經網絡算法疾病分類效果
由以上效果圖可以看到BP神經網絡算法的分類精確率約為88%,錯誤率約為12%,建模時間為398 s。
C4.5與BP神經網絡在腫瘤病歷數據上的實驗對比如表3所示。

表3 分類實驗精度性能對比
通過以上分析可以得出結論,BP神經網絡算法在分類的精確率上略高于C4.5算法,但是其運行時間效率要比C4.5算法慢3倍。綜合來看,兩種算法的精確率相差較小,但是C4.5算法的運算效率卻遠遠超過BP神經網絡算法,因此C4.5算法具有較高的綜合性能,更適用于腫瘤電子病歷的分類挖掘。
腫瘤電子病歷挖掘過程中包含兩個重要環節:中文分詞及算法選取,針對中文分詞,文中結合腫瘤電子病歷的表達特點,采用了一種基于特定字詞切分的方法對最大逆向匹配分詞算法進行改進。實驗結果表明,改進后的算法不僅提高了分詞效率同時在分詞精確度上也有明顯提高。在算法選取階段,對比了分類領域中性能較高的兩種算法:C4.5和BP神經網絡算法,經對比之后發現C4.5算法的綜合性能要高于BP神經網絡,因此選用C4.5算法作為腫瘤電子病歷的分類挖掘算法。通過以上研究,可以實現利用數據挖掘技術輔助醫生進行疾病診斷的目的,能夠提高腫瘤疾病診斷的精確率及效率,進而提高腫瘤疾病的治愈率。