基于机器学习和知识图谱的处方推荐方法和系统与流程

文档序号:20839258发布日期:2020-05-22 17:17阅读:648来源:国知局
基于机器学习和知识图谱的处方推荐方法和系统与流程

本发明涉及医疗信息化技术领域,具体涉及一种个性化处方推荐方法和系统。



背景技术:

医疗服务过程中,医生对患者病情进行诊断然后开具相应处方,在开具处方时需要综合考虑多方面的因素,如年龄、性别、体质特点等,即使同一种疾病,不同的患者个体需要的处方药品和剂量也会不同。而随着就诊患者增多,门诊医师的接诊压力随之增大,医师犯错的可能性也在增加,尤其是年轻经验较少的医生,在缺少强有力的医疗辅助决策手段的情况下,更容易出现反复修改的情况。



技术实现要素:

发明目的:为了解决现有技术的问题,本发明提出一种基于机器学习和知识图谱的处方推荐方法和系统,实现处方精确推荐,同时提高处方生成效率。

技术方案:根据本发明的第一方面,提供一种基于机器学习和知识图谱的处方推荐方法,包括以下步骤:

获取诊断信息并进行解析,得到一条或多条诊断明细,包括患者信息、医生信息及疾病诊断;

将所述诊断明细输入预先构建的机器学习模型进行推理,得到针对所述诊断明细的初始推荐列表;

根据所述初始推荐列表中包含的药品信息,从药品知识图谱中获取与所述药品相关联的关系图网络;

根据所述关系图网络筛选并排除禁忌药品后给出最终推荐列表。

其中,所述预先构建的机器学习模型包括基于协同过滤的推荐模型、基于知识的推荐模型和基于神经网络的推荐模型,分别通过协同过滤算法、基于知识的推荐算法和神经网络学习算法进行训练,得到这三个基础推荐模型;所述初始推荐列表的获得方法为:将诊断明细信息分别输入三个基础推荐模型,得到各自推荐的处方药品,去掉重复项并根据预测的采纳概率排序,得到初始推荐列表。

根据本发明的第二方面,提供一种基于机器学习和知识图谱的处方推荐系统,包括:

诊断信息解析模块,用于获取诊断信息并进行解析,得到一条或多条诊断明细,包括患者信息、医生信息及疾病诊断;

机器学习模块,用于将诊断明细数据输入机器学习模型进行训练,得到根据患者信息与疾病诊断进行处方推荐的推荐模型;

药品关系图模块,用于根据药品信息从药品知识图谱中获取与所述药品相关联的关系图网络;

处方推荐模块,用于根据输入的患者信息、医生信息及疾病诊断,推荐可选的处方;

推荐结果筛选模块,用于根据所述关系图网络对推荐的可选处方进行禁忌药品的过滤和排除。

有益效果:本发明提出一种基于机器学习和知识图谱的处方推荐方法和系统,实现处方精确推荐,同时提高处方生成效率。推荐系统采用模型融合的方法,结合协同过滤、基于知识的推荐和神经网络三种机器学习算法训练的模型进行处方推荐,并提供给门诊医师。本发明可满足门诊医师开方需求,提高医生工作效率,减少医疗错误。

附图说明

图1是本发明提供的处方推荐方法流程图;

图2是根据本发明实施例的药品知识图谱示意图;

图3是根据本发明实施例的从药品知识图谱获取的关系图网络;

图4是本发明提供的处方推荐系统结构框图。

具体实施方式

下面结合附图对本发明的技术方案作进一步说明。

参照图1,本发明提出一种基于机器学习和知识图谱的处方推荐方法,包括以下步骤:

步骤s1,获取诊断信息并进行解析,得到一条或多条诊断明细。

随着医疗信息化技术的快速发展,很多医院的电子信息系统中保存了海量的处方记录,可以通过医院信息系统(his)/电子病历(emr)等系统的开放接口交换数据,获取电子病历中的诊断信息,通过自然语言处理技术解析,得到诊断明细。具体地,采集门诊电子病历文字数据,包括患者性别、出生日期、是否怀孕、是否哺乳期、身高、体重、支付方式这些基本字段以及过敏史的文字内容,利用关键字匹配方法,从过敏史字段提取患者有过敏反应的药物名,并通过预先获得的药品别名库查询,得到过敏反应药物的所有名称;同时取得门诊记录数据,通过诊断字段的icd10编码进行分类,排除包含无效或错误编码的诊断,获得大量门诊记录的“疾病诊断<->处方药品”数据对,所述的大量指的是对每种临床诊断取得五百份以上的处方记录,以用于下面模型的训练。

