CDSS医疗决策支持系统全套_第1页
CDSS医疗决策支持系统全套_第2页
CDSS医疗决策支持系统全套_第3页
CDSS医疗决策支持系统全套_第4页
CDSS医疗决策支持系统全套_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CDSS医疗决策支持系统一、临床决策管理系统简介医疗决策支持系统(CDSS)自诞生以来已经经历了60余年,早期经典的应用就是专家系统,利用计算机程序和医学知识来模拟专家的思维。由此发展而来的CDSS大多数基于临床指南、药品说明书等的医学知识,知识库中的知识大多由可编译的规则构成。推理引擎作为CDSS的大脑,需要将患者实际信息与知识库中的规则进行匹配,以达到模拟专家思维,提供决策支持服务的目的。研究表明,这种基于规则的CDSS以简单的警告和提醒方式就可以对临床活动产生有益的影响。随着计算机技术的发展,现代临床决策支持系统(CDSS)将计算机科学与AI技术和医疗领域知识相结合,利用数据分析以及算法模型对医疗信息进行处理,形成结构化的医学知识,再结合web开发技术,通过简单直观的人机交互页面来为医护人员提供决策支持功能,经验证能够为医疗救治率带来显著的提高。近年来,在相关政策的支持下,智能医疗蓬勃发展,在流行病预测、医患身份核验、医疗辅助诊断、精准外科手术、医药研发、智能健康管理等多个领域飞速发展。其中,流行病预测与医疗辅助诊断是重要的落地场景。智能医疗离不开医疗健康数据,其具有体量大、多态性、不完整性、冗余性等特点,从中挖掘出的有用信息可以用作疾病诊断和决策支持。医疗健康数据的挖掘与应用已经成为智能医疗的重要步骤。随着电子信息化在医疗领域的普及,海量电子医疗数据沉淀,数据类型和数据量持续增加。医疗健康数据可以在“海量数据”与“医疗问题”之间架起一条通道,提供健康管理、辅助诊疗等解决方案。现如今,医疗数据的来源多种多样,众多医疗知识库可以向大众提供丰富的医疗知识,如百度百科、人卫网知识库等。此外,随着HIS系统及EHR系统的广泛使用,医院内沉淀了大量的临床数据,充分利用这些数据,可以发掘巨大的实用价值。本文第二、三、四部分分别介绍了临床决策系统的三个功能模块,分别是知识图谱可视化展示模块,基于电子病历的疾病诊断及相似病历推荐模块,以及医学知识库模块。第五部分对剩余工作及未来计划做了一个简单说明。二、知识图谱可视化展示模块2.1知识图谱相关理论从实际应用的角度出发,可以把知识图谱简单地理解为多关系图(Multi-relationGraph),其包含多种类型的节点和多种类型的边。定义一个有向图来描述知识,其中是一组引用不同实体的顶点,是一组引用不同类型边的实体间关系。知识图谱中,图的节点表示“实体(Entity)”、图的“边”表示“关系(Relation)”。实体指现实世界中的事物比如人、地点、药品、公司等,关系指不同实体间的某种联系。此外,实体和关系也会拥有各自的属性,例如,定义“疾病”和“药品”两个实体,实体间的关系可表示为“适用于”。同时,可在“疾病”这一实体中定义“并发症”、“是否流行病”等属性。2.1.1知识图谱构建知识图谱构建通常有两种思路,自底向上和自顶向下。前者的思路是先进行数据采集,再完善模式层体系架构;而后者的思路是先进行模式层设计,根据领域知识特点,预先定义实体及关系,形成一个知识图谱框架,通过这个框架来规范后续知识收集和存储工作。在构建通用领域知识图谱时,由于通用领域知识范围较大,知识类型庞杂,因此适合采用自底向上的方式构建,先抽取三元组,再根据三元组内容来逐渐完善知识图谱的体系架构。而在构建行业知识图谱时,由于行业领域对知识专业性和精度有较高要求,适合采用自顶向下的方式构建,先对模式层进行设计,再据此进行后续的知识导入。知识图谱的数据来源主要分为两类,一类是结构化数据,如行业数据库当前已有的表型数据,可直接应用于知识图谱构建;第二类是半结构化数据或非结构化数据,非结构化数据包括各种文档、资料中的自然语言文本,从该类数据中获取实体和关系主要通过自然语言处理和神经网络等技术来实现。知识融合是对获取到的实体进行实体对齐、实体消歧等操作,因为多个数据源中可能对于同一个实体有不同描述方式,而同一个实体也可能代表不同的含义,比如“苹果”可以是一种水果,也可以是指“苹果手机”。知识加工是指将知识以本体的形式进行存储,再使用规则描述语言配合规则推理引擎对现有实体和关系进行归纳好挖掘的过程,能够发现其中新的、隐含的实体关系,以丰富知识图谱的广度和深度。知识图谱的构建工作是一个持续性的过程,实体和关系越丰富,就越能发挥出知识图谱的优势,因此需要通过后期不断增加新的知识和内容,来完善知识图谱,才能在后续应用中活的更好的效果。2.1.2知识图谱存储知识图谱是对众多客观存在的信息之间进行关系创建进而形成的一个关系网络,为了能够高效利用知识图谱中丰富的语义关系,需要选择适合的存储方式,目前适用于知识图谱存储的数据库主要有三类,包括RDF三元组数据库、关系型数据库以及图数据库。使用上述三类数据库存储知识图谱的优缺点如表2-1所示。其中RDF类的数据库是早期设计用于语义知识存取的数据库,通过SPARQL查询语言对三元组进行查询,但是这类数据库存在可扩展性差,查询效率低的问题,不符合本文知识图谱应用需求。关系型数据库操作具有复杂关系的数据时需要进行繁琐的外键查询,注定不适合大规模知识图谱的存储,如何从关系型数据库中对语义知识进行抽取也是一个难点。而图数据库是近两年数据库发展的热点,它的基本存储结构包括节点和节点之间的有向边,这种特殊的数据结构与知识图谱非常契合,并且图数据库非常适合应用于多对多关系的处理,借助于图搜索算法,能够以稳定的速度便利图中的节点和关系边,图的量级增加不会对查询速度造成太大影响,因此本系统选用Neo4j图数据库来进行知识图谱存储。Neo4j作为图数据库中的佼佼者,近年来发展迅速,在实际业务中已经具备比较成熟的使用环境,满足一个数据库的所有特性,比如事物的ACID原则,并且自带一个友好的web前端样式的图形操作页面,自带的图结构查询语言Cypher能够便捷地进行数据查询,并且它是由Java语言开发实现的,能够很好地融入本系统的开发工作。表2-1知识图谱存储方案比较数据库类型优势缺点RDF数据结构清晰明了共享发布缺乏成熟的查询搜索引擎数据结构不灵活关系型数据库应用成熟,存储方便小型知识图谱查询效率高复杂关系查询效率低数据更新维护效率低图数据库丰富的查询算法多级深度搜索效率高内存空间消耗大2.2可视化展示知识图谱构建2.2.1数据库设计该模块所用到的数据均是从寻医网爬取下来的,因为是采用先收集数据,再构建图谱的方式进行,因此该图谱采用自底向上的方式搭建。该知识图谱的模式层构建包括7个实体表、11个实体关系表,并导入Neo4j图数据库中,完成知识图谱存储。定义实体为了保证知识图谱实体及实体关系定义的权威性与合理性,本模块所定义的领域本体专业术语根据寻医网爬取知识定义,最终确定为“药品”、“食物”、“检查”、“科室”、“生产商”、“疾病”、“症状”共计7种实体。定义实体关系实体关系表明了不同种类实体之间的联系,根据对爬取数据的归类总结,共定义了11种实体关系,分别是:“科室-科室关系”、“疾病-忌吃食物关系”、“疾病-宜吃食物关系”、“疾病-推荐吃食物关系”、“疾病-通用药品关系”、“疾病-热门药品关系”、“疾病-检查关系”、“厂商-药物关系”、“疾病症状关系”、“疾病-并发症关系”、“疾病-科室关系”。图2-2实体关系分类2.2.2界面设计本系统前端采用vue框架进行开发,用到了Element-UI组件及d3.js或Eharts插件进行动态效果展示。当用户在搜索框中输入疾病、症状、药品等关键字后,系统后台会自动到图数据库中进行搜索,找出所有满足条件的节点及其内容,逐条展示到界面上。与此同时,每条显示后面都跟随一个“关系图”按钮,当用户点击该按钮时,会弹出一个面板,在该面板上展示出该节点以及与该节点有关的所有关系与节点,当用户单击其中某一个节点时,又会以该节点为中心进行新的展示。该界面原型图如图2-3,及2-4所示。图2-3知识图谱查询界面图2-4知识图谱展示弹框三、基于电子病历的疾病诊断及相似病历推荐模块由于学习疾病的种类多种多样,因此想通过一套模型准确定位出疾病种类,其数据量及复杂程度很大,因此可以将疾病进行简单分类,如肿瘤诊断、慢性病查询诊断等,再分别设计对应的疾病诊断算法,提高模型查询的准确度。本模块以肿瘤诊断为例,设计了一套肿瘤领域疾病诊断的模型,今后是否补充其他模块可以与专业临床医生咨询,同时与领导沟通工作量,讨论是否需要展开工作。3.1基于电子病历的肿瘤诊断模块该模块数据来源为某肿瘤医院中的中文电子病历,根据业务需求和肿瘤电子病历文本数据的特点,结合领域知识图谱构建的一般性流程,设计了如图3-1所示的肿瘤知识图谱构建流程,包括模式层构建、知识抽取、知识存储与加工、知识图谱应用四个步骤。模式层构建由于肿瘤领域知识图谱具有较强的专业性要求,因此采用自顶向下的方式进行。首先根据病历文本特征和业务需求完成知识图谱的模式层构建,由于决策支持系统是为肿瘤疾病诊疗工作服务,因此知识图谱构建的目标主要是围绕肿瘤疾病来进行,并且一份电子病历所记录的诊疗记录等信息均为同一个病人的实际问诊过程,可以据此定义实体之间的语义关系,最后再根据医院方面医生的评估意见,对模式层进行修改完善,形成一个肿瘤知识图谱框架。知识抽取知识抽取是知识图谱构建的关键步骤,抽取出的肿瘤知识需要能够支撑系统来为用户提供肿瘤诊疗业务。首先要对原始的电子病历数据进行处理,主要工作包括数据清洗、规约变化以及新的数据特征获取;接着根据实际需要指定了实体标注规则,标注获取到了结构化的实体数据,再通过代码对实体数据进行Bio序列化标注,之后构建了实验数据对BiLSTM-CRF模型进行训练,最终抽取出知识图谱构建需要的实体数据。图3-1肿瘤知识图谱构建流程知识加工与存储在领域知识图谱构建的一般性流程中,知识加工包括实体消歧、实体对齐、知识推理等工作。考虑到肿瘤知识的准确性要求,并且知识图谱的语义关系已经足够丰富,因此无需进行知识推理。同时文本构建的知识图谱时基于单一的数据来源构建的,不存在一词多义的情况,因此只需要考虑实体对齐的工作,该项任务通过构建词典来实现。因此可以用9个实体表和12个实体关系表表示,并导入Neo4j图数据库中,完成知识图谱存储。知识图谱应用构建的知识图谱将作为决策支持系统的底层数据支撑,为医护人员提供应用服务。其中知识图谱管理模块通过引入neo4j配置依赖并封装Cypher语句来实现知识图谱的可视化服务和语义搜索服务;医疗辅助决策模块通过知识图谱的关系边来存储疾病各症状出现的频次,进而计算症状之于疾病的权重,并将权重作为知识图谱的症状-疾病关系边的属性进行存储,最终实现疾病诊断功能;临床治疗路径模块通过为知识图谱的辅助检查、药物、手术等节点创建倒排索引来为用户提供迅速的诊疗项目添加功能。3.1.1知识图谱模式层构建肿瘤知识图谱的模式层构建包括定义肿瘤领域实体类、定义实体的数据属性以及定义实体的对象属性三部分。定义肿瘤领域实体通过查阅大量资料,本模块定义出9种实体:“患者”、“疾病”、“科室”、“临床症状”、“辅助检查”、“治疗方式”、“手术”、“药物”、“护理方式”。患者(patient):患有肿瘤疾病的人。疾病(disease):疾病的名称,图谱的关键实体。下位类包括肿瘤疾病和肿瘤疾病在治疗过程中引起的并发症(非肿瘤疾病),并发症同样能带来巨大的威胁,有的甚至更早的夺走了患者的生命。科室(department):以患者最终进行治疗的科室作为患者所患疾病的对应科室,后续将以科室为单位进行肿瘤疾病诊断,并且系统多个功能都会把科室作为筛选项。临床症状(symptom):患有该肿瘤疾病患者的临床表现。下位类包括症状和体征。症状是患者的主观体验,如眩晕、腹痛、恶心等;体征是患者经过医学手段检查后所发现的身体指标及异常结果。辅助检查(examination):针对该肿瘤疾病所需要采取的检查措施,用于肿瘤疾病的诊断。包括常规的体格检查和实验室检查以及进一步的影像学检查和肿瘤标志物检查等。治疗方式(treatment):针对该肿瘤疾病的医学处理方式。包括抑酸,雾化,保胃,抗凝等。药物(medicine):在治疗过程中使用的药物。手术(operation):在治疗过程中进行过的手术。护理方式(nursing):在患者康复住院阶段进行过的护理工作。定义数据属性数据属性是类的内部属性,是类固有的性质,用于准确描述领域实体。根据肿瘤疾病特点和知识源,定义“患者”的数据属性包括患者编号、性别、年龄、入院时间、出院时间、住院天数,为了保证患者的隐私安全,采用数据脱敏技术隐去了患者的身份信息;“疾病”的数据属性包括名称、ICD-10编码、治疗周期、治疗费用;“临床症状”的数据属性包括名称、状态;由于数据中缺乏其他类的数据属性,如药物的用法、用量、价格,并且本文的主要目标是对于肿瘤实体之间关系的探索,因此对于其他类并未添加数据属性。实体数据属性具体情况如表3-1所示。表3-1肿瘤实体数据属性类(实体)数据属性患者患者编号(string)、性别(int)、年龄(Boolean)、入院时间(datatime)、出院时间(datatime)、住院天数(int)疾病名称(string)、ICD-10(string)、治疗周期(int)、治疗费用(int)临床症状名称(string)、状态(string)科室名称(string)药物名称(string)手术名称(string)治疗方式名称(string)辅助检查名称(string)护理方式名称(string)定义对象属性对象属性是类的外部属性,也就是肿瘤知识之间的语义关系,语义关系可以是双边的,也可以是单边的,还可以是同类实体之间的。语义关系分为基本语义关系和领域语义关系,基本语义关系包括四类:部分与整体关系,上下位类间的从属关系,实体类和实例间的从属关系,实例和数据属性关系;根据查阅大量资料,最终定义了总共12条肿瘤医学实体之间的语义关系,具体情况如表3-2所示。表3-2肿瘤实体对象属性实体1语义关系实体2患者患有(PHD)疾病疾病引起(DCD)疾病疾病属于(DBD)科室疾病接受(DRC)辅助检查疾病表现出(DSS)临床症状疾病需要(DNT)治疗方式疾病服用(DTM)药物疾病接受(DRO)手术疾病采取(DAN)护理方式临床症状表明(SID)疾病临床症状需要(SNT)治疗方式科室包含(DCS)临床症状3.1.2数据采集本模块所使用的数据为肿瘤电子病历系统(EHR)导出的电子病历数据,包括结构化数据和非结构化文本数据。结构化数据包括患者号、性别、年龄、入院时间、出院时间、住院天数、婚否、疾病名称、治疗周期、治疗费用、体征数值等实体及数据属性,需要对上述数据的异常值、空值进行清洗;非结构化文本数据包括入院体察,诊疗计划,诊疗经过等,这些文本数据中包含需要的其他实体数据,包括患者、疾病、科室、临床症状、辅助检查、治疗方式、手术、药物、护理方式等,后续通过自然语言处理算法来完成上述实体的识别工作。结构化数据的数据清洗工作,通过pandas数据分析库来进行,pandas提供了丰富的库函数,根据需求制定各项数据清洗规则,调用库函数来完成数据清洗工作。数据清洗规则可根据数据质量情况自行定义,以下是一些参考规则:将患者号为空的数据行标为异常,删除该条数据;将性别为空或不为1、2的数据行标记为异常,删除该条数据。将年龄为空值,小于0或大于100标记为异常,以平均值插入填充。将出院时间和入院时间为空值,出院时间小于入院时间标为异常,删除该条数据。将住院天数为空值,小于0的值标记为异常,以出院时间和入院时间的差值进行填充。婚否、病灶大小不对后续推理造成影响,不做处理。疾病名称将空值视为异常,删除该条数据。治疗周期以相同疾病住院天数的平均值进行填充。治疗费用以相同疾病治疗费用的平均值进行填充。体征除了包括常规数据清洗工作,还需要将数值映射为状态,患者与自身体征数据相关联,而疾病与抽象出来的异常体征状态相关联,需要进行状态映射的体征具体处理规则如表3-3所示。表3-3体征处理规则体征映射规则映射结果呼吸根据每分钟呼吸次数来划分状态呼吸次数为12-20次视作呼吸正常,否则视作呼吸异常脉搏根据每分钟脉搏跳数来划分状态脉搏跳数结余60-100视作脉搏正常,否则视作脉搏异常疼痛根据疼痛的数值进行分段,每段对应一个状态疼痛值介于1-3视作轻度疼痛,疼痛值介于4-6视作中度疼痛,疼痛值介于7-9视作重度疼痛体温根据体温具体数值来划分状态体温介于36-37视作体温正常,否则视作体温异常血压根据舒张压和收缩压的具体数值来划分状态舒张压介于60-90并且收缩压介于90-140视作血压正常,否则视作血压异常氧饱和根据氧饱和最大值和最小值的具体数值来划分状态氧饱和介于95-100视作氧饱和正常,否则视作氧饱和异常3.1.3命名实体识别算法设计命名实体识别(NER)任务是自然语言处理(NLP)的基础,本质上是对标注的实体进行分类的分类任务。目前NER比较流行的算法模型时BiLSTM-CRF模型,使用BiLSTM作为词的特征提取器对序列与标签的关系进行预测,再加上CRF层,为输出的词标签添加约束,减少无效标签的输出。3.1.3.1实验数据处理(1)命名实体预标注在进行命名实体识别任务之前,需要先将文本数据中的实体标注出来,由于肿瘤领域具有极强的专业性,对于数据的质量要求较高,因此采取人工标注的方式,来确保实体标注工作的有效性。标注规则可以由系统开发人员设计,以下规则可以用来参考:“未见”、“无”、“排除”、“未伴有”等关键字后续的症状实体,不进行标注。“否认”,“未使用”,“拒绝”等关键词后续的疾病、手术实体不进行标注。保留对于疾病性质的修饰词,如关键词“急性”、“恶性”、“高分化”、“低级别”。忽略对于症状程度的修饰词,如关键词“轻微”、“轻度”、“明显”。对于不确定的情况不进行标注,如关键词“可能”、“考虑”。对于特殊符号,仅对代表异常情况的实体进行标注,如在免疫组化染色显示结果中“-”为阴性,“+”为阳性,则只标注阳性指标。考虑实体之间嵌套的情况,如“直肠癌根治术”只标注为“手术-直肠癌根治术”,而非“器官-直肠”或是“疾病-直肠癌”。由于标注工作十分繁琐,因此可以考虑借助标注工具,如Colabeler。该工具支持TXT和Json格式的数据自行导入,能够自定义实体类型,实体关系,可标注实体的相关属性,病提供可视化标注界面,来简化标注工作。标注工作完成之后,使用工具自带的导出功能能够将标注好的实体导出为Json格式。(2)命名实体序列化标注标注得到的结构化实体数据,还需要进行序列化标注,用于后续的算法模型训练。本实验数据序列化标注按照BIO标注法进行,B-begin代表实体首个字符的标签,I-inside代表实体中间部分及尾部字符的标签,O-outside代表文本数据中非实体部分的标签。序列化标注工作在前文已标注的结构化文本数据的基础上进行,按照实体的类型为实体打上相应的序列化标签,具体标签表示情况如表3-4所示。表3-4序列化标签表示情况实体名称实例开始标签中间和结尾标签临床症状恶心B-symI-sym科室妇科B-depI-dep疾病胃窦癌B-disI-dis治疗方式抗凝B-treI-tre药物奥沙利铂B-medI-med辅助检查胃镜检查B-supI-sup手术胆囊切除术B-opeI-ope护理方式二级护理B-nurI-nur序列化标注实现过程第一步是生成数据字典,将Colabeler标注好的json文件作为原始标注文本数据,将每个实体及其数字标签生成一个数据字典。接着将json文件中的数据打上标签,实体首字符以B-开头,中间及结尾字符以I-inside打标签,其余非实体字符输出O-other标签。将标注完的肿瘤领域电子病历文本按照7:3的比例分成训练集和测试集,用于后续命名实体识别算法模型训练工作。3.1.3.2模型选择在命名实体识别任务中,BiLSTM-CRF是被验证具有较好效果的一类算法模型,其模型结构如图3-2所示。图3-2BiLSTM-CRF模型结构模型整体分为三层,首先将肿瘤文本数据输入embedding层转换为词向量作为BiLSTM层的输入;BiLSTM层通过计算获取每个单词的标签得分矩阵,进行标签预测;CRF层可以根据实际需要来设置一系列约束,对最终输出的预测标签进行优化。Embedding层模型的第一层是look-up层,将文本数据输入后,会利用一个预训练好的embedding矩阵(也可能是随机初始化的)将输入文本中的每个字映射为低纬度的词向量,将文本规格限制为256,每个批次处理的训练数据不可超过256字,最终将每个医学实体映射为词向量的形式,为避免过拟合,将词向量输入BiLSTM层之前会设置一个dropout。BiLSTM层模型的第二层是BiLSTM层,该层能够进行句子特征自动提取。将上一层的词向量序列作为BiLSTM的输入,对于每个时刻的输入都会计算正向LSTM输出的隐状态序列与反向LSTM输出的隐状态序列,并按照输入时刻进行拼接,就能得到该时刻的完整隐状态序列。BiLSTM层最终能够得到一个标签得分矩阵,即对该时间步输入单词的多标签概率表示,可以利用softmax对各个输入的词向量进行单独的标签预测,然而这样获取到的预测标签结果无法利用到之前获取到的标注结果,忽略了上下文的联系,因此无法保证每次输出的标签序列都是正确的,如输出“B-SymptomI-Disease”就是一个无效标签,因此添加了CRF层来优化预测标签。(3)CRF层模型的第三层是CRF层,其目的是为了减少上述的无效预测标签。该层实现了句子级别的序列标注,通过自身的特征函数学习输入的词序列之间预先定义的逻辑规律,使用的参数是一个矩阵,表示从第m个标签到第n个标签的转移得分,因此在为句子中某一个位置进行标注时能够利用到与之相关的已标注标签序列,通过这种方式来对预测标签进行限制,使获取到的结果更符合逻辑,避免出现非法的、无效的序列标签。3.1.3.3实验环境本实验在一台配置有Inteli5处理器,NVIDIAGeForceGTX1700显卡,16GB内存,以及Windows10操作系统的主机上进行,模型训练工作选择Python作为编程语言,选用Pytorch/Tensorflow作为深度学习框架,编译工作在Pycharm平台进行。3.1.3.4评价指标命名实体识别是对文本中每个词进行标签分类预测,可以看做一个分类任务,模型的实验指标如下:TP(TruePositive):将真预测为真TN(TrueNegative):将假预测为假FP(FalsePositive):将假预测为真FN(FalseNegative):将真预测为假实验的评价指标包括精确率(Precision)、召回率(Recall)和F1值(F1-Score),各指标意义和计算方式如下:精确率(P)在本实验中代表预测正确的医疗实体标签和预测为正确的医疗实体标签的比值。召回率(R)在本实验中代表预测正确的医疗实体标签和实际标注的医疗实体标签的比值。F1值是对召回率和精确率之间关系进行平衡的指标,F1值反映了模型整体的性能。3.1.4知识加工及存储(1)实体表抽取实体抽取工作通过调用训练好的BiLSTM-CRF算法模型来完成,从清洗完成的电子病历数据中导出需要的非结构化文本数据,之后利用算法模型进行实体抽取。由于每一份电子病历中都可能多次出现相同的实体,为避免数据冗余,需要对一份病历中抽取出的实体进行去重,之后将实体按照类别输出为CSV表。根据预先定义好的实体类型,总共生成了8个实体表,对应“疾病”、“科室”、“临床症状”、“辅助检查”、“治疗方式”、“手术”、“药物”、“护理方式”等8类肿瘤实体类。(2)实体对齐由于知识图谱构建时使用的数据均来源于单一的数据集,抽取出的实体所指代的医疗知识都是唯一的,不会出现一词多义的情况,因此在进行知识融合时无需考虑知识消歧,只需要考虑实体对齐即可,也就是多类实体指代同一种医疗知识的情况,需要将这些具有相同意义的实体替换成标准实体,其本质也是对实体去重的一个过程。此处,通过构建字典的方式来完成该任务,实体对齐的流程如图3-3所示。图3-3实体对齐流程图在预先定义的实体中,“疾病”和“症状”实体将用于后续疾病诊断功能实现,实体出现的频次将会影响到实体关系三元组的数量,进而影响到诊断功能的效果,因此该两类实体对于实体准确性具有较高要求;而“手术”、“药物”、“治疗方式”、“辅助检查”等实体主要是用于后续临床路径创建时使用,通过为neo4j创建倒排索引来为用户提供迅速的诊疗项目添加功能,在应用的时候对于实体准确性并不作太高的要求,因此词典构建主要是针对“疾病”和“症状”这两类实体进行。首先,利用从临床医学数据库等医疗网站爬取到的“疾病”和“症状”相关数据,构建两个词典,词典包括实体的别称、缩写名称以及英文名称,作为该实体的扩展实体名,每个扩展实体名都有一个对应的标准实体名称。之后将算法抽取出来的“疾病”和“症状”的原始实体表进行去重,再依次查询去重之后的实体是否存在于词典之中,如果在词典中查询到了扩展实体名,那么将该实体替换成扩展实体对应的标准实体名称再存入表中,如果在词典中未能查询到扩展实体名,那么将该原始实体存入表中,最终完成实体融合,形成融合实体表。(3)实体关系表抽取对于某一个病例抽取得到的实体,都是该患者在治疗过程中实际的诊疗知识,因此可以认为各实体之间本身是相关联的,在生成实体关系三元组时,可以直接按照定义好的实体关系为每一条病历生成实体关系三元组,最终获取到“疾病引起疾病”、“疾病属于科室”、“疾病接受辅助检查”、“疾病表现出临床症状”、“疾病需要治疗方式”、“疾病服用药物”、“疾病接受手术”、“疾病采取护理方式”、“临床症状表明疾病”、“临床症状需要治疗方式”、“科室包括临床症状”等12个实体-关系表。(4)Neo4j导入将获取到的CSV数据表导入Neo4j数据库中以绘制肿瘤领域知识图谱,通过Neo4j自带的Cypher语句将实体表导入作为知识图谱中的节点,将实体关系表导入作为知识图谱中连接各节点的边。在肿瘤实体数据表导入的过程中,Neo4j会自动对肿瘤实体表中重复的实体进行去重,保证肿瘤知识图谱中每一个实体都是唯一的。而在导入实体关系三元组时,对于重复出现的实体关系,将会统计该条关系出现的频次,并将之作为该条关系的一个属性来进行存储,后续用于疾病的症状权重计算。3.1.5基于知识图谱的疾病诊断在实际肿瘤疾病诊疗过程中,首先会由患者描述自身存在的症状,医生根据症状结合自身医学知识来判断最有可能引起患者所述症状的疾病,如果主诉症状是疾病的典型症状,那么医生能很快为患者确诊,而如果主诉症状并不典型或者症状数量较多,那么医生很难迅速判断出对应的疾病。因此肿瘤疾病诊疗过程中,关键问题是如何根据患者所描述的多个症状来从多类疾病中判断出最匹配的疾病类别。3.1.5.1基于TF-IDF的症状权重计算医生在对多个症状进行分析时,这些症状可能是由某一疾病引起的概率是不同的,也就是症状之于疾病的权重不同,如何把每一个症状对于不同疾病的权重计算出来,是模拟医生问诊过程的关键。一般来讲,一个症状如果在某一个疾病的所有病历中出现的次数较多,那么出现该症状时医生会很容易联想到该疾病;而如果一个症状在所有疾病的病例中都经常出现,那么医生很难将该症状和某一疾病对应起来,这种思路和TF-IDF算法进行文本加权的思路是一致的,因此可以使用TF-IDF算法来计算症状的权重值,其主要思想可以归纳为:某一症状在某一疾病中记录到的频次在该疾病所有症状总频次中占比越大,则该症状针对该疾病的权重越大。科室中总的疾病数量和出现某一症状的疾病数量占比越大,则该症状针对该科室疾病的区分能力越大。如前所述,在将抽取到的肿瘤实体存入图数据库的过程中,已经对每一类疾病中出现某一个症状的频次进行了数学统计并存入了该条疾病-症状关系边上,症状对于疾病的权重将根据两者之间出现的频次来进行计算。在进行疾病诊断时,考虑到在实际使用的时候,患者只会选择某一科室进行问诊,并且同一科室各疾病之间的症状具有一定的相关性,因此针对某一科室使用TF-IDF算法进行疾病-症状权重计算会更有意义,因此本节将通过TF-IDF算法来对某一科室下所有症状和疾病之间的权重值进行计算。按照科室从构建的知识图谱中读取该科室对应的所有疾病和症状,取出该科室所有疾病共m个,将所有疾病症状做交集,取交集作为所有疾病的症状共n个。对于症状的TF-IDF值的计算方法是将TF值和IDF值相乘,TF值代表的是记录到症状频次在某一疾病总的症状频次中的占比,症状的TF值能够很好地反应患有某种疾病患者表现出症状的概率,TF值的计算公式如(3-1)所示。(3-1)其中Count为该症状在该类疾病所有病历中出现的频次之和,Dn为该类疾病病历中所有症状出现的频次之和。症状的IDF值代表的是该科室中的疾病总数和出现了该症状的疾病数量的比值,IDF值能够很好地反应症状在科室中所有疾病中存在的普遍性,IDF值的计算公式如(3-2)所示。其中N为该科室疾病种类个数,I(Si,Dn)表示该疾病的症状列表中是否包含当前症状,如果包含当前症状就取1,不包含就取0。考虑到如果当前症状在该科室的每一个疾病的症状列表中都有出现这一特殊情况,那么就有IDF=log1=0,将使得后续计算出来的TF-IDF值都为0,因此取一个平滑常数a=0.1来避免上述情况,因此有式(3-3)。则症状Si之于疾病Dn权重由TF值和IDF值的乘积计算得出,如公式(3-4)所示。后续的疾病诊断功能需要使用症状权重来实现,因此同样需要将算法计算得到的疾病-症状权重值存储到知识图谱相应的关系边上,在进行疾病诊断时调用。3.1.5.2基于症状的疾病诊断在肿瘤疾病诊断过程中,患者通常都会表现出多种临床症状,并且患者最终确诊情况也可能不止一个疾病,医生进行诊断时首先会根据患者的临床症状初步筛选出一个待匹配疾病列表,医生会结合医学知识和自身经验来判断,这个过程不是排除疾病的过程,而是对整个待匹配疾病列表进行打分的过程,根据不同症状可能引起疾病的程度吗,来对待匹配疾病进行综合评分并排序,再根据排序结果来决定优先考虑的病种。下面将结合疾病-症状权重来模拟这一算法。在实现过程中,假设输入的症状集合为,从知识图谱中获取症状集合可能表明待排查的疾病集合,再从该集合中依次取出待排查疾病,并且定义Md,s为待排查疾病d和用户输入症状的匹配度取值,则对于该待排查疾病dj和用户输入症状匹配度的计算公式如(3-5)。公式(3-5)中为输入的症状,在计算疾病dj和输入症状的匹配度时,会首先读取该疾病的症状生成一个疾病的症状列表,如果输入的症状Si存在于疾病症状列表,那么Si取1,否则Si取0,是上一小节存入知识图谱中的疾病-症状权重值,完整的肿瘤疾病诊断流程如图3-4所示。图3-4肿瘤疾病诊断流程Step1:用户输入换证所述症状后形成一个症状列表,系统将根据症状列表S从知识图谱中读取就诊科室所有可能的疾病取并集后形成一个待匹配疾病列表。Step2:从待匹配疾病列表依次取出疾病dj,并从知识图谱中获取该疾病和患者症状的权重,按照公式(3-5)计算疾病dj和用户输入的患者主诉症状之间的相似度。Step3:如果当前参与计算的疾病不是待匹配疾病列表中最后一个疾病,则零j=j+1从疾病列表读取下一个疾病,并重新进入Step2;如果当前计算的疾病是待匹配疾病列表中最后一个疾病,则计算完成后进入Step4。Step4:将疾病列表中所有疾病和输入症状主诉匹配度值按照降序排列,输出一个新的疾病列表。Step5:将新的疾病列表作为疾病诊断结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论