APP下载

基于Python语言的冠心病证候与用药规律挖掘研究

2022-10-15陈善达

世界中医药 2022年17期
关键词:气滞医案权值

陈善达 梁 昊 李 亮

(1 湖南中医药大学,长沙,410208; 2 湖南中医药大学中医诊断学湖南省重点实验室,长沙,410208; 3 湖南中医药大学中医心肺病证辨证与药膳食疗重点研究室,长沙,410208)

冠状动脉粥样硬化性心脏病(冠心病)是冠状动脉发生粥样硬化引起管腔狭窄或闭塞,导致心肌缺血、缺氧或坏死而引起的心脏病,属于中医学“胸痹”范畴。冠心病严重危害着人们的生命健康,2018年我国冠心病患者已达1 100万,近年来发病呈上升、年轻化的趋势[1]。中医药在冠心病防治中有独到的优势,因此深入挖掘中医药治疗冠心病的证候与用药规律有重要意义。本文通过运用Python语言编写程序脚本对从3个学术数据库收集到的冠心病中医病案进行数据挖掘,以期为Python语言在中医药领域的运用提供思路与方法。

1 资料与方法

1.1 文献来源 所有病案数据来源于国家知识基础设施数据库(China National Knowledge Infrastructure,CNKI)、中国学术期刊数据库(China Science Periodical Database,CSPD)、中文科技期刊数据库(Chinese Citation Database,CCD)等数据库。

1.2 检索策略 运用CNKI、CSPD、CCD数据库,以“冠心病验案”“冠心病举隅”或“胸痹验案”“胸痹举隅”为检索式,检索2010年1月1日至2020年1月1日的所有期刊文献,共检索出610篇;筛选并剔除重复文献,最终纳入222篇,共计医案343个。

1.3 纳入标准 1)符合西医“冠心病”或中医“胸痹”诊断标准且证候、证型、方药完整的中医诊治文献,诊断标准参照《内科学》以及《中医内科学》[2-3];2)使用中药内服法治疗。

1.4 排除标准 1)学术思想探讨与综述类的文献;2)单味药、药对及复诊处方。

1.5 数据规范与数据库建立

1.5.1 数据库的建立 运用Excel 2019收集每个病案的证型和用药构建冠心病用药数据库,采用双人分别录入模式,录入完成后进行双人交叉核对,若存在不一致处则协商解决,以确保数据的准确性和规范性。

1.5.2 数据规范 参照中国中医药出版社出版的新世纪第4版《中药学》以及朱文锋教授主编的《证素辨证学》[4-5],对其中涉及的证候、证型、药物的名称进行规范化处理并将证型中包含的病性证素提取出来,例如,心慌→心悸,大便干结→便秘,炙甘草→甘草,山萸→山茱萸,气虚夹瘀→气虚血瘀→气虚+血瘀等。见表1。

表1 部分证素、中药规范

1.6 数据分析 运用Excel 2019分别对证候、证素和用药进行频数统计,按降序处理并计算相应的频率。提取频率≥10%的所有证素、证候、中药以及频次≥10的证素组合。在PyCharm Community Edition 2020.1.1中运行Python 3.8.3,运用xlwings工具包将Excel文件内容提取到TXT文件中,运用Python内置函数对数据进行处理,运用itertools工具包对所有高频证素组合的高频证候或高频用药进行排列组合,设置最小组合数为2,最大组合数为6,其中包含证素与证候或中药的组合,也包含没有证素只有证候或中药的组合,筛选出既包含证素组合又包含证候或中药的所有组合,进行频数分析,筛选出频率≥7%的“证素-证候”以及“证素-中药”组合,并计算各组合的权值。根据朱文锋教授的双层频权剪叉算法确定的权值计算方式为:某一“证素-证候”或“证素-中药”组合的频数/出现该证候或使用该中药组合的所有“证素-证候”或“证素-中药”组合的频数[6-10]。例如,“气虚+血瘀,苔白,乏力”这一“证素-证候”组合的权值=“气虚+血瘀,苔白,乏力”这一“证素-证候”组合的频次/所有包含“苔白,乏力”这一证候组合的“证素-证候”组合的频次。权值越高则说明特异性越强。筛选出所有权值≥0.8的组合,再将筛选的结果取并集得出每一证素组合的高频证候或高频用药,并用Python绘图工具包Pyecharts绘制关联图。