步骤s2,将诊断明细输入机器学习模型进行推理,得到得到针对诊断明细的初始推荐列表。

机器学习模型需要先进行训练,获取的数据经过清洗整理之后,以疾病诊断和患者基本信息作为输入参数,以药品作为输出参数,分别使用协同过滤、基于知识的推荐和神经网络三种机器学习算法,训练得到三个原始模型;再使用模型融合技术,将三个原始模型进行融合,得到融合后的处方推荐模型。在门诊应用时,将患者信息及医生诊断作为输入参数提供给前述融合后的处方推荐模型,模型会返回多个推荐结果,并按照相似度从高到低排序,并将推荐结果返回至门诊医师。

在进行原始模型训练时,使用的协同过滤算法步骤如下:

s21、首先进行数据规范化处理,将患者基本信息中性别、诊断时的年龄、是否怀孕的字段值映射到16位数的空间(以下称为患者指纹),并使用“与”关系计算患者的相对距离,如性别男,年龄10岁,怀孕否可以映射为0000000100010100,性别女,年龄11岁,怀孕否可以映射为;0000000000010110,两个数按位与计算得到0000000000010100即指纹值计算的相似距离,相似距离值越小说明相似度越高。

s21、其次,按照患者指纹、处方药品、疾病诊断三元组的方式对数据进行整理,计算患者基本情况与疾病诊断的评分数据,然后以评分数据作为衡量患者疾病之间相似程度的指标,通过距离计算方法得到患者相似矩阵。

进一步地,所述患者基本情况与疾病诊断的评分数据计算的步骤为:

s21-1)读取存储的患者指纹、处方药品、疾病诊断(用户、物品、评分)三元组数据;

s21-2)启动归并过程,提取处方药品编号作为主键,患者与疾病诊断作为值,将存储中具有相同处方药品编号的数据按照处方药品、疾病诊断、患者指纹序列对的格式进行归并;

s21-3)对同一主键的数据进行归并操作,并输出最终结果,该结果以处方药品编号为主键,患者指纹、疾病诊断序列对为值,并保存在数据库中,作为处方药品评分数据。

进一步地,所述患者相似度矩阵计算的步骤为:

s21-a)读取本地存储的患者指纹与疾病诊断的评分数据;

s21-b)以患者指纹对为主键,患者指纹与疾病诊断的评分对为值进行数据的重新整理,计算患者指纹之间患者与疾病诊断的评分距离,输出主键为患者指纹对,值为两两患者指纹对于相同疾病诊断的评分距离;其中评分距离以相同疾病诊断icd10编码,患者指纹的相似距离作为评分距离;

s21-c)启动归并过程,将相同患者指纹对的数据进行合并,得到两个患者指纹所有相同疾病诊断评分的距离值,归并结果的主键为待治疗患者,值为已治疗患者和其与待治疗患者之间的评分距离,保存归并结果,作为患者相似度矩阵数据。

在使用时根据协同过滤模型推荐处方药品的步骤为:

a)读取本地存储的处方药品评分数据和患者相似度矩阵数据,对处方药品评分数据进行整理,以患者指纹对作为主键,处方药品与患者对疾病诊断的评分数据作为值,对患者相似度矩阵进行数据整理,以患者指纹对作为主键,用患者距离以及距离总和作为值,将两类数据进行归并操作,查找待治疗患者未治疗但是被已治疗患者治愈过的处方药品以及处方药品的评分,并计算待治疗患者针对该处方药品的推荐值,保存在数据库中,作为处方药品的推荐值;其中患者距离指的是步骤s21中“与”计算出来的值,距离总和是指患者距离加上诊断的相似程度(因为有可能存在多个诊断,诊断相同顺序也有可能不同,因此顺序和诊断内容完全相同的相似度最高);

b)对待治疗患者的所有推荐处方药品按照处方药品的推荐值进行排序,选取推荐值最高的处方药品作为推荐结果。

在进行原始模型训练时,使用的基于知识推荐的算法如下:基于知识的推荐规则构建方法,根据最新的临床指南和专家共识,形成固定的诊断(icd10编码)与处方的推荐关系,一个编码对应一个或多个药品名称及标准剂量,剂量可以由医生按患者实际体重调整,基于知识的推荐是推荐算法的一种,主要用于冷启动的情况即处方记录中找不到相似的患者或者相同的诊断时,直接使用指南推荐的用药方案。在使用时输入icd10编码格式的诊断结果,输出预测的推荐结果,基于知识的推荐算法主要用于解决冷启动问题即缺少预训练数据的情况。

