目 录
知识图谱技术可以帮助我们建立疾病、证候、症状、治法、方剂、药物等核心概念之间的关系,把各种中医临床知识资源关联起来,实现资源的整合。Neo4j图数据库(Graph Database)是基于图论实现的一种新型NoSQL数据库,Neo4j在中医药知识图谱技术体系中可作为图数据的存储仓库,支持各种图算法和应用。
在信息所数据资源(特别是10余万临床医案)的基础上,可以构建“病、证、症、方、药”等核心概念所构成的知识图谱,将事实型知识转换为概念性知识,更好地支持临床研究并辅助临床决策。例如,基于临床知识图谱,可建立临床表现(症状、证候、疾病)与方剂、中成药之间的关系,据此向用户推荐药物疗法(推荐算法);也可检索与用户当前病历相关的医案、指南和知识库内容,辅助用户进行决策。
为实现上述想法,我们选择“中医治疗支气管哮喘”作为专题,在前期工作“中医哮喘专题知识库”的基础上,将中医临床数据集导入Neo4j图数据库中,并通过一些查询进行了测试。下一步拟实现图搜索、中成药推荐等功能。在本文中报告了初步的实验结果。
在前期工作中,已采集文献中关于名医、诊疗、病理、药物等方面的数据,从而建立了中医治疗支气管哮喘专题的结构性数据库。该数据库对中医哮喘诊疗技术的相关数据进行了全面采集和存储,内容包括:古今外文献、诊疗规范、方剂、中药、临床研究、名医经验、医案、实验、养生保健、诊疗技术、不良反应、西药、实验室检查等内容,数据量达到八万余条。
如图 1 所示,我们从数据库中提取出病、证、症、方、药等实体的信息,以及病证关系、方证关系、治疗关系、药证关系、方剂组成关系、药症关系等实体间关系,构成中医临床知识图谱。接下来,拟基于知识图谱实现的第一个应用是中成药推荐。其基本思想是,根据知识图谱之中疾病、证候、症状、病因及方药功效之间关系,搜寻临床表现与中成药之间的路径,这些路径就代表了临床表现与中成药之间的潜在关系,或者说在某个场景下可以适用或不适用的中成药(可推广到方、药等其他疗法)。具体的路径可以包括:
证候——>症状——>功效——>方药
证候——>病因——>功效——>方药
证候——>方药
疾病——>证候——>方药
反过来,“禁忌推荐”的路径包括:
方药—不能同时服用—>方药
方药—适应症—>患者情况(孕妇、特定疾病等)
图1中医临床知识图谱示意图
使用Python语言编写程序,将知识图谱的内容导入Neo4j图数据库(如图 2所示)。在知识图谱中,将中药、中成药、方剂、功效、症状、疾病、证候、病因、化学成分等概念设定为节点,建立节点之间的上下位关系和相关关系。通过节点的属性,表示每个实体的信息。例如,可将中药的拉丁文全名、中文药名、药物疗效归属、药性、药味、功效、中文拼音、来源等设置为节点的属性。
图2在Neo4j中展示中医临床知识图谱
如图 3 所示,
图3 通过Neo4j对中医临床知识图谱进行查询处理
查询 1 :查询某个节点(如中成药“儿童清肺口服液”)的信息
MATCH (n{name:'儿童清肺口服液'}) RETURN n |
图4 查询中成药“儿童清肺口服液”的信息
查询 2 :查询“止血药”有哪些?
MATCH (n:`止血药`) RETURN n LIMIT 25 |
图5 查询“止血药”有哪些
查询 3:查询“菊科”的中草药
通过“上位词”构成的路径查询,可找出属于同一科(如“菊科”)的植物。
MATCH (n:`科`{name:"菊科"}) RETURN n LIMIT 25 |
图6 查询“菊科”的中草药
查询4 :与“人参”为同一属的植物
通过“上位词”构成的路径查询,可找出与某味中草药(如人参)属于同一属的植物。
MATCH (p:`种`{name:"人参"} )-[r1:`上位词`]->(c),(q:`种` )-[r2:`上位词`]->(c) RETURN p,c,q |
图7 查询与“人参”同一属的中草药
查询 5 :搜索“白茅”的信息
在搜索某一个药物时,可以展示出与这个药物的直接相关的药性、药味、药物功效、药物别名、中文属名、中文科名、拉丁文属名、拉丁文全名,具体如下:
MATCH (n{name:'白茅'}) RETURN n |
图8 查询与“白茅”的信息
查询 6 :搜索“葱属”的植物
在搜索某一个拉丁文属名时,可以展示出与这个属名相关的中文科名、中文属名以及其直接相关药物(即它的下位词:种)的中文药名、药性、药味、药物功效归属名,具体如下:
MATCH (p:`属`{name:"葱属"} ) RETURN p |
图9 查询“葱属”的植物
查询 7 :证候——症状——功效——中成药路径查询
基于知识图谱的路径查询(如证候——症状——功效——中成药),可以发现证候/疾病与中成药之间的治疗关系,从而帮助我们进行中成药推荐。例如:如果肺经痰热具有痰多粘稠,气促等临床表现,而痰多粘稠,和气促一般用化痰,平喘的治法治疗,那么如果儿童清肺口服液具有化痰,平喘的功效,那么就可以治疗肺经痰热的证候
MATCH (syndrome:`证候`)-[r:`现象表达`]-(symptom:`症状`)-[s:`治疗`]-(foaf:`功效`)-[t:`具有...功效`]-(drug:`中成药`) WHERE syndrome.name = '肺经痰热' RETURN syndrome,r, symptom,s, foaf,t,drug |
图10 基于图路径查询进行中成药推荐
查询 8 :证候——病因——功效——中成药路径查询
MATCH (syndrome:`证候`)<-[r:`导致`]-(origin:`病因`)<-[s:`治疗`]-(function:`功效`)-[t:`具有...功效`]-(drug:`中成药`) WHERE syndrome.name = '肺经痰热' RETURN syndrome,r, origin,s, function,t,drug |
图11 基于“证候——病因——功效——中成药”进行中成药推荐
查询 9 :证候——功效——中成药路径查询
本查询在证候与中成药之间以“功效”为中介建立关系。查询结果将返回所有证候-功效之间的路径(长度在1~5之间)。返回值可返回路径(path)、中成药名称列表、或中成药实体。
MATCH path=(syndrome:`证候`)-[*1..5]-(function:功效)--(drug:`中成药`) WHERE syndrome.name = '肺经痰热' RETURN path |
查询 9 :症状——功效——中成药路径查询
在某一临床场景中,根据患者的一些症状,可以沿着症状——功效——中成药路径进行搜索,找到中成药,也可以按照某种规则对其进行排序。
MATCH path=(symptom)-[s:`治疗`]-(function:`功效`)-[t:`具有...功效`]-(drug:`中成药`) WHERE symptom="外感风寒" or symptom="咳嗽" symptom.name = "面赤身热" or symptom.name = "气促" or symptom.name = "痰黄黏稠" or symptom.name = "咽痛声哑" or symptom.name = "舌淡红" or symptom.name = "脉数" or RETURN path |
采用知识图谱和Neo4j图数据库技术,可基于中医临床数据建立病、证、症、方、药等核心概念的知识网络,实现中医临床知识体系的可视化,帮助专家梳理医案中蕴含的知识,帮助中医药工作者研究历代医家的用药规律和治疗方法。中医临床知识图谱的构建和分析工作才刚刚起步,本文档汇报了数据准备和导入的初步结果。接下来还要深入学习Neo4j的高级功能,在中医临床知识图谱上实现处方和中成药推荐等功能。
【TCMKB】最靠谱的养生知识应用——基于知识图谱的“中医养生”
更多中医哮喘知识,点击下方阅读原文搜索↓↓↓
本文作者:于彤。转载请注明出处。
大家好,小美今天来为大家解答那年我们十七岁以下问题,那年我们十七岁电影很多人还不知道,现在让我们一起来看看吧!1、那年我们十七岁 爱
大家好,小豪今天来为大家解答differ以下问题,differs很多人还不知道,现在让我们一起来看看吧!1、不同 ; 不同于 ; 有区别 ; 不一致 ; 不一致, 不同
平庄镇某村村民将自家地盘承包出去四年,在此时代发现地盘涨价了,遂反悔想要回地盘,这事该怎么办?近日,平庄司法所调整了一路辖区内因地
近日首批姑苏市中小学校“花匠前锋” 党建文化品牌示范学校示范党支部、示范岗评选究竟发布张家港入选3所“花匠前锋”党建文化品牌示范学校
大家好,小娟今天来为大家解答居家风水知识大全以下问题,居家风水知识大全书籍很多人还不知道,现在让我们一起来看看吧!1、家装风水之卫生
引言迎接来到中国。您能够选择移动支出、银行卡、现金等一系列支出办事。本指南将为您介绍各类支出办事的获取体式和使用流程。01银行卡02移动
在目前手游的市场中,脚色设计无疑是吸引玩家眼球的主要身分之一。《物华弥新》作为一款以文物拟工资焦点的策略卡牌游戏,其脚色设计在视觉
大家好,小乐今天来为大家解答防火门等级以下问题,防火门的等级有几级很多人还不知道,现在让我们一起来看看吧!1、一级防火门是指能够在火
Copyright 2024 优质自媒体,让大家了解更多图文资讯!