一种基于症状分析和机器学习的用药推荐系统和方法
【专利摘要】本发明公开一种基于症状匹配和机器学习的用药推荐系统和方法,其中系统包括:数据库模块,用于保存和更新疾病-症候表以及药物-疾病-症状关联表;用户交互模块,用于接收用户选择或输入的患者疾病类型;权重排序模块,用于从疾病-症状表中查询患者疾病类型对应的症状集合,计算症状集合中每个症状的权重,按照权重的大小对症状集合的症状排序,将排序结果提供给用户;匹配度计算模块,用于从药物-疾病-症状关联表中获取疾病名称为患者疾病类型的数据,计算该数据中每种药物与症状组合的匹配度;用药推荐模块,用于按照匹配度的大小对匹配度大于设定值H的药物排序,从药品详细说明库中取前R个药物的信息推荐给用户,H、R为设定的常数。
【专利说明】一种基于症状分析和机器学习的用药推荐系统和方法
【技术领域】
[0001]本发明涉及医药领域,具体而言,涉及一种基于症状分析和机器学习的用药推荐系统和方法。
【背景技术】
[0002]以下首先介绍本发明中用到的医学术语:
[0003]疾病:是致病邪气作用于人体,人体正气与之抗争而引起的机体阴阳失调、脏腑组织损伤、生理机能失常或心理活动障碍的一个完整的生命过程。
[0004]症状:是疾病过程中表现出的个别、孤立的现象,可以是病人异常的主观感觉或行为表现,也可以是医生检查病人时发现的异常征象。
[0005]药物:是指可以暂时或永久改变或查明机体的生理功能及病理状态,具有医疗、诊断、预防疾病和保健作用的物质。包括天然药物、化学合成药物以及生物制剂等。
[0006]适应症:药物适用于治疗的疾病集合。
[0007]主治:药物对机体产生的治疗、诊断、预防疾病和保健等作用的概括性描述。
[0008]随着信息化程度的日益提高,人们已经可以通过各种信息终端获取医疗信息,但如何根据已知的症状提供给用户准确的用药信息仍是一个亟需解决的问题。
【发明内容】
[0009]本发明提供一种基于症状分析和机器学习的用药推荐系统和方法,用以为用户提供准确的用药信息。
[0010]为达到上述目的,本发明提供了一种基于症状分析和机器学习的用药推荐系统,包括:
[0011 ] 数据库模块,用于保存和更新疾病-症候表以及药物-疾病-症状关联表,其中,所述疾病-症候表中保存有已知的每种疾病对应的症状,所述药物-疾病-症状关联表中的每条数据记录包括药物ID、疾病名称、症状名称、评分次数和总评分;
[0012]用户交互模块,用于接收用户选择或输入的患者疾病类型;
[0013]权重排序模块,用于从疾病-症状表中查询所述患者疾病类型对应的症状集合,计算所述症状集合中每个症状的权重,按照权重的大小对所述症状集合的症状排序,并将排序结果提供给用户;
[0014]所述用户交互模块还用于接收用户从所述权重排序模块提供的排序结果中选择一组症状组合;
[0015]匹配度计算模块,用于从药物-疾病-症状关联表中获取疾病名称为所述患者疾病类型的数据,计算该数据中每种药物与所述症状组合的匹配度;
[0016]用药推荐模块,用于按照匹配度的大小对匹配度大于设定值H的药物进行排序,并从药品详细说明库中提取前R个药物的信息推荐给用户,其中,H、R为预先设定的常数;
[0017]用户反馈模块,用于接收用户对推荐结果的评分反馈,假设用户对药物M的评分为μ,则对于所述药物-疾病-症状关联表中的每条数据记录r = (a, b, c, d),如果满足a==Mid且b == D且Ce S,则将d增加I^e增加μ ,其中,a、b、C、d、e分别表示数据记录r的药物ID、疾病名称、症状名称、评分次数和总评分I为用户选择的症状组合。
[0018]进一步地,上述用药推荐系统还包括:
[0019]疾病-症状表构建模块,用于构建疾病-症状表,具体包括:
[0020]根据每一种疾病对应的症状集合以及每一症状在对应疾病中的初始权重,构建疾病-症状表,所述疾病-症状表中的每一条数据包括疾病名称、症状名称、初始权重以及用户选中次数。
[0021]进一步地,上述用药推荐系统还包括:
[0022]药物信息构建模块,用于构建药物详细说明库和药物-疾病-症状关联表,具体包括:
[0023]对于每一种新增药物,将药物详细信息添加到药物详细说明库,所述药物详细说明库以药物ID为索引,每条数据包括药物的名称、适应症、功用主治、用法用量、不良反应、禁忌、注意事项、减方法和有效期;
[0024]分析新增药物的适应症和功用主治,将新增药物的“药物、疾病、症状”关联信息添加到药物-疾病-症状关联表中,所述药物-疾病-症状关联表的每一条数据记录包含药物ID、疾病名称、症状名称、评分次数和总评分。
[0025]进一步地,所述权重排序模块包括:
[0026]权重计算单元,用于计算所述症状集合中每个症状的权重,具体包括:
[0027]假设从所述疾病-症状表中查询到疾病D对应的症状集合S = [Sl, S2,…,Sn],计算症状集合S中每个症状的权重W(Si)
—— I + Pis )
[0028]IV(S ) -
4 + / (Sy )
[0029]其中,r(s,)表示症状Si的初始权重,P(Si)表示症状Si的选中次数。
[0030]进一步地,所述匹配度计算模块计算该数据中每种药物与所述症状组合的匹配度具体包括:
[0031]假设用户选择的症状组合5 = [&,&,...,?],在所述疾病-症状关联表中将;^内每个症状的选中次数加I ;
[0032]从所述药物-疾病-症状关联表中取出疾病名称为D的数据,计算每种药物M的匹配度P(M)
[0033]
SnV(M,Df ,、办
ψ{Μ)=\8\.\ν{Μ,Β)\.(1 切.))
[0034]其中,V(M,D)表示药物M与疾病D有关的症状集合=+ 1 ;IxI表示集合X中的元素个数;α、β为[0,I]之间的常数,通过训练样本进行选择。
[0035]为达到上述目的,本发明还提供了一种基于症状分析和机器学习的用药推荐方法,包括以下步骤:
[0036]接收用户选择或输入的患者疾病类型;
[0037]从疾病-症状表中查询所述患者疾病类型对应的症状集合,计算所述症状集合中每个症状的权重,按照权重的大小对所述症状集合的症状排序,并将排序结果提供给用户,其中所述疾病-症候表中保存有已知的每种疾病对应的症状;
[0038]接收用户从所述排序结果中选择一组症状组合,从药物-疾病-症状关联表中获取疾病名称为所述患者疾病类型的数据,计算该数据中每种药物与所述症状组合的匹配度;
[0039]按照匹配度的大小对匹配度大于设定值H的药物进行排序,并从药品详细说明库中提取前R个药物的信息推荐给用户,其中,H、R为预先设定的常数;
[0040]接收用户对推荐结果的评分反馈,假设用户对药物M的评分为μ,则对于所述药物-疾病-症状关联表中的每条数据记录r = (a, b, c, d),如果满足a==MID且b==D且Ce I ,则将d增加1,将e增加μ,其中,a、b、c、d、e分别表示数据记录r的药物ID、疾病名称、症状名称、评分次数和总评分,]为用户选择的症状组合。
[0041]进一步地,在接收用户选择或输入的患者疾病类型步骤之前还包括以下步骤:
[0042]构建疾病-症状表,具体包括:
[0043]根据每一种疾病对应的症状集合以及每一症状在对应疾病中的初始权重,构建疾病-症状表,所述疾病-症状表中的每一条数据包括疾病名称、症状名称、初始权重以及用户选中次数。
[0044]进一步地,在接收用户选择或输入的患者疾病类型步骤之前还包括以下步骤:
[0045]构建药物详细说明库和药物-疾病-症状关联表,具体包括:
[0046]对于每一种新增药物,将药物详细信息添加到药物详细说明库,所述药物详细说明库以药物ID为索引,每条数据包括药物的名称、适应症、功用主治、用法用量、不良反应、禁忌、注意事项、减方法和有效期;
[0047]分析新增药物的适应症和功用主治,将新增药物的“药物、疾病、症状”关联信息添加到药物-疾病-症状关联表中,所述药物-疾病-症状关联表的每一条数据记录包含药物ID、疾病名称、症状名称、评分次数和总评分。
[0048]进一步地,所述计算所述症状集合中每个症状的权重步骤包括:
[0049]假设从所述疾病-症状表中查询到疾病D对应的症状集合S = [Sl, S2,…,Sn],计算症状集合S中每个症状的权重W(Si)
[0050]W(s,) = ) ■ 'τ/(8/)
2+P(Si)
[0051]其中,W(Si)表示症状Si的初始权重,P(Si)表示症状Si的选中次数。
[0052]进一步地,所述计算该数据中每种药物与所述症状组合的匹配度步骤包括:
[0053]假设用户选择的症状组合5 = 7.,V;],在所述疾病-症状关联表中将^内每个症状的选中次数加I ;
[0054]从所述药物-疾病-症状关联表中取出疾病名称为D的数据,计算每种药物M的匹配度炉(M)
[0055]
” } |?S|.|K(M,£>)| v a ”
[0056]其中,V(M, D)表示药物M与疾病D有关的症状集合;=;
IxI表示集合X中的元素个数;α、β为[0,I]之间的常数,通过训练样本进行选择。
[0057]本发明将用户提供的疾病类型及一组症状与系统中已收录的对应该疾病及症状的药物结构化信息进行匹配,通过计算匹配程度而自动推荐用药信息,从而向用户提供有价值的用药参考。
【专利附图】
【附图说明】
[0058]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0059]图1为本发明一个实施例的基于症状匹配和机器学习的用药推荐系统模块图;
[0060]图2为本发明一个优选实施例的基于症状匹配和机器学习的用药推荐系统工作原理图。
【具体实施方式】
[0061]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0062]图1为本发明一个实施例的基于症状匹配和机器学习的用药推荐系统模块图;图2为本发明一个优选实施例的基于症状匹配和机器学习的用药推荐系统工作原理图。如图所示,该用药推荐系统包括:
[0063]数据库模块,用于保存和更新疾病-症候表以及药物-疾病-症状关联表,其中,疾病-症候表中保存有已知的每种疾病对应的症状,药物-疾病-症状关联表中的每条数据记录包括药物ID、疾病名称、评分次数和总评分;
[0064]用户交互模块,用于接收用户选择或输入的患者疾病类型;
[0065]权重排序模块,用于从疾病-症状表中查询患者疾病类型对应的症状集合,计算症状集合中每个症状的权重,按照权重的大小对症状集合的症状排序,并将排序结果提供给用户;
[0066]用户交互模块还用于接收用户从权重排序模块提供的排序结果中选择一组症状组合;
[0067]匹配度计算模块,用于从药物-疾病-症状关联表中获取疾病名称为患者疾病类型的数据,计算该数据中每种药物与症状组合的匹配度;
[0068]用药推荐模块,用于按照匹配度的大小对匹配度大于设定值H的药物进行排序,并从药品详细说明库中提取前R个药物的信息推荐给用户,其中,H、R为预先设定的常数;
[0069]用户反馈模块,用于接收用户对推荐结果的评分反馈,假设用户对药物M的评分为μ,则对于药物-疾病-症状关联表中的每条数据记录r = (a, b, C,d),如果满足a ==Mid且b = = D且Ce S' ,则将d增加I,将e增加μ ,其中,a、b、C、d、e分别表示数据记录r
的药物ID、疾病名称、症状名称、评分次数和总评分,及为用户选择的症状组合。
[0070]进一步地,上述用药推荐系统还包括:
[0071]疾病-症状表构建模块,用于构建疾病-症状表,具体包括:
[0072]根据每一种疾病对应的症状集合以及每一症状在对应疾病中的初始权重,构建疾病-症状表,疾病-症状表中的每一条数据包括疾病名称、症状名称、初始权重以及用户选中次数。
[0073]进一步地,上述用药推荐系统还包括:
[0074]药物信息构建模块,用于构建药物详细说明库和药物-疾病-症状关联表,具体包括:
[0075]对于每一种新增药物,将药物详细信息添加到药物详细说明库,药物详细说明库以药物ID为索引,每条数据包括药物的名称、适应症、功用主治、用法用量、不良反应、禁忌、注意事项、贮藏方法和有效期;
[0076]分析新增药物的适应症和功用主治,将新增药物的“药物、疾病、症状”关联信息添加到药物-疾病-症状关联表中,药物-疾病-症状关联表的每一条数据记录包含药物ID、疾病名称、症状名称、评分次数和总评分。
[0077]进一步地,权重排序模块包括:
[0078]权重计算单元,用于计算症状集合中每个症状的权重,具体包括:
[0079]假设从疾病-症状表中查询到疾病D对应的症状集合S = [Sl, S2,…,Sn],计算症状集合S中每个症状的权重W(Si)
— I + Pis )
[0080]
■Z + / (S, )
[0081]其中,W^S,)表示症状Si的初始权重,P(Si)表示症状Si的选中次数。
[0082]进一步地,匹配度计算模块计算该数据中每种药物与症状组合的匹配度具体包括:
[0083]假设用户选择的症状组合…,在疾病-症状关联表中将$内每个症状的选中次数加I ;
[0084]从药物-疾病-症状关联表中取出疾病名称为D的数据,计算每种药物M的匹配度 <KM)
[0085]=丨产二(紙D)l \\ + a-q{M)f
、,\S[\V{M,D)\ v yv ”
[0086]其中,V(M, D)表示药物M与疾病D有关的症状集合;q{M)=;
Ixl表示集合X中的元素个数;α、β为[0,I]之间的常数,通过训练样本进行选择。
[0087]与上述系统实施例相适应,本发明还提供了一种基于症状分析和机器学习的用药推荐方法实施例,包括以下步骤:
[0088]接收用户选择或输入的患者疾病类型;
[0089]从疾病-症状表中查询患者疾病类型对应的症状集合,计算症状集合中每个症状的权重,按照权重的大小对症状集合的症状排序,并将排序结果提供给用户,其中疾病-症候表中保存有已知的每种疾病对应的症状;
[0090]接收用户从排序结果中选择一组症状组合,从药物-疾病-症状关联表中获取疾病名称为患者疾病类型的数据,计算该数据中每种药物与症状组合的匹配度;
[0091]按照匹配度的大小对匹配度大于设定值H的药物进行排序,并从药品详细说明库中提取前R个药物的信息推荐给用户,其中,H、R为预先设定的常数;
[0092]接收用户对推荐结果的评分反馈,假设用户对药物M的评分为μ,则对于药物-疾病-症状关联表中的每条数据记录r = (a, b, c, d),如果满足a = = Mid且b = = D且Ce S,则将d增加1,将e增加μ,其中,a、b、C、d、e分别表示数据记录r的药物ID、疾病名称、症状名称、评分次数和总评分,:j为用户选择的症状组合。
[0093]进一步地,在接收用户选择或输入的患者疾病类型步骤之前还包括以下步骤:
[0094]构建疾病-症状表,具体包括:
[0095]根据每一种疾病对应的症状集合以及每一症状在对应疾病中的初始权重,构建疾病-症状表,疾病-症状表中的每一条数据包括疾病名称、症状名称、初始权重以及用户选中次数。
[0096]进一步地,在接收用户选择或输入的患者疾病类型步骤之前还包括以下步骤:
[0097]构建药物详细说明库和药物-疾病-症状关联表,具体包括:
[0098]对于每一种新增药物,将药物详细信息添加到药物详细说明库,药物详细说明库以药物ID为索引,每条数据包括药物的名称、适应症、功用主治、用法用量、不良反应、禁忌、注意事项、贮藏方法和有效期;
[0099]分析新增药物的适应症和功用主治,将新增药物的“药物、疾病、症状”关联信息添加到药物-疾病-症状关联表中,药物-疾病-症状关联表的每一条数据记录包含药物ID、疾病名称、症状名称、评分次数和总评分。
[0100]进一步地,计算症状集合中每个症状的权重步骤包括:
[0101]假设从疾病-症状表中查询到疾病D对应的症状集合S = [Sl, S2,…,Sn],计算症状集合S中每个症状的权重W(Si)
[0102]#(s,) = w(s,.).' ' 二:、)
2 +P(Si)
[0103]其中,^7(Si)表示症状Si的初始权重,P(Si)表示症状Si的选中次数。
[0104]进一步地,计算该数据中每种药物与症状组合的匹配度步骤包括:
[0105]假设用户选择的症状组合5 = ^ J2在疾病-症状关联表中将互内每个症状的选中次数加I ;
[0106]从药物-疾病-症状关联表中取出疾病名称为D的数据,计算每种药物M的匹配度炉(Af)
[0107]
【权利要求】
1.一种基于症状分析和机器学习的用药推荐系统,其特征在于,包括: 数据库模块,用于保存和更新疾病-症候表以及药物-疾病-症状关联表,其中,所述疾病-症候表中保存有已知的每种疾病对应的症状,所述药物-疾病-症状关联表中的每条数据记录包括药物ID、疾病名称、症状名称、评分次数和总评分; 用户交互模块,用于接收用户选择或输入的患者疾病类型; 权重排序模块,用于从疾病-症状表中查询所述患者疾病类型对应的症状集合,计算所述症状集合中每个症状的权重,按照权重的大小对所述症状集合的症状排序,并将排序结果提供给用户; 所述用户交互模块还用于接收用户从所述权重排序模块提供的排序结果中选择一组症状组合; 匹配度计算模块,用于从药物-疾病-症状关联表中获取疾病名称为所述患者疾病类型的数据,计算该数据中每种药物与所述症状组合的匹配度;用药推荐模块,用于按照匹配度的大小对匹配度大于设定值H的药物进行排序,并从药品详细说明库中提取前R个药物的信息推荐给用户,其中,H、R为预先设定的常数;用户反馈模块,用于接收用户对推荐结果的评分反馈,假设用户对药物M的评分为μ,则对于所述药物-疾病-症状关联表中的每条数据记录r = (a, b, c, d),如果满足a ==Mid且b==D且ceS,则将d增加I,将e增加μ ,其中,a、b、c、d、e分别表示数据记录r的药物ID、疾病名称、症状名称、评分次数和总评分,^为用户选择的症状组合。
2.根据权利要求1所述的用药推荐系统,其特征在于,还包括: 疾病-症状表构建模块,用于构建疾病-症状表,具体包括: 根据每一种疾病对应的症状集合以及每一症状在对应疾病中的初始权重,构建疾病-症状表,所述疾病-症状表中的每一条数据包括疾病名称、症状名称、初始权重以及用户选中次数。
3.根据权利要求1所述的用药推荐系统,其特征在于,还包括: 药物信息构建模块,用于构建药物详细说明库和药物-疾病-症状关联表,具体包括:对于每一种新增药物,将药物详细信息添加到药物详细说明库,所述药物详细说明库以药物ID为索引,每条数据包括药物的名称、适应症、功用主治、用法用量、不良反应、禁忌、注意事项、贮藏方法和有效期; 分析新增药物的适应症和功用主治,将新增药物的“药物、疾病、症状”关联信息添加到药物-疾病-症状关联表中,所述药物-疾病-症状关联表的每一条数据记录包含药物ID、疾病名称、症状名称、评分次数和总评分。
4.根据权利要求1所述的用药推荐系统,其特征在于,所述权重排序模块包括: 权重计算单元,用于计算所述症状集合中每个症状的权重,具体包括: 假设从所述疾病-症状表中查询到疾病D对应的症状集合S = [Sl, S2,…,sj,计算症状集合S中每个症状的权重W(Si)
W(Si) = W(^i)- 1 + 尸(8,)
2 + ,J(s,) 其中,示(s,)表示症状Si的初始权重,P(Si)表示症状Si的选中次数。
5.根据权利要求4所述的用药推荐系统,其特征在于,所述匹配度计算模块计算该数据中每种药物与所述症状组合的匹配度具体包括: 假设用户选择的症状组合5 =在所述疾病-症状关联表中将;^内每个症状的选中次数加I ; 从所述药物-疾病-症状关联表中取出疾病名称为D的数据,计算每种药物M的匹配度刺刺= _.(—
g评分 其中,V(M,D)表示药物M与疾病D有关的症状集合;=从的评^欠数+ 1 ; X表示集合X中的元素个数;α、β为[O,I]之间的常数,通过训练样本进行选择。
6.一种基于症状分析和机器学习的用药推荐方法,其特征在于,包括以下步骤: 接收用户选择或输入的患者疾病类型; 从疾病-症状表中查询所述患者疾病类型对应的症状集合,计算所述症状集合中每个症状的权重,按照权重的大小对所述症状集合的症状排序,并将排序结果提供给用户,其中所述疾病-症候表中保存有已知的每种疾病对应的症状; 接收用户从所述排序结果中选择一组症状组合,从药物-疾病-症状关联表中获取疾病名称为所述患者疾病类型的数据,计算该数据中每种药物与所述症状组合的匹配度; 按照匹配度的大小对匹配度大于设定值H的药物进行排序,并从药品详细说明库中提取前R个药物的信息推荐给用户,其中,H、R为预先设定的常数; 接收用户对推荐结果的评分反馈,假设用户对药物M的评分为μ,则对于所述药物-疾病-症状关联表中的每条数据记录r = (a, b, c, d),如果满足a = = Mid且b = = D且Ce 5,则将d增加1,将e增加μ,其中,a、b、C、d、e分别表示数据记录r的药物ID、疾病名称、症状名称、评分次数和总评分,^为用户选择的症状组合。
7.根据权利要求6所述的用药推荐方法,其特征在于,在接收用户选择或输入的患者疾病类型步骤之前还包括以下步骤: 构建疾病-症状表,具体包括: 根据每一种疾病对应的症状集合以及每一症状在对应疾病中的初始权重,构建疾病-症状表,所述疾病-症状表中的每一条数据包括疾病名称、症状名称、初始权重以及用户选中次数。
8.根据权利要求6所述的用药推荐方法,其特征在于,在接收用户选择或输入的患者疾病类型步骤之前还包括以下步骤: 构建药物详细说明库和药物-疾病-症状关联表,具体包括: 对于每一种新增药物,将药物详细信息添加到药物详细说明库,所述药物详细说明库以药物ID为索引,每条数据包括药物的名称、适应症、功用主治、用法用量、不良反应、禁忌、注意事项、贮藏方法和有效期; 分析新增药物的适应症和功用主治,将新增药物的“药物、疾病、症状”关联信息添加到药物-疾病-症状关联表中,所述药物-疾病-症状关联表的每一条数据记录包含药物ID、疾病名称、症状名称、评分次数和总评分。
9.根据权利要求6所述的用药推荐方法,其特征在于,所述计算所述症状集合中每个症状的权重步骤包括: 假设从所述疾病-症状表中查询到疾病D对应的症状集合S = [Sl, S2,…,sj,计算症状集合S中每个症状的权重W(Si)
— I + ) W(S) = IV(S)--^
2 +^s,.) 其中,W(Si)表示症状Si的初始权重,P(Si)表示症状Si的选中次数。
10.根据权利要求9所述的用药推荐方法,其特征在于,所述计算该数据中每种药物与所述症状组合的匹配度步骤包括: 假设用户选择的症状组合3 =在所述疾病-症状关联表中将$内每个症状的选中次数加I ; 从所述药物-疾病-症状关联表中取出疾病名称为D的数据,计算每种药物M的匹配度炉(M)
?卜.),
A/fpA\ ^ 其中,V(M,D)表示药物M与疾病D有关的症状集合W(Ai) =+ l; X表示集合X中的元素个数;α、β为[0,I]之间的常数,通过训练样本进行选择。
【文档编号】G06F19/00GK104200069SQ201410397692
【公开日】2014年12月10日 申请日期:2014年8月13日 优先权日:2014年8月13日
【发明者】唐力, 周晋, 黄权 申请人:周晋