神经网络推荐算法作为协同过滤的补充,在以医生历史处方记录为主题个性化推荐中用到。在进行原始模型训练时,使用的神经网络算法步骤如下:

s2a、获取医生客户端上报的用户行为日志,包括医生id、icd10诊断编码、患者基本信息(患者性别、出生日期、是否怀孕、是否哺乳期、身高、体重、支付方式)、处方药品列表及剂量,并存储在服务器基础数据库中;

s2b、通过构建特征采集器,对所述用户行为日志数据进行数据采集、清洗、标准化处理以及特征组合和提取,获得统一规范的且符合数学建模要求的特征向量;

进一步的,构建特征采集器,获得统一规范的特征向量包括如下具体步骤:

s2b-1、对数据进行以下处理:对时序数据按照不同的时间单位分离成各个基础运算模型所需的维度;对数值数据进行z-score标准化处理;对文本数据进行语义分析;对枚举分类数据采用独热编码进行处理;

s2b-2、对处理后的各项数据进行特征提取,并对提取到的特征向量进行降维处理,其中特征为步骤s2a中给出的各个字段信息;

s2b-3、通过降维处理后生成具有统一规范且可用于模型训练的特征向量,包括:用户特征向量、处方药品特征向量、疾病特征向量。

s2c、所述特征向量作为输入传到一个多层神经网络中,网络的每一层为全局神经网络层;本发明采用卷积神经网络进行训练,由于输入的数据不是图片,不能分通道进行卷积,所以卷积是对全部输入数据(向量矩阵)进行,因此每一层都是一个卷积神经网络,称为全局神经网络层,用于对输入数据进行卷积运算,前一层的卷积结果作为后一层的输入;

由于前一层进行卷积后,输出的矩阵变小,所以全局神经网络层从前往后的网络层节点数递减,前一层全局神经网络层的节点数是后一层全局神经网络层的2倍;

将处方药品特征向量作为输出的目标,降维处理后的用户特征向量和疾病特征向量作为输入,分别映射为稠密向量后,再输出至第一层全局神经网络层;

通过对神经网络的训练,获取神经网络的层间权重信息,并基于训练好的层间权重信息得到当前输入的用户特征向量和疾病特征向量在神经网络的输出信息,即与处方药品特征向量的相似度;

对神经网络最后一层的隐藏层进行全连接,输出用户和疾病对处方的预测评分,并基于所述预测评分构建用户-疾病-处方评分预测表并存入数据库;

在推荐处方时,从数据库中读取用户-疾病-处方评分预测表,对当前诊断可用的处方基于用户-疾病-处方评分预测表中的预测评分进行降序排序,并选择排序最前的n个处方作为当前用户的推荐数据表并予以推荐,n值可以动态调整。

进一步的,本发明采用k折交叉验证法对每个基础推荐模型进行训练,在训练阶段,每个基础推荐模型采用网格搜索法进行参数调优,得到最优参数,并生成各个用户在各个基础推荐模型下的处方药品推荐列表,以及相应用户对所述初步处方药品列表中各种处方药品的使用率。

其中,采用k折交叉验证法对每个基础推荐模型进行训练包括以下步骤:

a)、将各个基础推荐模型的训练样本集划分成k个大小相同且内容互斥的子集;

b)、进行k次迭代,每次迭代均采用k-ι个子集的并集作为训练集,余下的子集作为测试集,将得到的k组训练集和测试集进行所述基础推荐模型的训练。这样在数据量不够大的情况下,可以提高数据的利用率,避免过拟合或欠拟合的情况。i取值根据经验和模型训练的情况进行调整,通常为1。

通过对各个基础推荐模型采用k折交叉验证法进行训练,提高单个基础推荐模型的泛化能力。

在完成三个基础推荐模型的构建后,进行模型的融合处理。根据输入的用户和诊断信息进行运算,协同过滤模型需要计算指纹和评分距离、基于知识的推荐模型需要患者和诊断信息、神经网络模型需要特征向量,获得各个基础推荐模型下相应用户对疾病诊断的初步处方药品列表,以及相应用户对初步处方药品列表中各种处方药品的采纳概率,采纳概率由三个模型返回的药品推荐列表对应的诊断条件,包括患者信息、医生诊断与当前输入的患者信息和诊断的相似度得到,相似度越接近则认为采纳概率越高。默认条件下基于神经网络的个性化推荐>协同过滤>基于知识的推荐,将各个推荐模型得到的采纳概率作为新的特征向量输入,按照预测的采纳概率由高到低进行排序。将所有推荐模型得到的推荐处方排序后,剔除重复推荐,以列表方式展示给临床医生,医生可以选择是否采用推荐处方,并以实际采纳与否作为融合推荐模型的反馈,重新调整融合推荐模型的推荐顺序。

