郑丽青 张育嘉 彭剑桥
摘要:本文针对支气管炎电子病历数据,利用改进的基于统计的中文分词算法、粗糙集和决策树理论对数据做了处理;最后采用改进的Apriori算法进行关联分析,实现“数据-信息-知识-价值”的转变过程。
关键词:电子文本病历;反向最大匹配;Apriori;关联规则
中图分类号:TP391.1 文献标识码:A 文章编号:1007-9416(2019)05-0055-02
0 引言
随着医院信息系统(HIS)的普及应用,其产生的大量数据是对医疗活动的真实记录。医疗数据具有海量、多样化、主观性、价值高、实时性的特点,这使得对病历数据的预处理成为了医学数据分析最大的挑战之一。HIS是未来医院发展的必然趋势,电子病历(CPR)作为HIS的一个重要组成部分,逐渐为近年来的研究热点。
文本挖掘是从大量非结构化的数据中提炼出有用的信息和知识的半自动化处理过程。而分词算法的优劣直接决定了中文文本挖掘的效果。目前的研究中,基于词库的算法在中文文本挖掘的分词技术中应用较为广泛。这类算法分词的准确性很大程度上取决于所建的词库。但是该算法可能会漏掉某些具有重要意义的未登录词汇,从而使得到的结果不准确。
文献[3]的作者设计了一种发现文本中所有最长频繁序列的算法,该算法基于“组成一个词的汉字经常在文中以相同的顺序重复出现”的假设。文献[4]根据提取到的词或词组的長度和频数计算它们的权重,根据权重得到关键词或词组。这种算法主要应用于包含较多新词和音译词的中文短文本。
电子病历本身是一种半结构化的数据,其结构化的内容为计算机的自动抽取和分析提供了便利,而非结构化数据的规模远大于结构化数据,并且蕴藏着丰富知识信息,但计算机处理起来也更加困难。文献[5]从词性标注、组块分析和句法分析这三部分研究了针对中文电子病历子语言特征的特殊词法和句法分析模型,并取得了一些初步的研究成果。
关联规则挖掘中,众多算法如Apriori算法和FP-growth算法被广泛应用,并受到了国内外绝大多数人的认可。但是这些算法在实际应用中也逐渐暴露出了一些不足。[6][7]文献[8]提出的改进的Apriori Significance算法允许用户选择进行重点关联规则挖掘的事务集,并且允许用户根据每次关联分析的重点,逐个设定兴趣事务的兴趣因子,并给出了一种综合考虑用户兴趣和事务出现频率的支持度计算方法。
1 研究流程
本文的研究流程如图1所示。
1.1 文本病历数据预处理
数据预处理的基本思路如图2所示。
1.1.1 候选词条数据集生成
由于没有现成的分词词典,因此要先从数据集中选出可能的词汇,生成分词词典。
首先,扫描病历数据集,将每条病历记录中的选定属性用其中全部的非中文字符作为分割符分割成短句,再将全部病历的短句分割结果合并在一起生成短句集。接着扫描短句集,将其中每一条短句的每一个长度介于2和max_size之间的子串找出来,合并成候选词条数据集。
令词条为w,候选词条数据集记为D,则词条wi的支持度为:
式中,|·|表示集合·中元素的个数。[9]
删除候选词条数据集中支持度低于min_sup的项并将相同的词条合并。
1.1.2 词条过滤
按照上述方法得到的候选词条中会有相当一部分的非真实词汇,因此在进行关键词匹配前,要先对非真实词汇进行过滤,以增强匹配的准确度。将候选词条数据集按字符顺序排序,扫描候选词条数据集,找出两个互相包含的词条。
设较长的词条为w1,支持度为sup(w1);较短的词条为w2,支持度为sup(w2);则词条w2相对于w1的置信度为:
当计算出的置信度大于max_conf时,表示词条w2更有可能是真实词汇。因此去除词条w1,保留词条w2;同理,当置信度小于min_conf时,去除词条w2,保留词条w1。当置信度位于min_conf和max_conf之间时,两个词条均保留[10]。将过滤后的词条按照长度进行排序,生成关键词词典。
1.1.3 关键词匹配
要使用中文分词算法进行关键词匹配,需要先对其进行改进。这里以关键词词典作为匹配依据,看病历的每条记录中出现了哪些关键词,并舍弃未匹配成功的字符。
扫描病历数据集,将每条病历数据中的选定属性用其中全部的非中文字符作为分割符分割成一系列的短句。再把每个短句用关键词词典按照改进后的反向最大匹配算法进行关键词匹配:若某病历匹配到了一个词条,则将该病历的该词条的记录值设置为true,否则为false。对病历数据集的每一个病例数据重复上述操作,直到全部病历均被匹配完毕。最后遍历结果集中每一个词条的匹配结果,删除匹配数量少于min_sup的词条及其匹配结果,得到的布尔矩阵就是关键词匹配的结果。
1.1.4 属性约简
属性约简结合了粗糙集和决策树理论的思想,将关键词匹配结果视作知识库,并在保证其分类能力不变的条件下,删除其中不相关或不重要的属性。建立分辨矩阵,求出知识库的约简和核,并对此进行排序,得到数据预处理的最终结果。部分结果如图3所示。
1.2 基于Apriori算法的关联规则分析
基于数据的预处理结果,将疾病的症状对应为布尔变量Vi,每个病人的症状对应为事务Ti,对应结果(部分)如表1所示。根据原始数据得到每条病历的事务表,如表2所示。
在得到的结构化文本中,用Apriori算法挖掘数据的频繁项集。将最小支持度和置信度阈值分别设定为70%和70%,结果如表3所示。可视化结果如图4所示。
依据得出的频繁项集,找出事务间的关联规则。在最小支持度和置信度阈值分别为70%和70%的条件下,生成8条强关联规则。剔除缺乏实用性的仅含一个项目的规则后,最后剩下4条关联规则。可视化结果如图5所示。
2 实验结果分析
本文采用的算法的优点主要有如下几点。首先,关键词词典完全来源于输入数据集,可以保证对数据中包含的新词的收录;通过计算置信度过滤词条,能够屏蔽大量的非真实词汇;将反向最大匹配算法改进,使其适用于关键词匹配;最后使用了粗糙集和决策树理论进行进一步约简,提高了结果的准确度。
通过查阅相关文献可知,挖掘出来的规则基本符合医学研究事实。因此可以将算法进行改进,从而推广并应用于相关领域。
参考文献
[1] 曾勇.基于关联规则的电子病历挖掘的应用研究[D].华南理工大学,2012.
[2] 栗伟.电子病历文本挖掘关键算法研究[D].东北大学,2014.
[3] 胥桂仙,苏筱蔚,陈淑艳.中文文本挖掘中的无词典分词的算法及其应用[J].吉林工学院学报(自然科学版),2002(01):16-18.
[4] 陈伟鹤,刘云.基于词或词组长度和频数的短中文文本关键词提取算法[J].计算机科学,2016,43(12):50-57.
[5] 蒋志鹏.中文电子病历的词法和句法分析研究[D].哈尔滨工业大学,2017.
[6] 曲翠玉,毕建涛.基于Apriori算法的关联规则在疾病诊断中的应用[J].信息与电脑(理论版),2015(16):8-9+11.
[7] 丁卫平,祁恒,董建成,管致锦.基于关联规则的电子病历挖掘算法研究与应用[J].微电子学与计算机,2007(03):69-73+76.
[8] 高军舰.关联规则在呼吸内科诊疗数据中的应用研究[D].青岛科技大学,2014.
[9] 李春葆,李石君,李筱驰.数据仓库与数据挖掘实践[M].北京:电子工业出版社,2014:86.
[10] 傅赛香,袁鼎荣,黄柏雄,钟智.基于统计的无词典分词方法[J].广西科学院学报,2002(04):252-255+264.