APP下载

基于Neo4j的冠心病中医辨证论治知识图谱研究

2021-08-23陈善达夏帅帅邓文祥晏峻峰

中国医药导报 2021年21期
关键词:病性证素权值

陈善达 夏帅帅 邓文祥 李 亮 晏峻峰

1.湖南中医药大学中医学院,湖南长沙 410208;2.中医诊断学湖南省重点实验室,湖南长沙 410208;3.湖南中医药大学信息科学与工程学院,湖南长沙 410208

冠心病是冠状动脉发生粥样硬化引起管腔狭窄或闭塞,导致心肌缺血、缺氧或坏死而引起的心脏病,属于中医“胸痹”范畴。冠心病严重危害人们的生命健康,2018 年我国冠心病患者已达1100 万,近年来发病愈加呈上升、年轻化的趋势[1]。中医药在冠心病防治中有着独特的优势[2-3],因此,深入挖掘中医药在冠心病中的辨证论治规律有着重要意义。

辨证论治是通过望、闻、问、切四诊合参收集患者的证候资料,加以综合分析,辨清疾病当前阶段的病机特点并确定治法方药的过程,是中医学的诊疗特色。如今中医药事业的传承与发展到了瓶颈期,亟需从现代信息技术中寻求突破[4]。朱文锋教授团队创立了证素辨证学,由证候推断出特定的证素并结合成完整证型,对中医辨证环节起到了执简驭繁的作用[5],相反,将完整的证型拆分成证素组合可以更清楚地反映疾病当前阶段的病机特点[6]。因此,本研究以证素辨证为核心,运用图数据库表达其与证候、中药的关系。

Neo4j[7]是一种开源的图数据库,相比传统数据库,更能以图形节点的形式呈现数据与数据之间的关系,并借此创造一种既视感,更有利于接受。Neo4j 通过其特有的Cypher 语句能够实现与其他数据库一样的结构化编程,实现数据的导入、增、删、改、查等操作。已有学者将Neo4j 运用于中医药领域的研究,如赵凯等[8]采用Neo4j 构建了桂枝汤类方的知识图谱;姜惠娟等[9]以《中国药膳大辞典》为数据来源,采用Neo4j 构建药膳方剂图数据库。基于此,本研究探讨采用Neo4j 构建一个小型冠心病辨证论治知识图谱。

1 资料与方法

1.1 文献来源与检索方式

数据来源于中国知网、维普及万方数据库。以“冠心病”“胸痹”“举隅”“验案”为关键词或主题词检索2010 年1 月至2020 年2 月所有文献,共检索出770 篇,剔除重复的文献,纳入符合要求的文献,共208 篇。

1.2 文献纳入标准

符合西医“冠心病”或中医“胸痹”诊断标准且证候、证型、方药完整的中医诊治文献,诊断标准参照人民卫生出版社出版的第9 版《内科学》[10]教材,以及中国中医药出版社出版的第4 版《中医内科学》[11]教材。

1.3 文献排除标准

①学术思想探讨与综述类文献;②单味药或药对不予纳入。

1.4 数据规范、分析与数据库的建立

1.4.1 数据规范 参照中国中医药出版社出版的第4 版《中药学》[12]以及朱文锋教授的《证素辨证学》[13]对其中涉及的证候和药物的名称进行规范化处理并将证型中包含的病性证素提取出来。例如:大便不成形→便溏,山萸→山茱萸,气虚血瘀→气虚、血瘀等。

1.4.2 数据分析与数据库的建立 将筛选出的208 篇文献作为研究对象,采用Microsoft Office Excel 2010 建立数据表记录每个案例的证候、证型以及用药等信息,共录入329 个案例,统计证候、病性证素和中药的频次与频率。在Pycharm 2019.1.3 中采用Python 3.7 进行权值计算,参照朱文锋教授的双层频权剪叉算法[14]确立的权值计算方法:某一证候、病性证素或中药在某一病性证素中出现的频次与该证候、病性证素或中药在所有病性证素中出现的总频次的比值。例如:胸闷在“血瘀”这一病性证素中出现的频次为180,在所有病性证素中出现的频次为276,则胸闷在病性证素“血瘀”中的权值为0.65。权值可以反映某一证候、病性证素或中药在一定范围内的关联性,权值越靠前则关联性越强。在Pycharm 2019.1.3 中采用Python 3.7实现Apriori 算法对所有中药进行关联规则分析,最小支持度设为10%,最小置信度设为60%。随后,将权值计算以及关联分析得出的结果分别导入到Neo4j Community 3.5.14 中构建图数据库,并进行数据一致性检验,目的是找出并修改节点与关系不匹配的节点或关系,例如:“瘀点(斑)舌→血瘀”的关系为“证候→中心证素”,若变为“中心证素→证候”则为节点与关系不匹配[15]。采用的Cypher 语句功能:load 将文件导入Neo4j 中;merge 创建节点或关系;set 设置节点属性;match 查询指定节点或关系;where 设定查询的条件;order by 将结果进行排序;desc 按降序排序;limit 限制输出结果的数量。