步骤s3,根据初始推荐列表中包含的药品信息,从药品知识图谱中获取与药品相关联的关系图网络。

首先获取推荐引擎返回的处方列表,对每一处方提取包含的所有药品列表,然后根据药品名称在知识图谱中获取该药品对应实体的记录,以及与该药品相关联的实体及关系集合,即药品的适应症、药品所属、药物相互作用、禁忌症等属性的集合,如果同一处方的多种药品可以通过相互作用关联起来,则形成一个连通的图谱子集并说明子集内的药品存在相互作用关系,否则说明该处方的药品不存在相互作用。图2为药品知识图谱示意图,图3是从图2得到的某一个药品的图谱子集示例。

步骤s4,根据药品图谱子集网络进行药品筛选,对推荐引擎返回的各处方的图谱子集,查询所有药品的禁忌症,并根据患者年龄、是否怀孕、过敏史等信息判断处方中的药品是否存在使用禁忌,如发现禁忌则从处方推荐结果列表中排除。

作为优选,推荐处方返回的同时能获取药品价格,对多个处方的总价进行自动计算,步骤包括:

对单个推荐处方的所有药品价格进行汇总计算,得到单个推荐处方的总价;

对所有推荐处方执行汇总步骤,分别得到所有处方的总价;

对处方价格进行排序,超过预先设定总价阈值的处方提供单独视觉标识,对临床医生控制大处方起到提示作用。

根据本发明的另一实施例,提供一种基于机器学习和知识图谱的处方推荐系统,如图4所示,包括:诊断信息解析模块100,用于从现有的电子病历中获取诊断信息并进行解析,得到一条或多条诊断明细,包括患者性别、出生日期、是否怀孕、是否哺乳期、身高、体重、支付方式这些基本字段以及过敏史的文字内容,利用关键字匹配方法,从过敏史字段提取患者有过敏反应的药物名,并通过预先获得的药品别名库查询,得到过敏反应药物的所有名称;同时取得门诊记录数据,通过诊断字段的icd10编码进行分类,排除包含无效或错误编码的诊断,获得大量门诊记录的“疾病诊断<->处方药品”数据对;

机器学习模块200,用于将前述诊断明细数据及疾病诊断数据输入机器学习模型进行训练,得到根据患者信息与诊断明细进行处方推荐的推荐模型,根据输入数据的主题是科室、医生或指南,分别得到基于协同过滤、神经网络以及基于知识的三个推荐模型;如果主题是来自医生的历史处方记录,则得到神经网络模型;如果主题是来自科室所有医生(多专家的处方数据),则得到基于协同过滤的模型;如果主题是来自指南数据,则得到基于知识的模型。原始模型的训练过程同方法实施例中的步骤,此处不再赘述。

处方推荐模块300,用于根据输入的患者信息、医生信息及疾病诊断,推荐可选的处方。

具体地,推荐模块300包括推荐单元301,用于将输入数据传输到基于协同过滤、神经网络以及基于知识的三个推荐模型,并从推荐模型接收初始处方推荐结果;

融合单元302,将三个推荐模型提供的初始处方推荐结果进行集成,去掉重复项,并按照患者相似度排序。

药品关系图模块400,用于根据处方推荐模块推荐的处方中包含的药品信息,从药品知识图谱中获取与药品相关联的关系图网络。药品关系图模块400先获取药品的知识图谱信息,返回相关药品信息节点和表示关联关系的边所组成的关系数据。

推荐结果筛选模块500,用于根据关系图网络筛选及排除禁忌药品。

具体地,推荐结果筛选模块500包括匹配单元501,用于将处方推荐模型返回的处方中包含的药品信息与预存储在药品知识图谱中的节点和关系信息进行匹配,得到包含所述推荐药品名称以及药品适应症、药品所属、药物相互作用、禁忌症的网络关系;

筛选单元502,用于根据前述包含药品以及药品适应症、药品所属、药物相互作用、禁忌症的网络关系,过滤掉推荐结果中包含禁忌药物的条目的处方;

发送单元503,用于将过滤后的推荐处方信息发送至用户。

优选地,推荐结果筛选模块500还具备药品规则配置单元504,基于相关规则控制处方的总体药价,同时集成国家医保基本用药目录,并对门诊医师进行提示,可用于控制基药比例。

优选地,所述推荐系统还包括护士站操作指南模块600,将药品注射方式和滴速、配比等指示直接传递到护士站,降低用药不当引起的风险。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1