2 结果

2.1 频数分析 本研究录入的343个冠心病医案处方中,涉及17个单一证素,累计频次815次,频率≥10%的有8个,分别为血瘀、痰、气虚、气滞、阳虚、阴虚、火(热)、湿;涉及94种证素组合,累计频次288次,频次≥10次的组合有6个,分别为“气虚+血瘀”“气滞+血瘀”“痰+血瘀”等。见表2。涉及证候218个,累计频次4 418次,出现频率≥10%的证候共30个,分别为胸闷、胸痛、气短、苔白、舌暗、乏力、脉弦、心悸、舌红、脉细等。见表3。涉及313味中药,累计频次4 852次,使用频率≥10%的中药共37味,分别为丹参、甘草、川芎、半夏、茯苓、当归、黄芪、薤白、赤芍、瓜蒌等。见表4。

表2 343个冠心病医案处方高频证素分布

表3 343个冠心病医案高频证候分布

表4 343个冠心病医案高频中药分布

2.2 权值计算与筛选 对包含高频证素的127个病案进行排列组合后,筛选出频率≥7的组合,其中“证素-证候”组合共计377个,“证素-中药”组合共计245个。对所有组合进行权值计算,其中权值≥0.8的“证素-证候”组合183个,权值≥0.8的“证素-中药”组合153个。见表5~6。取交集后得到4个“证素-证候”组合,5个“证素-中药”组合,其中中药药味≥5味的有3个。见表7~8。“证素-证候”与“证素-中药”组合的关联图见图1~2。

表5 343个冠心病医案部分“证素-证候”权值分布

表6 343个冠心病医案部分“证素-中药”权值分布

表7 343个冠心病医案高频“证素-证候”组合

图1 343个冠心病医案“证素-证候”与“证素-中药”关联

表8 343个冠心病医案高频“证素-中药”组合

图2 343个冠心病医案“气虚+血瘀”与证候、中药关联

3 讨论