2 结果

2.1 频次统计

本研究涉及证候217 个,累计出现4202 次,出现频率≥10%的证候有29 个,其出现频率≥50%的证候有胸闷、胸痛、气短、苔白、乏力,见表1;涉及病性证素17 个,累计出现770 次,出现频率≥10%的病性证素有8 个,分别为血瘀、痰、气虚、气滞、阳虚、阴虚、湿、火(热),见表2,与冠心病关联度最高的病性证素为血瘀、痰、气虚,与冠心病现代中医证候特征的临床流行病学调查结果相符[16]。本研究涉及药物301 种,累计用药频次4576 次,使用频率≥10%的中药有37 种,其中使用频率≥50%的药物有丹参、甘草,见表3。

表1 出现频率≥10%证候分布表(前10 位)

表2 出现频率≥10%病性证素分布表

表3 使用频率≥10%中药分布表(前10 位)

2.2 权值计算

在Pycharm 2019.1.3 中采用Python 3.7 对出现频率≥10%的证候、病性证素、中药进行权值计算,共计582 条,部分结果见表4,如第1 条气虚为在“血瘀”这一病性证素中占比最大的证候,气虚在所有病性证素中出现的总频次为110 次,有77%都出现在“血瘀”这一病性证素中,以此类推,“瘀点(斑)舌”这一证候95%都出现在“血瘀”这一病性证素中。

表4 出现频率≥10%证候、病性证素、中药权值表(排位第1)

2.3 关联分析

在Pycharm 2019.1.3 中采用Python 3.7 实现Apriori 算法对所有中药进行关联规则分析,最小支持度设为10%,最小置信度设为60%,挖掘出61 条关联规则,见表5。其中前项为前提事件,后项为伴随事件,支持度为前提事件在所有事件中出现的频率,置信度为在前提事件出现的情况下,伴随事件出现的概率。

表5 出现频率≥10%的中药关联表(置信度≥75%)

2.4 基于Neo4j 表达冠心病辨证论治规律

采用match、where 语句条件查询节点,然后采用set 语句为节点设置各项属性,name 为节点名,_name为关系名,freq 或freq1 为频次,freq2 为频率,weight为权值,support 为支持度,confidence 为置信度,见图1。采用match 语句查询“血瘀”“痰”“气虚”3 个病性证素的所有关系,然后采用order 和desc 语句按权值降序排序,最后采用limit 语句限制输出前20 条关系,见图2~4。同理,采用match、order、desc、limit 语句输出置信度≥75%的中药关系图,见图5。图中圆圈代表节点,箭头代表关系,关系a 为“证候→中心病性证素”,关系b 为“中心病性证素→病性证素”,关系c为“中心证素→前项中药”,关系d 为“前项中药→后项中药”。

图1 节点/关系属性图

图2 血瘀前20 关系图

3 讨论

图3 痰前20 关系图

图4 气虚前20 关系图

图5 中药置信度≥0.75 关联图

图数据库可以很直观地将数据与数据间的关系呈现在人们眼前。Neo4j 是当下热门的图数据库之一,与普通的图处理或内存级数据库不同的是,其实现了专业数据库级别图数据模型的存储;其性能比其他数据库稳定且运行速度要更快[7]。本研究采用频数统计、权值计算、关联分析以及Neo4j 技术构建了一个简单冠心病辨证论治知识表达图数据库。本研究结果所示,将辨证论治数据导入Neo4j 图数据库中,通过为关系设置属性,并通过特定的查询、筛选语句可以更清楚地辨识出辨证论治中的复杂关系,这为中医辨证论治知识表达图数据库的构建提供了方法指导。

猜你喜欢

病性证素权值
一种融合时间权值和用户行为序列的电影推荐模型
糖尿病前期中医证型及证素特点分析
2型糖尿病合并肥胖患者的相关危险因素和中医证素分析
脾系藏象病位与病性特征研究
基于因子分析及聚类分析的241例感染后咳嗽中医证素证型研究
基于“风痰瘀虚”的高血压脑小血管病病性证素的临床表现与影像学特征研究
CONTENTS
八珍汤加味序贯中药包热熨治疗气血两虚型子宫腺肌病性痛经的临床观察
基于权值动量的RBM加速学习算法研究
《伤寒论》三阳三阴病证的证素辨证研究