鄭麗青 張育嘉 彭劍橋
摘要:本文針對(duì)支氣管炎電子病歷數(shù)據(jù),利用改進(jìn)的基于統(tǒng)計(jì)的中文分詞算法、粗糙集和決策樹理論對(duì)數(shù)據(jù)做了處理;最后采用改進(jìn)的Apriori算法進(jìn)行關(guān)聯(lián)分析,實(shí)現(xiàn)“數(shù)據(jù)-信息-知識(shí)-價(jià)值”的轉(zhuǎn)變過程。
關(guān)鍵詞:電子文本病歷;反向最大匹配;Apriori;關(guān)聯(lián)規(guī)則
中圖分類號(hào):TP391.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)05-0055-02
0 引言
隨著醫(yī)院信息系統(tǒng)(HIS)的普及應(yīng)用,其產(chǎn)生的大量數(shù)據(jù)是對(duì)醫(yī)療活動(dòng)的真實(shí)記錄。醫(yī)療數(shù)據(jù)具有海量、多樣化、主觀性、價(jià)值高、實(shí)時(shí)性的特點(diǎn),這使得對(duì)病歷數(shù)據(jù)的預(yù)處理成為了醫(yī)學(xué)數(shù)據(jù)分析最大的挑戰(zhàn)之一。HIS是未來醫(yī)院發(fā)展的必然趨勢(shì),電子病歷(CPR)作為HIS的一個(gè)重要組成部分,逐漸為近年來的研究熱點(diǎn)。
文本挖掘是從大量非結(jié)構(gòu)化的數(shù)據(jù)中提煉出有用的信息和知識(shí)的半自動(dòng)化處理過程。而分詞算法的優(yōu)劣直接決定了中文文本挖掘的效果。目前的研究中,基于詞庫的算法在中文文本挖掘的分詞技術(shù)中應(yīng)用較為廣泛。這類算法分詞的準(zhǔn)確性很大程度上取決于所建的詞庫。但是該算法可能會(huì)漏掉某些具有重要意義的未登錄詞匯,從而使得到的結(jié)果不準(zhǔn)確。
文獻(xiàn)[3]的作者設(shè)計(jì)了一種發(fā)現(xiàn)文本中所有最長(zhǎng)頻繁序列的算法,該算法基于“組成一個(gè)詞的漢字經(jīng)常在文中以相同的順序重復(fù)出現(xiàn)”的假設(shè)。文獻(xiàn)[4]根據(jù)提取到的詞或詞組的長(zhǎng)度和頻數(shù)計(jì)算它們的權(quán)重,根據(jù)權(quán)重得到關(guān)鍵詞或詞組。這種算法主要應(yīng)用于包含較多新詞和音譯詞的中文短文本。
電子病歷本身是一種半結(jié)構(gòu)化的數(shù)據(jù),其結(jié)構(gòu)化的內(nèi)容為計(jì)算機(jī)的自動(dòng)抽取和分析提供了便利,而非結(jié)構(gòu)化數(shù)據(jù)的規(guī)模遠(yuǎn)大于結(jié)構(gòu)化數(shù)據(jù),并且蘊(yùn)藏著豐富知識(shí)信息,但計(jì)算機(jī)處理起來也更加困難。文獻(xiàn)[5]從詞性標(biāo)注、組塊分析和句法分析這三部分研究了針對(duì)中文電子病歷子語言特征的特殊詞法和句法分析模型,并取得了一些初步的研究成果。
關(guān)聯(lián)規(guī)則挖掘中,眾多算法如Apriori算法和FP-growth算法被廣泛應(yīng)用,并受到了國內(nèi)外絕大多數(shù)人的認(rèn)可。但是這些算法在實(shí)際應(yīng)用中也逐漸暴露出了一些不足。[6][7]文獻(xiàn)[8]提出的改進(jìn)的Apriori Significance算法允許用戶選擇進(jìn)行重點(diǎn)關(guān)聯(lián)規(guī)則挖掘的事務(wù)集,并且允許用戶根據(jù)每次關(guān)聯(lián)分析的重點(diǎn),逐個(gè)設(shè)定興趣事務(wù)的興趣因子,并給出了一種綜合考慮用戶興趣和事務(wù)出現(xiàn)頻率的支持度計(jì)算方法。
1 研究流程
本文的研究流程如圖1所示。
1.1 文本病歷數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理的基本思路如圖2所示。
1.1.1 候選詞條數(shù)據(jù)集生成
由于沒有現(xiàn)成的分詞詞典,因此要先從數(shù)據(jù)集中選出可能的詞匯,生成分詞詞典。
首先,掃描病歷數(shù)據(jù)集,將每條病歷記錄中的選定屬性用其中全部的非中文字符作為分割符分割成短句,再將全部病歷的短句分割結(jié)果合并在一起生成短句集。接著掃描短句集,將其中每一條短句的每一個(gè)長(zhǎng)度介于2和max_size之間的子串找出來,合并成候選詞條數(shù)據(jù)集。
令詞條為w,候選詞條數(shù)據(jù)集記為D,則詞條wi的支持度為:
式中,|·|表示集合·中元素的個(gè)數(shù)。[9]
刪除候選詞條數(shù)據(jù)集中支持度低于min_sup的項(xiàng)并將相同的詞條合并。
1.1.2 詞條過濾
按照上述方法得到的候選詞條中會(huì)有相當(dāng)一部分的非真實(shí)詞匯,因此在進(jìn)行關(guān)鍵詞匹配前,要先對(duì)非真實(shí)詞匯進(jìn)行過濾,以增強(qiáng)匹配的準(zhǔn)確度。將候選詞條數(shù)據(jù)集按字符順序排序,掃描候選詞條數(shù)據(jù)集,找出兩個(gè)互相包含的詞條。
設(shè)較長(zhǎng)的詞條為w1,支持度為sup(w1);較短的詞條為w2,支持度為sup(w2);則詞條w2相對(duì)于w1的置信度為:
當(dāng)計(jì)算出的置信度大于max_conf時(shí),表示詞條w2更有可能是真實(shí)詞匯。因此去除詞條w1,保留詞條w2;同理,當(dāng)置信度小于min_conf時(shí),去除詞條w2,保留詞條w1。當(dāng)置信度位于min_conf和max_conf之間時(shí),兩個(gè)詞條均保留[10]。將過濾后的詞條按照長(zhǎng)度進(jìn)行排序,生成關(guān)鍵詞詞典。
1.1.3 關(guān)鍵詞匹配
要使用中文分詞算法進(jìn)行關(guān)鍵詞匹配,需要先對(duì)其進(jìn)行改進(jìn)。這里以關(guān)鍵詞詞典作為匹配依據(jù),看病歷的每條記錄中出現(xiàn)了哪些關(guān)鍵詞,并舍棄未匹配成功的字符。
掃描病歷數(shù)據(jù)集,將每條病歷數(shù)據(jù)中的選定屬性用其中全部的非中文字符作為分割符分割成一系列的短句。再把每個(gè)短句用關(guān)鍵詞詞典按照改進(jìn)后的反向最大匹配算法進(jìn)行關(guān)鍵詞匹配:若某病歷匹配到了一個(gè)詞條,則將該病歷的該詞條的記錄值設(shè)置為true,否則為false。對(duì)病歷數(shù)據(jù)集的每一個(gè)病例數(shù)據(jù)重復(fù)上述操作,直到全部病歷均被匹配完畢。最后遍歷結(jié)果集中每一個(gè)詞條的匹配結(jié)果,刪除匹配數(shù)量少于min_sup的詞條及其匹配結(jié)果,得到的布爾矩陣就是關(guān)鍵詞匹配的結(jié)果。
1.1.4 屬性約簡(jiǎn)
屬性約簡(jiǎn)結(jié)合了粗糙集和決策樹理論的思想,將關(guān)鍵詞匹配結(jié)果視作知識(shí)庫,并在保證其分類能力不變的條件下,刪除其中不相關(guān)或不重要的屬性。建立分辨矩陣,求出知識(shí)庫的約簡(jiǎn)和核,并對(duì)此進(jìn)行排序,得到數(shù)據(jù)預(yù)處理的最終結(jié)果。部分結(jié)果如圖3所示。
1.2 基于Apriori算法的關(guān)聯(lián)規(guī)則分析
基于數(shù)據(jù)的預(yù)處理結(jié)果,將疾病的癥狀對(duì)應(yīng)為布爾變量Vi,每個(gè)病人的癥狀對(duì)應(yīng)為事務(wù)Ti,對(duì)應(yīng)結(jié)果(部分)如表1所示。根據(jù)原始數(shù)據(jù)得到每條病歷的事務(wù)表,如表2所示。
在得到的結(jié)構(gòu)化文本中,用Apriori算法挖掘數(shù)據(jù)的頻繁項(xiàng)集。將最小支持度和置信度閾值分別設(shè)定為70%和70%,結(jié)果如表3所示??梢暬Y(jié)果如圖4所示。
依據(jù)得出的頻繁項(xiàng)集,找出事務(wù)間的關(guān)聯(lián)規(guī)則。在最小支持度和置信度閾值分別為70%和70%的條件下,生成8條強(qiáng)關(guān)聯(lián)規(guī)則。剔除缺乏實(shí)用性的僅含一個(gè)項(xiàng)目的規(guī)則后,最后剩下4條關(guān)聯(lián)規(guī)則??梢暬Y(jié)果如圖5所示。
2 實(shí)驗(yàn)結(jié)果分析
本文采用的算法的優(yōu)點(diǎn)主要有如下幾點(diǎn)。首先,關(guān)鍵詞詞典完全來源于輸入數(shù)據(jù)集,可以保證對(duì)數(shù)據(jù)中包含的新詞的收錄;通過計(jì)算置信度過濾詞條,能夠屏蔽大量的非真實(shí)詞匯;將反向最大匹配算法改進(jìn),使其適用于關(guān)鍵詞匹配;最后使用了粗糙集和決策樹理論進(jìn)行進(jìn)一步約簡(jiǎn),提高了結(jié)果的準(zhǔn)確度。
通過查閱相關(guān)文獻(xiàn)可知,挖掘出來的規(guī)則基本符合醫(yī)學(xué)研究事實(shí)。因此可以將算法進(jìn)行改進(jìn),從而推廣并應(yīng)用于相關(guān)領(lǐng)域。
參考文獻(xiàn)
[1] 曾勇.基于關(guān)聯(lián)規(guī)則的電子病歷挖掘的應(yīng)用研究[D].華南理工大學(xué),2012.
[2] 栗偉.電子病歷文本挖掘關(guān)鍵算法研究[D].東北大學(xué),2014.
[3] 胥桂仙,蘇筱蔚,陳淑艷.中文文本挖掘中的無詞典分詞的算法及其應(yīng)用[J].吉林工學(xué)院學(xué)報(bào)(自然科學(xué)版),2002(01):16-18.
[4] 陳偉鶴,劉云.基于詞或詞組長(zhǎng)度和頻數(shù)的短中文文本關(guān)鍵詞提取算法[J].計(jì)算機(jī)科學(xué),2016,43(12):50-57.
[5] 蔣志鵬.中文電子病歷的詞法和句法分析研究[D].哈爾濱工業(yè)大學(xué),2017.
[6] 曲翠玉,畢建濤.基于Apriori算法的關(guān)聯(lián)規(guī)則在疾病診斷中的應(yīng)用[J].信息與電腦(理論版),2015(16):8-9+11.
[7] 丁衛(wèi)平,祁恒,董建成,管致錦.基于關(guān)聯(lián)規(guī)則的電子病歷挖掘算法研究與應(yīng)用[J].微電子學(xué)與計(jì)算機(jī),2007(03):69-73+76.
[8] 高軍艦.關(guān)聯(lián)規(guī)則在呼吸內(nèi)科診療數(shù)據(jù)中的應(yīng)用研究[D].青島科技大學(xué),2014.
[9] 李春葆,李石君,李筱馳.數(shù)據(jù)倉庫與數(shù)據(jù)挖掘?qū)嵺`[M].北京:電子工業(yè)出版社,2014:86.
[10] 傅賽香,袁鼎榮,黃柏雄,鐘智.基于統(tǒng)計(jì)的無詞典分詞方法[J].廣西科學(xué)院學(xué)報(bào),2002(04):252-255+264.