平行智能病例推荐模型的建模方法
技术领域
本发明涉及医学数据挖掘技术领域,涉及一种用于辅助诊断的病例推荐模型,具体地说,涉及一种病例推荐模型的建模方法。
背景技术
医生在日常工作中,常常需要根据当前患者的症状参考已有病例的治疗方案。患者的体征数据和检验检查数据共同构成了多维的疾病特征向量,相似病例的搜索意味着从庞大的病例数据库中找到相匹配的特征向量,显然传统的基于关键词的搜索方式无法满足多维特征快速匹配并进行推荐的需求。
另一方面,数据挖掘技术作为数据库知识发现的重要过程,已被广泛应用在诸多领域,例如:电子商务、社交网络、广告推荐、搜索引擎等,通过建立相应的挖掘模型,可以解决现实中的分类、预测、推荐等各类问题。
现有的挖掘模型采用的推荐算法大多数为基于协同过滤的推荐算法,该算法具有以下几个显著的优点:
(1)不需要对物品或者用户进行严格的建模,而且不要求物品的描述是机器可以理解的,因此,该方法与技术领域无关;
(2)该算法计算出来的推荐时开放的,可以共用他人的经验,很好的支持用户发现潜在的兴趣偏好。
同时,基于协同过滤的推荐算法存在的缺点也十分明显,具体表现为:
(1)用户的行为数据存在较大稀疏性,准确性差;
(2)很难对用户新行为进行快速响应,如果要响应用户新的行为记录,就必须重新计算user-user或者item-item相似度矩阵,而这两个矩阵的计算时间复杂度是非常高的,需要遍历整个user-item矩阵;
(3)可扩展性差,由于随着user或者item数量的增大,user-item矩阵不断增大,相似度矩阵也不断增大,最终推荐系统会因为空间不足或者计算时间太长而无法继续使用;
(4)质量取决于历史数据,协同过滤算法依赖的是用例历史行为记录,当历史数据缺乏或者噪声比较大的时候,协同过滤算法就会失效;
(5)由于缺乏充足而准确的历史数据,系统开始时推荐质量差。
发明内容
本发明的目的在于克服现有技术存在的数据准确性差、对用户新行为响应速度慢、模型推荐质量差等上述缺陷和不足,提供了一种平行智能病例推荐模型的建模方法,采用该方法建立的平行智能病例推荐模型用于辅助医师诊断,不仅能够有效解决普通病例的推荐问题,同时也能够有效解决特殊病例的推荐问题。
为了达到上述目的,本发明提供了一种平行智能病例推荐模型的建模方法,含有以下步骤:
步骤1:从电子病例数据库中获取已有的患者病例,对患者病例进行去噪处理后,对患者病例中的检验检查指标数据进行聚类处理,并同时将患者病例中的文本信息进行分词处理,获得患者病例数据,根据获得的患者病例数据建立患者病例语料数据库;
步骤2:定义TFIDFi,j表示一个字或词语在患者病例语料数据库中的一份病例的重要程度,按照下述公式计算TFIDFi,j:
TFIDFi,j=TFi,j×IDFi
式中,TFi,j表示患者病例语料数据库的词频,指一个字或词语在一份病例中出现的频率;IDFi表示患者病例语料数据库的逆向文件频率,指一个字或词语普遍重要性的度量;i表示一份病例中一个语句所在的行,j表示一份病例中一个字或词语所在的列;
根据TFIDFi,j建立LSI向量空间模型;同时根据患者病例语料数据库中的所有字和词语建立BOW词袋模型;
通过LSI向量空间模型和BOW词袋模型计算患者病例语料数据库中的历史病例向量和待处理病例向量;
步骤3:计算患者病例语料数据库中的每一个历史患者病例向量与其他病例向量的余弦相似度,并进行存储;计算待处理病例向量与患者病例语料数据库中历史患者病例向量之间的余弦相似度,根据余弦相似度寻找待处理病例的相似病例,平行智能病例推荐模型建立完成。
ACP平行理论为采用人工社会+计算实验+平行执行的方式将理论与实际相结合,把“虚”和“软”的理论部分建立标准模型,并通过实施的计算化、实时化,使之“硬化”,真正用于解决实际的问题。本发明基于ACP平行理论,通过从电子病例数据库中获取已有的患者病例(即人工社会),建立LSI向量空间模型和BOW词袋模型(即计算实验),根据待处理病例向量与患者病例语料数据库中历史患者病例向量之间的余弦相似度寻找待处理病例的相似病例(即平行执行),从而建立平行智能病例推荐模型,将该方法建立的推荐模型应用到临床中,可以快速给医生提供历史相似病例,作为临床诊断参考,能够有效地减少医生的诊断时间,提高诊断效率。
优选的,步骤1中,去噪处理的方法为:删除无效的信息不全的患者病例。
优选的,步骤1中,对检验检查指标数据进行聚类处理的方法为:根据检验检查指标的正常标准将检验检查指标数据分为至少三个数值区间,按照数值区间对检验检查数据进行分类,并添加数值区间的标签。
优选的,根据检验检查指标的正常标准将检验检查指标数据分为五个数值区间,分别为低数值区间、偏低数值区间、正常数值区间、偏高数值区间、高数值区间。
优选的,步骤1中,对文本信息分词处理的方法为:将句子拆分成词语,并删除停用词,引入word2vec模型进行相似词替换处理,将相似词统一替换为同一词语;所述停用词为与患者病症无关的词语。
优选的,步骤2中,建立LSI向量空间模型的方法为:
将患者病例语料数据库中的所有患者病例表示为一m*n的文档标引项矩阵A,其中m表示所有患者病例中包含的所有不同的关键词个数,n表示患者病例语料数据库中的病例数量,即每一个词对应于矩阵A的一行,每一份病例对应于矩阵A的一列,矩阵A表示为:A=[TFIDFi,j]m*n;
利用奇异值分解计算矩阵A的r秩近似矩阵Ar,r≤min(m,n),经奇异值分解的矩阵A表示为三个矩阵的乘积,即:
A=U*V*VT
式中,U为矩阵A对应的左奇异向量矩阵,V为矩阵A对应的右奇异向量矩阵;
矩阵A的奇异值按递减顺序排列构成对角矩阵W,取W最前面的r个奇异值构成对角矩阵Wr,取U最前面的r列向量构成矩阵Ur,取V最前面的r行向量构成矩阵Vr,构建A的r秩近似矩阵Ar,表示为:
式中,Ur的列向量为关键词向量,每一行表示意思相关的一类词,其中的非零元素表示这一类词中每个词的相关性,数值越大越相关;Vr的行向量为文本向量,每一列分别表示不同病种的病例,其中的每个元素表示本病种中每份病例的相关性;Wr中的每个奇异值表示类词与病例类别之间的相关性,奇异值的个数表示类别空间的维度;
矩阵Ar即LSI向量空间模型。
优选的,步骤2中,TFi,j的计算公式为:
式中,ni,j为一个字或词语在一份病例中的出现次数,k表示一份病例中所有字或词语的个数;
IDFi,j的计算公式为:
式中,|D|为患者病例语料数据库中的文件总数,|{j:ti∈dj}|为包含词语ti的文件数目。
优选的,步骤2中,建立BOW词袋模型的方法为:将患者病例语料数据库中出现的所有词汇去重后进行编号,构成具有n个词汇的历史患者病例词典,分别统计每份病例中所述n个词汇的出现次数,每份病例构成一个n维向量,生成BOW词袋模型。
步骤3中,余弦相似度计算公式表示为:
式中,计算患者病例语料数据库中的每一个历史患者病例向量与其他病例向量的余弦相似度时,xi表示患者病例语料数据库中的一份历史患者病例向量,yi表示患者病例语料数据库中的其他任意一份历史患者病例向量;计算待处理病例向量与患者病例语料数据库中历史患者病例向量之间的余弦相似度时,xi表示待处理病例的向量,yi表示患者病例语料数据库中的任意一份历史患者病例向量。
优选的,步骤3中,对患者病例语料数据库中的每一个历史患者病例向量与其他病例向量的余弦相似度进行存储时,以网状结构存储,网状结构中的每个节点为一份病例,每个节点之间的连接为两个病例的相似度。
与现有技术相比,本发明的有益效果在于:
(1)本发明建模方法,引入ACP平行理论创建一个多对多,虚实互动、互生、互存的平行环境,引入LSI向量空间模型和BOW词袋模型,预先对历史患者病例进行处理,按照病种分类,获取历史病例向量和待处理病例向量,待处理病例只计算相似病种病例,大大提高了计算效率,避免了待处理病例全部计算所有历史患者病种病例存在的耗时很长的问题,将本发明建模方法建立的推荐模型应用到临床医学中,能够帮助医生快速找到相似病例,识别患者病情描述语义及目的,借鉴以前的相似病例诊断结果及处方做出相应的处理,减少患者及医生的诊断诊疗时间,提高医生的工作效率,同时还能够有效解决不同医生的书写病例的习惯问题。
(2)本发明建模方法采集电子病历数据库中的已有患者病例,并进行去噪、聚类、分词处理,建立患者病例语料数据库,新建立的语料数据库中病例数据充足,病例语料的准确性高,LSI向量空间模型和BOW词袋模型的建立均基于新建立的语料数据库的数据,因此采用本发明建模方法建立的平行智能病例推荐模型的误差小,推荐结果质量高。
(3)本发明建模方法由于引入LSI向量空间模型,经LSI向量空间模型处理后的文本集向量空间中每一维的含义发生了很大的变化,能够反映的不仅是词条的简单出现频率和分布关系,而是强化的语义关系,通过LSI向量空间模型计算的历史病例向量和待处理病例向量的准确性高;由于文本集向量空间的维数大大降低,能够有效提高文本集的聚类速度。LSI模型通过奇异值分解和取r秩近似矩阵,一方面消减了原文档标引项矩阵中包含的“噪声”因素,从而更加突出了词和文本之间的语义关系;另一方得词和文本向量空间大大缩减,提高了文本聚类的效率。
(4)本发明建模方法引入BOW词袋模型,该模型忽略掉文本的语法和语序等因素,经文本仅仅看做是若干个词汇的集合,文档中每个字或词语的出现都是独立的,在进行计算时,一个字或词语用一个向量来描述,计算相似度时效率将大大提高。
(5)本法发明建模方法对计算的历史病例向量件的余弦相似度以网状结构进行存储,每个节点为一份病例,预先对历史患者病例按照病种分类,待处理病例只计算相似病种病例,由于病例采用网状结构,能够快速给出其他病种的可能相似病例作为前者的补充。
附图说明
附图1为本发明实施例建模方法的流程图。
具体实施方式
下面,通过示例性的实施方式对本发明进行具体描述。
参见图1,一种平行智能病例推荐模型的建模方法,含有以下步骤:
步骤1:从电子病例数据库中获取已有的患者病例,对患者病例进行去噪处理,删除无效的信息不全的患者病例,对患者病例中的检验检查指标数据进行聚类处理,并同时将患者病例中的文本信息进行分词处理,获得患者病例数据,根据获得的患者病例数据建立患者病例语料数据库;
对检验检查指标数据进行聚类处理的方法为:根据检验检查指标的正常标准将检验检查指标数据分为至少三个数值区间,按照数值区间对检验检查数据进行分类,并添加数值区间的标签。
对文本信息分词处理的方法为:将句子拆分成词语,并删除停用词,引入word2vec模型进行相似词替换处理,将相似词统一替换为同一词语,比如:“发烧”替换为“发热”;所述停用词为与患者病症无关的词语,比如:的、这个、这里等字或词语。
步骤2:定义TFIDFi,j表示一个字或词语在患者病例语料数据库中的一份病例的重要程度,按照下述公式计算TFIDFi,j:
TFIDFi,j=TFi,j×IDFi
式中,TFi,j表示患者病例语料数据库的词频,指一个字或词语在一份病例中出现的频率;IDFi表示患者病例语料数据库的逆向文件频率,指一个字或词语普遍重要性的度量;i表示一份病例中一个语句所在的行,j表示一份病例中一个字或词语所在的列;
TFi,j的计算公式为:
式中,ni,j为一个字或词语在一份病例中的出现次数,k表示一份病例中所有字或词语的个数;
IDFi,j的计算公式为:
式中,|D|为患者病例语料数据库中的文件总数,|{j:ti∈dj}|为包含词语ti的文件数目。
根据TFIDFi,j建立LSI向量空间模型,其具体建立方法为:
将患者病例语料数据库中的所有患者病例表示为一m*n的文档标引项矩阵A,其中m表示所有患者病例中包含的所有不同的关键词个数,n表示患者病例语料数据库中的病例数量,即每一个词对应于矩阵A的一行,每一份病例对应于矩阵A的一列,矩阵A表示为:A=[TFIDFi,j]m*n;
利用奇异值分解计算矩阵A的r秩近似矩阵Ar,r≤min(m,n),经奇异值分解的矩阵A表示为三个矩阵的乘积,即:
A=U*V*VT
式中,U为矩阵A对应的左奇异向量矩阵,V为矩阵A对应的右奇异向量矩阵;
矩阵A的奇异值按递减顺序排列构成对角矩阵W,取W最前面的r个奇异值构成对角矩阵Wr,取U最前面的r列向量构成矩阵Ur,取V最前面的r行向量构成矩阵Vr,构建A的r秩近似矩阵Ar,表示为:
式中,Ur的列向量为关键词向量,每一行表示意思相关的一类词,其中的非零元素表示这一类词中每个词的相关性,数值越大越相关;Vr的行向量为文本向量,每一列分别表示不同病种的病例,其中的每个元素表示本病种中每份病例的相关性;Wr中的每个奇异值表示类词与病例类别之间的相关性,奇异值的个数表示类别空间的维度;
矩阵Ar即LSI向量空间模型。
同时根据患者病例语料数据库中的所有字和词语建立BOW词袋模型,其具体建立方法为:将患者病例语料数据库中出现的所有词汇去重后进行编号,构成具有n个词汇的历史患者病例词典,分别统计每份病例中所述n个词汇的出现次数,每份病例构成一个n维向量,生成BOW词袋模型。
通过LSI向量空间模型和BOW词袋模型计算患者病例语料数据库中的历史病例向量和待处理病例向量。也就是说,LSI向量空间模型和BOW词袋模型计算历史病例向量和待处理病例向量时,是由LSI向量空间模型和BOW词袋模型两个模型本身的算法进行计算的。
步骤3:计算患者病例语料数据库中的每一个历史患者病例向量与其他病例向量的余弦相似度,并进行存储;计算待处理病例向量与患者病例语料数据库中历史患者病例向量之间的余弦相似度。余弦相似度计算公式表示为:
式中,计算患者病例语料数据库中的每一个历史患者病例向量与其他病例向量的余弦相似度时,xi表示患者病例语料数据库中的一份历史患者病例向量,yi表示患者病例语料数据库中的其他任意一份历史患者病例向量;计算待处理病例向量与患者病例语料数据库中历史患者病例向量之间的余弦相似度时,xi表示待处理病例的向量,yi表示患者病例语料数据库中的任意一份历史患者病例向量。
根据余弦相似度寻找待处理病例的相似病例,平行智能病例推荐模型建立完成。具体的说,在待处理病例在患者病例语料数据库中寻找相似病例时,待处理病例只计算与相似病种病例之间的余弦相似度,根据余弦值的大小判定哪份历史患者病例与待处理病例最为相似,余弦值越接近于1,它们的方向更加吻合,则越相似,找到相似病例后,对该相似病例的诊断及处方信息进行抽取,并进行推荐,作为待处理病例的参考。
医生根据推荐的相似病例的诊断结果及处方快速对待处理病例进行诊断治疗,减少患者于医生的诊断诊疗时间,提供医疗单位的工作效率。
由于不同病种的检验检查指标不同,在构建患者病例语料数据库,可以根据患者病种的不同将检验检查指标分为不同的数值区间。比如:针对一般病种,根据检验检查指标的正常标准将检验检查指标数据分为三个数值区间,分别为低数值区间、正常区间、高数值区间;针对一些特殊病种,例如高血压,根据检验检查指标的正常标准将检验检查指标数据分为六个数值区间,分别为正常数值区间、正常高值数值区间、轻高数值区间、中高数值区间、重高数值区间。
为了便于待处理病例计算相似病种病例,在本发明一优选实施例中,步骤3中,对患者病例语料数据库中的每一个历史患者病例向量与其他病例向量的余弦相似度进行存储时,以网状结构存储,网状结构中的每个节点为一份病例,每个节点之间的连接为两个病例的相似度。由于病例采用网状结构进行存储,在待处理病例计算相似病种病例时,可以快速的给出其他病症的可能相似病例作为补充。
以下以某种疾病患者为例,对本发明上述建模方法建立的模型进行相似病例推荐进行说明。
获取的初始病例,初始病例参见表1。
表1
去除残缺数据,检验数据分类添加标签(比如:正常、高、低、偏高、偏低),处理后的病例参见表2。
表2
分词,并删除停用词,处理后的病例参见表3。
表3
表3中“——”代表“无”,即没有词语。
引入word2vec模型,进行相似词替换处理,输入“发热”,词语相似度参见表4。
表4
相似词 |
相似度 |
发烧 |
0.728452920914 |
发烫 |
0.64986795187 |
高热 |
0.613105535507 |
忽冷忽热 |
0.60539072752 |
低热 |
0.573568940163 |
恶寒 |
0.573489785194 |
燥热 |
0.571215212345 |
不热 |
0.559700846672 |
发低烧 |
0.524637818336 |
热 |
0.522582292557 |
人工挑选出相似词“发烧”进行替换处理。处理后的病例参见表5。
表5
计算TFIDFi,j,TFIDFi,j的计算值参见表6。
表6
建立建立LSI向量空间模型和BOW词袋模型。
(1)创建词典
词汇表参见表7。
表7
(2)生成词袋矩阵
(3)奇异值分解求V矩阵
计算余弦相似度,求病例1与其它病例的余弦相似度。
由余弦相似度可知,病例2与病例1最相似,可以作为病例1患者的参考,医生可以借鉴病例2的诊断结果及处方做出相应的处理,减少患者及医生的诊断诊疗时间,提高医生的工作效率。
上述实施例用来解释本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改和改变,都落入本发明的保护范围。