冠心病属于中医学“胸痹”的范畴。中医学认为胸痹的发生多与寒邪内侵、饮食失调、情志失节、劳倦内伤、年迈体虚等因素有关。其病机有虚实2方面,实性病机有寒凝、血瘀、气滞、痰浊痹阻胸阳,阻滞心脉;虚性病机有气虚、阴虚、阳虚,肺、脾、肝、肾亏虚,心脉失养。在本病证的形成和发展过程中,大多因实致虚,亦有因虚致实者。本研究通过对343个冠心病中医病案频数分析得出,与冠心病关联度较高的实性证素为血瘀、痰、气滞、湿、火(热),出现频次总计531次,虚性证素为气虚、阳虚、阴虚,出现频次总计230次,可见冠心病发病主要以因实致虚为主。从频次与频率来看,病机主要与血瘀、痰浊、气虚所致的心脉痹阻有关。通过对343个冠心病病案的挖掘分析发现,血瘀为冠心病的基本证素,多与气虚、气滞、痰、阴虚等证素相结合形成气虚血瘀、气滞血瘀、痰瘀互结、气阴两虚夹瘀、气虚血瘀夹痰等证型。从“证候-证素”分布可以看出,4个证型的共同证候为胸闷、胸痛与舌暗,因瘀血痹阻心脉所致;心悸为气虚血瘀、痰瘀互结与气滞血瘀共有的证候,由于瘀血痹阻,心脉失养所致;失眠为气虚血瘀、气滞血瘀和气阴两虚夹瘀共有的证候,由于瘀血不去、心血不生、心神失养所致;脉细为气虚血瘀与气阴两虚夹瘀共有的证候,由于体虚,运血无力所致;脉弦为痰瘀互结与气滞血瘀共有的证候,是痰与气滞的特征性证候;乏力为气虚血瘀与痰瘀互结共有的证候,由于机体阳气不运所致;气虚血瘀特有的证候有苔白、舌淡、脉沉、汗出与气短,由于血运不畅、宗气不足、卫表不固所致;痰瘀互结特有的证候有苔腻、纳呆、苔厚、脉滑与舌胖,由于痰浊内阻、脾胃运化失常、浊气上泛所致;气滞血瘀特有的证候有瘀点(斑)舌与苔黄,由于气血运行不畅、郁而化热所致。从“证素-中药”分布可以看出,气虚血瘀证用药可归纳为补阳还五汤合八珍汤加减,具有益气活血通络的功效;气滞血瘀证用药可归纳为柴胡疏肝散合桃红四物汤加减,具有疏肝解郁、理气活血的功效;痰瘀互结证用药可归纳为温胆汤合瓜蒌薤白白酒汤加减,具有理气化痰、通阳散结的功效。前3个组合中都用到了丹参和郁金,二味药均为活血化瘀药。丹参中的丹酚酸A、丹酚酸B、丹参素和丹参多酚酸盐等主要水溶性成分可以通过保护血管内皮、舒张冠状动脉、促进血管再生、抗血小板聚集、抑制炎症反应、抗细胞凋亡和清除自由基等多角度对缺血性心脏病起防治作用[11-14]。郁金中的莪术二酮能够提高cAMP水平,抑制胞内Ca2+调动,从而抑制血小板凝集,同时也能增强血管舒张能力以减少血栓的形成[15]。郁金中的柚皮素具有抗氧化、预防动脉粥样硬化和降血脂的作用[16]。网络药理学研究表明,郁金能通过参与调节脂质代谢、氧化应激、免疫调节等来发挥清心凉血的功效[17]。

与传统的运用软件进行中医药数据挖掘比较,选择编程语言可以根据自身的需求编写代码实现个性化的结果,使挖掘过程更具灵活性。例如,可以编写程序脚本对TXT、Word或Excel等进行数据批量处理,根据需求设计算法,也可以进行个性化绘图[18]。运用编程语言最大的特点是具有先进性,传统的软件维护更新较慢,许多功能比较落后,编程便可以弥补这一缺陷。与C语言、Java等代码冗杂、格式繁琐的编程语言比较,Python语言是目前最接近自然语言的高级语言,其代码简洁、可读性高的特性适合初学者学习,并且学习投入与产出比高于其他语言[19-20]。Python还有许多开源免费、功能强大的工具包,在数据分析方面,Python有可以用于矩阵运算的NumPy包,用于数据处理的Pandas包,用于统计分析的SciPy包,用于机器学习的Scikit-Learn包,用于深度学习的Keras包、TensorFlow包和PyTorch包等,以及用于数据可视化的Matplotlib包和Pyecharts包等。

自2018年以来,Python的使用人数整体呈上升趋势,在TIOBE发布的2020年11月编程语言排行榜中显示,Python首次超越Java成为排名第2的编程语言。如今Python的发展势头强劲,日后在各大学科领域将会有诸多用武之地,同样地,Python也将在中医药领域出现更多的创新与突破。

猜你喜欢

气滞医案权值
一种融合时间权值和用户行为序列的电影推荐模型
自拟脾胃安方治疗脾虚气滞型餐后窘迫综合征的临床观察
气滞胃痛颗粒联合叶酸在慢性萎缩性胃炎治疗中的应用价值分析
加味乌药汤合失笑散加减治疗气滞血瘀型原发性痛经的临床疗效观察
基于NLP的中医医案文本快速结构化方法
类风湿关节炎并寰枢关节脱位死亡1例并文献复习
谭波诊治脑中风恢复期验案2则
财务风险跟踪评价方法初探
基于洪泛查询的最短路径算法在智能交通系统中的应用
从滞论治慢传输型便秘