基于图数据模式匹配的《伤寒论》辨证论治计算机建模医理设计
2019-09-10张浩浩周璐孙燕徐凤芹李宇航
张浩浩 周璐 孙燕 徐凤芹 李宇航
摘要 以《伤寒论》的辨证论治原则为指导,提出一种模拟医生进行辨证论治思维的计算机模型设计。该模型设计基于Neo4j的图数据构建技术、Cypher语言的图模式匹配技术以及Jaccard相似度公式,旨在实现对输入症状进行分析、推理,以明确病证的诊断及鉴别诊断的结果,并給出对应的治疗方剂,即模拟《伤寒论》中“观其脉证,知犯何逆,随证治之”的辨证论治过程,以期为中医临床辅助诊疗模型的构建提供借鉴与启发。
关键词 伤寒论;辨证论治;图数据;模式匹配;拓扑结构;Neo4j;Cypher;Jaccard
Computerized Modeling of Medical Principle Design Based on Syndrome Differentiation and Treatment in the Treatise on Cold Damage and Graph Data Pattern Matching
Zhang Haohao1,Zhou Lu1,Sun Yan1,Xu Fengqin2,Li Yuhang1
(1 School of Chinese Medicine,Beijing University of Chinese Medicine,Beijing 100029,China; 2 Xiyuan Hospital,China Academy of Chinese Medical Sciences,Beijing 100091,China)
Abstract Guided by the principle of syndrome differentiation and treatment in the Treatise on Cold Damage,this paper proposes a computer model design that simulates doctors′ thinking of syndrome differentiation and treatment.The model design is based on Neo4j′s graph data construction technology,Cypher language′s graph pattern matching technology and Jaccard′s similarity formula,aiming at analyzing and reasoning the input symptoms to clarify the diagnosis and differential diagnosis results of the disease and syndrome,and to give the corresponding therapeutic formula.It simulates the syndrome differentiation and treatment of “watching the pulse and syndrome,knowing the problem,and treating it based on the syndrome” in the Treatise on Cold Damage,in order to provide reference and enlightenment for the modeling of clinical assistant diagnosis and treatment in traditional Chinese medicine.
Key Words Treatise on Cold Damage; Syndrome differentiation and treatment; Graph data; Pattern matching; Topological structure; Neo4j; Cypher; Jaccard
中图分类号:R222.2;R24文献标识码:Adoi:10.3969/j.issn.1673-7202.2019.09.062
《伤寒论》是我国第一部理法方药完备,理论联系实践的医学经典著作[1]。其第16条“观其脉证,知犯何逆,随证治之”,确立了中医临床诊疗的特征性法则——辨证论治,奠定了千百年来中医临床诊疗的不朽之基。
随着21世纪智能化技术的发展,辨证论治与智能技术结合,进行临床辅助诊疗系统的研究,有望帮助临床医生更高效地利用医学知识分析患者病情,精准的制定治疗方案,提高临床诊疗效果。
目前,这一研究已经取得了诸多可喜进展,如基于BP神经网络[2-3]、贝叶斯网络[4-5]开发的计算机诊疗模型。但这些模型的实现均是基于大量高质量医案数据,利用机器学习技术从中自学习出临床症状与诊断、处方间的匹配规则,建立诊疗模型。高质量医案数据的不足或医案虽多但质量过低,都将难以保证匹配规则的准确提取,导致欠拟合或过拟合的发生,使模型实际应用效果不佳。高质量临床医案数据的稀缺,在一定程度上制约了利用机器学习技术进行模型的构建。
得益于近年来认知科学与数据库技术的进步,出现了可模拟人类认知结构与联想思维的图数据库与图模式匹配技术,这些技术的出现将有望直接基于已有的中医药知识完成推理、决断等拟人思维的辨证论治过程,从而减少了大规模高质量医案数据的依赖,降低了建模数据的获取难度,这为构建模拟辨证论治的临床诊疗模型提供了一种新的建模方案。因此,本研究将基于图数据库与图模式匹配技术,根据《伤寒论》的辨证论治原则,提出一种模拟医生辨证论治思维的临床诊疗模型设计框架,以期为临床辅助决策模型的构建提供借鉴与启发,现将结果报道如下。
1 《伤寒论》与辨证论治
《伤寒论》确立了中医辨证论治体系的基本框架与临床理法方药应用的基本规范,为中医学临床医学的发展奠定了坚实的基础。所谓“辨证论治”,指的是将四诊所收集的资料,运用中医学理论进行分析、综合,辨清疾病的病因、性质、部位以及邪正之间的关系,概括、判断为某种性质的证候并据此确立相应的治则和治法,选择适当的治疗手段和方法来处理疾病的思维和实践过程[6]。因此,辨证论治的实践过程可概括为如下3个步骤:1)全面采集临床症状——“观其脉证”;2)对采集的症状进行综合分析,确认病机,明确证候诊断——“知犯何逆”;3)据证立方——“随证治之”。
千百年来,辨证论治有效地指导着临床实践,成为中医临床诊疗的基本原则。在中医诊疗智能化趋势日趋加深的当下,辨证论治思想是构建中医临床辅助诊疗模型的重要理论指导。
2 图数据与图数据库
2.1 图数据
1968年美国唐纳德·克努特(Donald Ervin Knuth)教授在所著的《计算机程序设计艺术》第1卷《基本算法》中第1次详细梳理了计算机各种数据的逻辑结构和存储结构,图数据便是其中之一[7]。所谓的图数据(Graph Data,GD)指的是以图的形式来表示事物和事物间的映射关系。所谓的图(Graph)指的是一个包含节点(Node)和关系(Relationship)的对象,属性(Property)包含于节点和关系中[8]。图1以“《伤寒论》相关知识”为例说明了图的各个组件,并给出了它们之间如何相互关联的可视化表示。这种“点边点”的图数据结构与人类认知结构中的拓扑有向图结构相符,是一种模拟人类联想、认知与推理思维路径的数据结构。
相比于关系型数据,图数据更擅长表示事物间的复杂关系,我们所熟知的社会网络、生物网络和动态网络传输图正是通过构建图数据,来展示实体与实间复杂多样的关系,从而取得了良好的说明效果。
基于图结构的数据表现形式,更加符合人类联想的认知思维,将其作为知识的载体引用于本研究课题,将提升中医药知识表达的充分性和准确性,从而为“辨证论治”构建更加完备的知识数据库。
2.2 图数据库
图数据库(Graph Database,GDB)作为图数据的载体,使用图来存储、映射和查询关系,因而也被称作面向图形的数据库[9]。图数据库致力于数据的高效存储和快速查询,相比于传统的关系型数据库,图数据库更善于处理大量复杂、互连接、低结构化的数据,这些数据变化迅速,需要频繁的查询——在关系数据库中,这些查询会导致大量的表连接,因此会产生性能上的问题。随着研究与开发的不断深入,图数据库的应用范围已从典型的模式识别、显微照片的分析发展到侦测、遥感、软件设计等领域[10-12]。
当下,图数据库技术已具备辅助中医诊疗的潜力,可用以解决中医的知识表达和存储问题。其中,Neo4j是一个开源图数据库,它被设计用于解决数据不断高速增长而产生的数据存储问题,已成为目前最受欢迎的图数据库。国外已有学者将Neo4j应用于生物医学领域的报道[13-16],如Armin Deffur等人[16]利用Neo4j构建起大型生物学知识图数据库,通过挖掘、分析大数据集与人类病理生物学的复杂联系来捕获疾病状态的分子特征,解决了组学数据上下文功能解释的难题。
3 图数据与模式匹配
模式匹配(Pattern Matching)是数据结构中字符串的一种基本运算,即给定一个子串,要求在某个字符串中找出与该子串相同的所有子串。假设P是给定的子串,T是待查找的字符串,要求从T中找出与P相同的所有子串,这就构成了模式匹配问题。模式匹配相当于人类大脑将收集到的信息与记忆中的知识进行匹配从而获取对事物认知的思维过程。
图数据与模式匹配的结合形成了图模式匹配(Graph Pattern Matching)。作为模式匹配的一种,图模式匹配的结果是以图而不是以传统的字段信息的形式展现,这使我们可以更为直观地捕获和理解实体间的关系。图模式匹配技术现已被广泛用于知识发现、生物学、化学信息学、动态网络流量以及社交网络和智能分析等热点研究领域[17]。
在中医学领域,病、症、证、方、药等术语概念所表示的实体间存在着多维多阶的联系,如何总结和把握这些复杂的联系以指导临床,一直是困扰中医人的難题。
我们设想,将图数据与模式匹配相结合用于中医药知识表达与检索,一方面可以充分展现和挖掘中医药领域实体间的显性知识和隐性联系,另一方面,通过模拟人类的认知过程可以准确地匹配需要查询的信息,从而更好地服务于中医临床诊疗。
Neo4j不但可进行图数据库的构建,而且其自带的Cypher查询语言简洁、生动,可进行拓扑结构的数据匹配,其有向图的拓扑结构,与大脑思维类似[18],有助于建立符合中医思维特点的检索路径,也为图数据的匹配提供了技术支持。
综上所述,上述技术为辨证论治计算机模型模拟大脑记忆与匹配,实现知识到应用提供了技术保证。综合这些技术,在辨证论治的理论框架下,将有望设计出一种具有拟人思维的智能体,用于辅助中医诊疗。
4 基于图数据与图模式匹配的计算机建模医理设计
本节将围绕“构建《伤寒论》辨证论治知识图数据库”和“计算机模拟辨证论治思维”2个主题进行详细阐述。
4.1 构建辨证论治知识图数据库
辨证论治知识图数据库的构建是计算机模拟拓扑认知的基础和进行辨证论治的前提。我们以Neo4j进行图数据库概念层和实体层的设计,概念层用于表达数据的类别与数据间的关联,实体层用于存储具体的数据。
4.1.1 图数据库的概念层设计 概念层描述了数据库里存储什么数据和数据之间的联系,是数据库的总体视图。中医学中有病、症、证、方、药等基本的术语概念,这些概念描绘了中医药知识的总体框架。因此,我们将病、症、证、方、药等作为图数据库的概念“节点”,以主治、药物组成等描述事物间联系的术语作为“关系”,形成以(药)->[组成]->(方剂),(方剂)->[主治]->(证)等“三元组”描述的概念层,以此划分方式作为概念层的设计方案。表1给出了概念层表述规范,图2给出了概念层设计样式。
4.1.2 图数据库的实体层设计 实体层由概念层对应的实例组成。例如,《伤寒论》中,“太阳病”是“六经病”对应的实例,“发热”“恶寒”等症状是“症”对应的实例,“伤寒表实”是“证”对应的实例,“麻黄汤”是“方”对应的实例,“麻黄”“桂枝”等药物则是“药”对应的实例。这些领域实体间通过相互连接而形成的关系用具有“主治”“组成”等含义的“边”进行表示,如“麻黄(节点)组成(关系)麻黄汤(节点)”。大量的“节点”与“边”的相互连接,便形成了拓扑有向图结构的辨证论治知识主体。图3给出了实体层设计样式。
从图3可看出,“节点”与“边”之间的相互连接,描绘出从一点发散至多点的辨证论治的思维路径。如太阳病出现“发热”“恶寒”“喘”“周身疼痛”“脉浮紧”的症状,可通过检索路径“(发热)、(恶寒)、(喘)、(周身疼痛)、(脉浮紧)->[Corresponding_to]->(伤寒表实)<-[Treat]<-(麻黄汤)<-[Part_of]<-(麻黄)、(桂枝)、(杏仁)、(炙甘草)”,获取相应的诊断和方药结果,从而进行有针对性的治疗。
综上所述,通过以上设计方案,形成了“症->证->方->药”的链式连接,这可模拟人的拓扑有向图认知结构,因此,更易于表达辨证论治的思维路径,发现知识间的关联。
由于知识的重要性与复杂性,本课题下一步的研究还需在领域专家的指导与帮助下,依据以上设计理念进行该数据库的具体构建。
4.2 计算机模拟中医辨证论治思维
在构建完成的《伤寒论》辨证论治知识图数据库的基础上,根据《伤寒论》第16条“观其脉证,知犯何逆,随证治之”的辨证论治原则和步骤,利用图数据库与图模式匹配技术。见图4。将该计算机模型设计为如下3个运行环节:1)输入症状,将其映射到数据库中的节点,即“观其脉证”;2)对映射的症状等节点进行匹配分析,明确映射的诊断结果,即“知犯何逆”;3)根据诊断结果检索方药,即“随证治之”。
1)、2)2个环节分别模拟“观其脉证,知犯何逆”的诊疗过程,在技术层面,利用Neo4j的Cypher语句的图模式匹配技术和Jaccard(杰卡德)相似度计算公式[19-20]对其进行设计。环节3)根据确立的诊断选择相应的治疗方药模拟了“随证治之”的诊疗过程,该环节将使用Cypher语句的图模式匹配技术进行设计。
简而言之,以上设计完成的是“症->证->方->药”的分析、推理流程,即据症辨证,以证立法,以法统方的辨证论治过程。
上述的3个计算机运行环节通过下列程序设计实现,其中Cypher指令说明见表2:
#Step1:输入症状,映射到数据库中的节点
Input:X
MATCH(n:Symptom)WHERE n.name in X
MATCH(n)-[r:Corresponding_to]->(C)RETURN COLLECT(C.name)
#Step2:对映射的症状等节点进行匹配分析,明确映射的诊断结果
For c in C:
MATCH(n:Syndrome)WHERE n.name=c
MATCH(y:Symptom)-[r:Corresponding_to]->(n)RETURN COLLECT(y.name)AS B
If t>Threahold:
MATCH(n)WHERE n.name=c
#Step3:根據诊断结果检索方药
MATCH(m:Herb)-[r:Part_of]-(q:Formula)-[r:Treat]->(n:Syndrome)
RETURN COLLECT(m.name),COLLECT(q.name)
注:#为注释,X为输入的症状,C为候选诊断,t为Jaccard相似指数,threahold为输出阈值。
Step1将输入症状(数据)与图数据库中的症状(数据)进行模式匹配,通过检索(Symptom)-[Corresponding_to]->(Syndrome)这一链式路径,输出可能的候选诊断,模拟医生将收集到的病例信息与记忆中的医学知识进行匹配,初步分析病情的思维过程,即“观其脉证”的过程。
Step2旨在对候选诊断进行筛选,其筛选过程是运用Jaccard公式计算候选诊断所对应的的症状与输入症状的相似度,判断2者是否契合,以此模拟大脑对“症”与“证”之间契合度的联想与认知,即“知犯何逆”的过程。本例中Jaccard公式为:
输出阈值(threahold)可由医生自主设定,当t超过阈值则输出该证型结果。需要说明的是若输出了2个或2个以上的证型结果即复合证型,可将相似指数较高的结果判定为主要证型,其余的证型判定为次要证型。当然,医生也可根据临床实际,仅选取相似指数较高的结果作为最终诊断,不考虑次要证型的存在;若无结果输出,可通过适当降低输出阈值使结果尽可能输出,但此时诊断结果的客观性降低,医生尤须谨慎。
Step3根据输出的证型结果,通过检索(Herb)-(Part_of)-(Formula)-(Treat)->(Syndrome)这一链式路径,输出相应的方剂和药物结果,模拟“随证治之”的过程。
5 讨论
在“观其脉证,知犯何逆,随证治之”的辨证论治思维指导下,本模型设计展现出了一定的拟人诊疗思维过程,可降低对大规模质量医案数据的依赖,但尚存在以下问题值得进一步深入研究。
5.1 症状权重的差异 症状是中医辨证论治的基础。在不同的证型中,症状的重要性不尽相同,如“无汗”这一症状对于判断是伤寒表实证的重要性较高,而对判断是太阳病中风表虚证的重要性则较低,在计算机中,它们同样应当体现为每一个症状对于证型诊断权重的不同,但本模型在进行症状与证型的模式匹配中,实际上是将症状“平等对待”而忽略了它们之间的差异性,这无疑对诊断结果的合理性产生了一定影响。此类问题有望进一步通过吉布斯采样的方法赋予症状权重,加以解决。
5.2 方剂的加减化裁 方剂的加减化裁是指方剂通过药味加减、药量加减和剂型变换,使方药与病证吻合的过程[21]。面对复杂的临床症状,本模型虽然通过对映射的症状等节点进行匹配以及Jaccard相似度的计算结果排序,输出证型并判定出主证与兼证,进而检索出相应主证与兼证的方药,但这种方药输出的过程仅是在主方的基础上,对多个治疗兼证的方剂相加。因此,如何在确立主证对应主方的基础上,根据兼证的病机特点与主方中已有的药物进行加减化裁,更好地契合当前出现的病证是本设计有待完善的方面。
6 展望
本文提出构建的创新模型将《伤寒论》辨证论治思想和计算机领域涌现的图数据库和图模式匹配技术结合起来,模拟辨证论治思维,为辅助中医智能化诊断奠定了基础。本课题组将进一步开展深入研究,与认知计算相结合,使模型更加符合《伤寒论》“观其脉证,知犯何逆,随证治之”的辨证论治精神。未来,随着图数据库技术的不断发展,其辅助中医智能诊疗模型构建的前景将更加广阔。
參考文献
[1]王庆国.伤寒论讲义[M].2版.北京:高等教育出版社,2012:5.
[2]平军娇,邓顺顺,万静,等.伴与不伴抑郁症状的首发精神分裂症患者脑源性神经营养因子、同型半胱氨酸及C-反应蛋白水平比较[J].新乡医学院学报,2018,35(8):697-700.
[3]杨佳澄,党建武,王晓明.基于模糊神经网络理论的中医辅助诊断初探[J].兰州交通大学学报,2015,34(3):118-122.
[4]朱咏华,朱文锋.基于贝叶斯网络的中医辨证系统[J].湖南大学学报:自然科学版,2006,33(4):123-125.
[5]张跃宏,刘平,张琴,等.基于粗糙集与广义关联度系数的贝叶斯中医证候分类模型[J].统计与决策,2008,24(12):159-161.
[6]王键,张光霁.中医基础理论[M].3版.上海:上海科学技术出版社,2018:9.
[7](美)DonaldE.Knuth.计算机程序设计艺术[M].3版.北京:人民邮电出版社,2010:362-372.
[8]Jaiswal G.Comparative analysis of Relational and Graph databases[J].International Journal of Soft Computing and Engineering,2013,3(8):25-27.
[9]Pokorny J.Functional Querying in Graph Databases [J].Vietnam Journal of Computer Science,2018,5(2):95-105.
[10]Zou L,Chen L,Zsu M T.Distance-Join:Pattern Match Query In a Large Graph Database[J].Proceedings of the Vldb Endowment,2009,2(1):886-897.
[11]Kucukkecesi C,Yazici A.Big Data Model Simulation on a Graph Database for Surveillance in Wireless Multimedia Sensor Networks[J].Big Data Research,2018,11(3):33-43.
[12]Miller JJ.Graph Database Applications and Concepts with Neo4j.Proceedings of the Southern Association for Information Systems Conference[C].Atlanta,GA,USA.2013.Atlanta:The Southern Association for Information Systems Press,2013.
[13]Summer G,Kelder T,Ono K,et al.cyNeo4j:connecting Neo4j and Cytoscape[J].Bioinformatics,2015,31(23):3868-3869.
[14]Bottomly D,Mcweeney S K,Wilmot B.HitWalker2:visual analytics for precision medicine and beyond[J].Bioinformatics,2016,32(8):1253-1255.
[15]Stark B,Knahl C,Aydin M,et al.BetterChoice:A migraine drug recommendation system based on Neo4J.2017 2nd IEEE International Conference on Computational Intelligence and Applications(ICCIA)[C].New York:Institute of Electrical and Electronics Engineers Press,2017.
[16]Deffur A,Wilkinson R J,Mayosi B M,et al.ANIMA:Association network integration for multiscale analysis[J].Wellcome Open Research,2018,3:27.
[17]Fan W,Li J,Ma S,et al.Graph pattern matching:from intractable to polynomial time[J].Proceedings of the Vldb Endowment,2010,3(1-2):264-275.
[18]刘知远,孙茂松,林衍凯,等.知识表示学习研究进展[J].计算机研究与发展,2016,53(2):247-261.
[19]汪婧,荣升格.基于杰卡德相似性的推荐系统研究[J].安徽工程大学学报,2013,28(3):73-76.
[20]张晓琳,付英姿,褚培肖.杰卡德相似系数在推荐系统中的应用[J].计算机技术与发展,2015,25(4):158-161,165.
[21]李冀著.方剂学[M].3版.北京:中国中医药出版社,2012:20-21.
(2018-08-27收稿 责任编辑:杨阳)