消渴病经方知识图谱构建与知识发现
2022-04-07虞红蕾曹灵勇瞿溢谦刘畅杨帆王平王磊林树元
虞红蕾 曹灵勇 瞿溢谦 刘畅 杨帆 王平 王磊 林树元
1.浙江中医药大学基础医学院 杭州 310053 2.广东省中医院 3.杭州甘之草科技有限公司
消渴病为临床疑难疾病,最早记载于 《黄帝内经》,与现代医学之糖尿病相似,以多饮、多食、多尿、消瘦为主要临床特征,早期可无明显症状,其病机复杂、病传多端、治疗难度较大。中医学对其认识历史悠久,积累了宝贵的诊治经验,其中经方以效专力宏而为历代医家所推崇,然而消渴病的相关内容分布较散甚至错简散佚,其中的学术思想精髓和临床经验的传承往往依赖于学习者的个人能力及悟性,这对消渴病理法方药的学习和应用造成了困难。本研究利用知识图谱技术,将经方典籍中消渴病的复杂知识进行关联与可视化表达,以期促进消渴病学术及临床研究的进一步发展。
1 资料和方法
1.1 数据来源 选择《伤寒论》《金匮要略》《神农本草经》《名医别录》《诸病源候论》《备急千金要方》《千金翼方》《外台秘要方》及《医心方》共九本经方领域的代表典籍作为数据来源,筛选其中与消渴病相关的内容。
1.1.1 资料检索 选择以下版本古籍进行研究资料的检索及校对,以确保内容的准确性:刘渡舟主编《伤寒论校注》(人民卫生出版社2013年7月出版)、何任主编 《金匮要略校注》(人民卫生出版社2013年7月出版)、马继兴主编《神农本草经辑注》(人民卫生出版社2013年7月出版)、尚志钧辑校《名医别录》(中国中医药出版社2013年8月出版)、丁光迪主编《诸病源候论校注》(人民卫生出版社2013年7月出版)、高文柱校注《医心方》(华夏出版社2011年1月出版)以及《备急千金要方校注》《千金翼方校注》《外台秘要方校注》(均为学苑出版社2016年1月出版)。
1.1.2 资料筛查 研究资料的纳入标准为条文含有“消渴”二字,包括章节名称含有“消渴”二字的完整章节和功效中含有“消渴”二字的药物。由于筛选结果存在重复现象,采用以下方法排除重复:(1)对不同古籍中由于引用等原因导致内容相同的条文去重,保留最早的条文;(2)将不同古籍中药名相同,且药性、药味、功效相似的条文合并为同一条文;(3)将重名但组成、功效不同的方剂进行标记,予以区分;(4)出自不同书籍,名称相同、功效相似的方剂,其中有少量药物或剂量差别的,视差别大小予以去留处理,即删除年代较晚的条文或同时保留二者,并予以标记区分。
1.2 知识图谱的构建与应用 在符合纳入标准的研究资料的基础上进行经方消渴病知识图谱构建,其步骤主要分为本体构建、语义消歧、知识表示、数据存储与可视化。该图谱可应用于经方消渴病的辨证、治法、选方、用药等方面。
1.2.1 消渴病领域的经方本体构建 知识图谱需要有相应的本体作为框架。从计算机科学和信息科学的角度而言,一个本体就是特定领域或根本存在的实体类型、属性、相互关系的正式命名和定义。本体可以将具有共同特点的事物抽象为一类概念,并对概念之间的关系进行描述,其形成的知识结构化表达模型实质上是一组概念框架,包括概念及概念间的关系,所以本体可视为一种侧重概念的知识表达模型[1],其具体实例可通过知识图谱进行可视化表达。
1.2.1.1 本体构建方法 本体构建可根据目的不同选择相应的方法。构建经方消渴病本体的目的是整理经方古籍中与消渴病相关的知识,达到系统整合消渴病领域知识及实现可视化搜索的目的,并为临床诊疗决策提供帮助。由于中医古籍内容为非结构化知识,加上年代久远导致一些条文分布散乱甚至散佚,故采用“领域本体七步法”作为本研究的本体构建方式。领域本体七步法由斯坦福大学医学院提出,适合指导医学领域的本体构建[2]。该方法有助于将散乱的中医辨证内容整理成结构化知识,形成适合中医领域应用的较强关联性内容。
“领域本体七步法”包括以下七个步骤:(1)确定专业领域和范畴;(2)考查复用现有本体的可能性;(3)列出本体中的重要术语;(4)定义类和类的等级关系;(5)定义类的属性;(6)定义属性的分面;(7)创建实例。本文将其整合成以下3个主要步骤进行阐述。
1.2.1.2 明确领域范畴及重要术语 领域范畴上文已确定,其中重要术语包括概念术语、关系术语及属性术语。因本研究目的是梳理经方古籍中零散的消渴病相关知识,故从中提取的概念术语有病名、病机、症状、方剂、药物等。见表1。其中病名可以通过“病因是”“症状是”等关系术语和“病因”“症状”等概念术语实现语义连接;“方剂”“药物”等可通过“包含”关系建立联系。见图1。由此能将经方古籍中消渴病相关内容串联起来,形成结构化的知识。由于中医药领域用词习惯的多样性,以及古籍文字内涵的不确定性,属性术语需要进一步进行语义消歧。
表1 经方消渴病的重要概念术语(部分)Tab.1 Important concept terminologies of classical prescription diabetes disease(part)
1.2.1.3 定义类的属性、属性的分面及类之间的关系由上文可知,从研究资料的概念层可提取出病名、病因、病机等类。类的属性即对该类的最本质的描述,如“消渴”“痈疽”等是对“病名”类的描述,又如“五苓散”“栝楼散”等是对“方剂”类的描述。属性的分面是指属性的属性,如属性的类型、容许值、取值个数等,在经方消渴病领域主要是指字符型数据,如“体征”的属性,其取值范围包括舌、苔、脉等医者查体的结果;又如“穴位”的属性,其取值范围主要包括十二正经、奇经八脉等经络上的穴位。
类之间的关系是由该领域独特的知识体系所决定的,经方消渴病领域中类之间的关系较为复杂。例如“药物”“方剂”既可通过关系“功效是”与“功效”相连,又可通过关系“治疗”与“病名”“病机”“症状”相连。基于经方理论的特点,将类之间的关系定义如下,包含24个节点、24个标签、54条关系和24种关系类型。见图1。
图1 类与类的关系示意图Fig.1 Diagram of relationship between classes
1.2.1.4 创建实例 采用Excel软件对上述研究资料,以条文为单位拆分词义并创建实例,即根据中医药学名词术语的相关概念对条文中的相应术语进行拆解,并作为实例添加。如条文“厥阴之为病,消渴,气上撞心,心中疼热……”其中“厥阴病”“消渴”为“病名”类的实例,“气上撞心”“心中疼热”为“症状”类的实例。另外,“消渴”有病名含义与症状含义之分,在创建实例时若条文所在篇章名含消渴,则归为病名类;若仅在条文中出现消渴,则结合具体的语境进行处理。
1.2.2 语义消歧 由于实例皆是从古籍原文中拆分提取,其中普遍存在相同含义却描述不同的情况,例如“引饮”“口中苦渴”等其本质含义为“口渴”;又如“日饮一石水”“饮水多”等其本质含义为“多饮”,故需要进行语义消歧,即进行领域相关术语的标准化。本研究根据2004版《中医药学名词》查找与实例相对应的中医学领域相关术语,作为该节点的附加属性,有助于后续的知识图谱应用。
1.2.3 知识表示 知识表示是将知识以计算机可理解的方式存储并使用,是形成相应知识库的前提[1]。本研究采用有向标记图中的属性图 (property graph)表示,图谱中节点表示实体(或概念),边表示实体间的各种语义关系[3]。通过资源描述框架(resource description framework,RDF)中“主语-谓语-宾语”三元组结构来描述语义关系,有利于实现数据的共享、语义互操作[4]。将实例及其关系通过三元组结构的形式表达,可以形成基于RDF的结构化数据,作为知识图谱的构建基础。
1.2.4 数据存储与可视化 本研究采用较为通用的Neo4j图形数据库来构建消渴病经方知识图谱,Neo4j是一种高性能的图形数据库,以直观简明的图形结构形式存储数据。Neo4j图数据库包括节点和关系两种基本数据类型,每个节点表示一个实体,该节点可以有零或多个关系、属性;关系是指两个节点之间的关系,用户可自定义设计关系类型[5]。
研究资料经过上述处理后在Excel平台形成结构化数据。见表2。三元组结构包括“头节点-关系-尾节点”,“节点概念”表示该节点的概念术语类别,“标准症候词”指的是该三元组出现的症状词对应的领域标准术语,“关系标签”通常在方剂包含具体剂量药物时,作为关系属性添加。将这些结构化数据用Cypher语言导入到Neo4j平台,可形成相应的知识图谱。见图2。
图2 消渴病经方知识图谱(部分)Fig.2 Knowledge graph of classical prescription diabetes disease(part)
表2 Excel的结构化数据举例Tab.2 Excel structured data examples
1.2.5 知识检索与发现 完成数据可视化后,可通过Neo4j自带的Cypher语言进行知识查询,这是一个描述性的图形查询语言,不需要编写图形结构的遍历代码就可以进行高效率的遍历查询。基本的操作有对节点和关系的创建 (create)、检 索(retrieve)、更新(update)、删除(delete)等,组合在一起即CRUD操作[6]。而知识发现需要更复杂的查询方式,去挖掘一些隐藏关联和内容。从经方理论体系的角度,主要可分为理、法、方、药四个方向。
1.2.5.1 辨证 理即辨证,是指导立法处方遣药的理论方向,主要应用于当消渴病出现某种症状时,查询其对应的病机。例如当查询消渴病出现小便频数时对应的病机,可用Cypher语言 “match p=(a: 病名{title:'消渴'})-[r1:症状是]-(b:症状 {标准症候词:'小便频数'})-[r2: 病机是]-(c: 病机)return p”进行查询,得到该条件下可能出现的病机。
1.2.5.2 立法 主要应用于当消渴病出现某种症状或病机时,查询其推荐的治法,但在本图谱中未能查询到治法方面的发现性结果。
1.2.5.3 处方 主要应用于当消渴病出现某种病机或症状时,查询推荐处方。例如查询以消渴病或消渴症状为前提,判断某患者存在肾气不足的病机条件时推荐的方剂,可用“match p=(a:症状{title:'消渴'})-[r1:治疗]-(b:方剂)-[r2:治疗]-(c:病机{title:" 肾气不足"})-[r3: 治疗]-(d: 方剂)-[r4:治疗]-(e:病名{title:'消渴'})return p”进行路径查询,得到符合条件的方剂节点。
1.2.5.4 遣药 主要用于当消渴病出现某种症状或病机时,查询推荐的药物;或查询治疗消渴病的同时,还可以达到某种功效的药物。如上文所述,查询到肾气不足的病机条件下推荐治疗消渴的方剂后,可通过展示与查询出的方剂节点直接相连的其余节点,来查看不同方剂的遣药,即直观展示不同方剂包含药物的异同,以供用药参考分析。
2 结果
将结构化数据导入到Neo4j后可得到消渴病经方知识图谱,共包含1 432个节点及3 067个关系,图2是以病名“消渴”为中心节点的部分图谱展示。节点之间的边显示它们之间的关系,在一定程度上模拟了经方领域的知识体系框架,也符合临床诊疗的思维方式。从上述内容可知,通过Cypher语言可根据需要实现多种描述性查询功能。例如消渴病见小便频数的病机查询结果,包含 “下焦虚热”“上虚不能制下”和“气盛”三个病机。见图3。病机为肾气不足条件下治疗消渴的方剂推荐结果,分别有“消渴增损肾沥汤(原文为增损肾沥汤,与同名方剂进行区分,下同)”“小品增损肾沥汤”和“补肾汤”。见图4。上述三个方剂的共有药物为五味子和生姜。见图5。
图3 病机查询结果Fig.3 Query results on pathogenesis
图4 处方查询结果Fig.4 Query results on prescription
图5 遣药查询结果Fig.5 Query results on medicinal herbs
3 讨论
经方是以六经辨证理论治病的医药学体系[7],其中有不少关于消渴论治的内容流传至今,但由于年代久远,难免有部分文献内容残缺,如《金匮要略》的消渴病篇便有诸多内容散佚。然而经方作为经历了漫长考验的成熟理论体系,其内容可通过其后的多本典籍补全印证,故本研究基于知识图谱的方式,对多本经方典籍中有关消渴病的内容进行结构化表达,以求通过可视化方式展示经方理论体系下消渴病的辨治规律。
由图4的查询结果可知,消渴病以小便频数为主症时,其病机与“下焦虚热”“上虚不能制下”以及“气盛”相关。其中,“上虚不能制下”原见于肺痿,指中上焦虚寒导致的小便频数,当肺痿虚热转实则属消渴病,故《金匮要略·肺痿》篇曰:“肺痿……甘草干姜汤以温之。若服汤已渴者,属消渴。”“气盛”见于《金匮要略》“趺阳脉浮而数……气盛则溲数”,指中焦里热迫津外泄;“下焦虚热”见于《诸病源候论》“夫消渴者,渴不止,小便多是也。由少服五石诸丸散,积经年岁,石势结于肾中,使人下焦虚热”[8],指下焦津亏燥热、津液不固导致的小便频数。这反映了经方辨治消渴病的三焦辨治思路,如《外台秘要方》引《古今录验》谓:“消渴病有三,一渴而饮水多,小便数,无脂,似麸片甜者,皆是消渴病也;二吃食多,不甚渴,小便少,似有油而数者,此是消中病也;三渴饮水不能多,但腿肿脚先瘦小,阴痿弱,数小便者,此是肾消病也。”[9]357开启了后世“三消”理论之先河。
由图5的查询结果可知,在肾气不足的病机下推荐治疗消渴的方剂有小品增损肾沥汤、补肾汤及消渴增损肾沥汤。其中,小品增损肾沥汤与消渴增损肾沥汤较为相似,前者出自 《外台秘要方·卷十七》:“《小品》增损肾沥汤,疗肾气不足,消渴引饮,小便过多,腰背疼痛方……”[9]582后者出自《备急千金要方·卷二十一》:“增损肾沥汤,治肾气不足,消渴,小便多,腰痛方……”[10]两方主治消渴病以肾气不足为病机者,由于下焦亏虚、精气不固,故表现为消渴引饮、小便频数、腰背疼痛等。补肾汤出自《千金翼方·卷十五》:“补肾汤,主肾气不足,心中忙忙而闷,目视[[,心悬少气,阳气不足,耳聋,目前如星火,痟渴疽痔,一身悉痒,骨中疼痛小弱,拘急乏气,难咽咽干,唾如胶色黑方……”[11]其肾气不足主要体现在津血亏耗累及先天之精,从而导致的气短骨弱、视觉听觉衰退等症。
如上文所述,立法方向的查询并未有发现性结果。追溯原始数据可知,治法相关三元组较少,可见经方论治消渴病关于治法的相关记载不多,其诊疗思维更注重证候病机与方剂的直接相关性,此即所谓经方的“方证相应”。“方证相应”内涵首见于《伤寒论》317条方注:“病皆与方相应者,乃服之。”至唐代孙思邈有“方证同条,比类相附”之论。方证即为以方为名之证候,是用方的指征与证据。证以人的外在表现为依据,古代的方证是通过望闻问切四诊采集到的患者的外在表现,更多的是强调“人”和“证(病)”的组合[12],故对治法的论述较少。
由图5的查询结果可知,治疗消渴的三个推荐处方的共同用药为五味子和生姜。五味子在《神农本草经》中被列为补益之上品,“主益气……劳伤羸瘦,补不足,强阴,益男子精……”[13],针对肾气不足这一主要病机进行治疗。生姜用之以温中健胃,因经方理论认为,中焦胃虚日久可累及下焦,故十分注重“保胃气、存津液”。而消渴病发展为肾气不足,亦包含中焦胃虚的病机,先天之难补故需补中而制下,后天之化育可助先天之涵养。如《伤寒论》少阴病篇之真武汤、四逆汤等方剂皆含有生姜、干姜配伍,其中真武汤证“下焦虚有寒”用生姜温中化饮,符合经方保胃气的论治思想。而纵观前三方组成,主要包含肾气丸(生地黄、茯苓、泽泻、丹皮、桂枝、附子)及桂枝汤(甘草、桂枝、生姜、大枣)之配伍。桂枝汤用治中风之津虚血弱、营卫不和,肾气丸用治精气不足、兼夹水饮,二方之合用,体现了中风耗散津血发为虚劳,血虚生热病传消渴的病传规律,如《金匮要略·消渴》第2条谓:“寸口脉浮而迟,浮即为虚,迟即为劳,虚则卫气不足,劳则营气竭。趺阳脉浮而数,浮即为气,数即为消谷而大坚,气盛则溲数,溲数即坚,坚数相搏,即为消渴。”可见消渴病的发病是由于中风导致表之营卫耗损成劳,兼夹津亏里热迫津下泄共同导致的。
知识图谱是中医药人工智能研究的重要基础,对于中医药智能问诊、临床辅助决策及疾病风险预测研究具有重要意义,例如从疾病筛查和诊断角度,可结合医学领域多学科数据构建交叉医学知识图谱。糖尿病属中医消渴范畴,其并发症涉及消渴病传规律,对此前人也总结了经方治疗规律,例如黄芪桂枝五物汤治疗阳气虚损、瘀血痹阻型糖尿病周围血管神经病变、小建中汤治疗中焦阴阳不足型糖尿病合并低血糖等,构成了较为完备的诊疗体系[14]。在此基础上构建人工智能问诊或辅助诊断及预测系统,可帮助识别出潜在的消渴病及并发症高风险人群,也有利于提升医生的诊疗能力与效率。
本研究的创新性在于以消渴病为中心、从多个维度全面挖掘经方理论体系下的辨证论治体系。研究内容虽是从古籍中筛选的分散知识,但利用知识图谱技术可对其进行连接与可视化表达,并通过Cypher语言进行描述性查询,实现消渴病的知识发现。而本研究的不足之处在于因现今自然语言处理技术的局限性,中文古籍相关的知识抽取工作需要耗费大量人力,图谱构建效率较低。对于如何更高效地构建基于古籍的中医药知识图谱,以及如何更有效地利用知识图谱进行中医智能诊疗的研究,还有待进一步探讨。