趁热打铁,再构建百万节点关系中药方剂知识图谱
前文自顶向下构建中药知识图谱初探中,已经介绍了知识图谱和中药知识图谱构建的相关基础概念,本文将研究中药方剂数据,趁热打铁,再构建百万节点关系中药方剂知识图谱。该图谱能够让中医药知识图谱更加完善与全面。详细内容请看全文。
本文目录
1、中药方剂
每味中药都有自己的功效特色,古人很早就使用单味药物治疗疾病,但是在漫长的实践过程中发现合理应用中药配伍,能够起到事半功倍的良好效果。方剂学是研究中医方剂组成、变化和临床运用规律的一门学科,是中医学的主要基础学科之一,方剂学的内容包括方剂的组成原则、药物的配伍规律、方剂的组成变化、剂型及方剂的用法等。
本文将基于收集的方剂数据,利用自然语言处理技术构建中药方剂知识图谱,并分析中药处方中的一些数据规律。
2、构建中药方剂知识图谱
2.1 中药方剂实体与关系定义
本文主要从中药方剂处方组成和功能主治的角度抽取相关信息,构建知识图谱。具体实体和关系描述如下:
实体定义:方剂(root节点)、方名、来源、别名、处方、中药名、剂量、功能主治。
关系定义:<方剂, include, 方名>、<方名, from, 来源>、<方名, another name, 别名>、<方名, prescription type, 处方_id>、<处方_id, composition, 中药名>、<中药名, dose, 剂量>和<处方_id, functions, 功能主治>。
prescription type关系说明:由于历代诸多医家的研究与发展,方剂存在同名的情况,因此prescription type关系的尾节点利用“处方_id”标识同名的多个处方。如:“当归散”有207个处方,“白术散”有170个处方,“羚羊角散”有169个处方。
说明:该实体和关系的定义旨在学习知识图谱在中医药数据中的应用与处理,仅限自己初步研究,具体应用需根据实际情况调整。
另外,组成方剂的药物可按其在方剂中所起的作用分为君、臣、佐、使;组方存在十八反和十九畏关系;中药有四气五味性状等。因此,后续可在已有方剂知识图谱基础上,继续对方剂数据进行融合处理,构建完善最终的中药方剂知识图谱
2.2 方剂数据获取与分析
本文将基于收集的2.5w组共计5.2w个中药处方数据,主要利用规则和词典抽取2.1节中描述的实体关系三元组,构建中药方剂知识图谱。
方剂与处方个数简单分析结果:
(1)单个处方的方剂共计19023组,占比76.1%;含有2个或3个处方的方剂共计3896组,占比15.6;含有4-10个处方的方剂共计1355组,占比5.4%;含有11-30个处方的方剂共计446个,占比1.8%。
(2)含有处方个数最多的10个方剂名分别是:当归散、白术散、羚羊角散、槟榔散、黄耆散、黄耆汤、黄连散、柴胡散、茯苓汤和当归汤。
(3)含有“当归散”的方名有21组,具体图谱如图1所示。
处方与用药数量简单分析结果:
(1)5.2万个处方中10味以内的处方有40596个,占比78.1%,含有11-15味中药的处方共计8217个,占比15.8%。可见,有人说中药处方用药超过10味大多是胡扯的论断也有一定道理,哈哈哈。不过需要说明的是中药处方与病情发展和医生经验密切相关,不可呆板照搬经典,一尘不变的开方治病。
(2)用药数量最多的方剂是“金仙膏”,一个处方有109味中药,另一个处方有108味中药。两个“金仙膏”的处方图谱如图2所示。
两个“金仙膏”的功能主治图谱如图3所示。
感兴趣的可以分析对比这两个处方。
2.3 构建中药方剂知识图谱
本文通过py2neo将数据存入neo4j数据库,并进行可视化展示。
demo如下:
import json
from py2neo import