中成药数据图谱可视化与知识问答平台研究
2022-05-26周雪阳廖诗雨董泽华程春雷
周雪阳,廖诗雨,董泽华,程春雷,叶 青
(江西中医药大学计算机学院,江西南昌 330004)
0 引言
中医是中华民族优秀文化的重要组成部分,现代中医干预疾病的主要方式为中药[1]。中药在新冠肺炎的预防和治疗中发挥了重要作用,疫情爆发期间湖北省的中药救治参与率达91.05%,全国其他区域达96.37%[2]。
中成药是中药的重要流通形式。与中成药相关的数据多为半结构化或非结构化,具有4V 特征[3]:数据容量大(Volume)、数据增速快(Velocity)、数据来源广(Variety)、真实性不高(Veracity)。传统的关系型数据库关联效率较低,且不易扩展,已无法适应关联性高的中成药数据。知识图谱是大数据时代用于大规模知识管理和智能服务的新兴技术,其可以捕捉和呈现领域概念之间错综复杂的关系,并将各种信息系统中分散的知识连接起来。知识图谱技术能有效解决中医药领域的知识岛问题,有助于整合知识资源,提高知识服务能力。基于此,本文构建基于知识图谱技术的中成药可视化与知识问答平台,以便更好地管理和存储关系复杂、种类繁多、结构多变的中成药数据。
1 研究现状
目前已上市的中成药有接近1 万种[4],相关大数据亟待开发与利用,但存在以下困难:①中成药数据来源广泛,但却没有统一标准,数据质量不能保证;②中成药数据共享不足,不能充分实现数据价值;③中成药数据没有统一管理规范,存在数据滥用现象[5]。
数据可视化是指将海量数据以图像的形式表示,并利用数据分析和开发工具发现其中未知信息的处理过程[6]。目前,数据可视化不再是简单地利用各种图表对实体及其之间的关系进行展示,通常需要从多维数据、层次关系、文本数据3 个方面进行可视化研究[7]:①多维数据:使用不同形式对数据进行多维关系展示,使用户能够通过简单操作实现数据的观察与分析,从而获得所需信息;②层次关系:大数据关注的重点往往是不同实体之间的联系,这就要求采用不同图形,尽可能丰富地呈现数据的层次关系;③文本数据:必须结合文本数据帮助用户理解信息,因此应注意文本信息的视觉效果,以便发挥知识问答的作用。
目前,各大医学数据可视化平台多以传统的表格、折线图、直方图等形式展示数量庞大的中成药数据[8],具有简单直观的特点,但也存在许多问题[9]:①展示视角不够全面,无法综合文献、临床、商业等多背景数据;②图形比例设置不当,导致用户产生视觉误差;③平台过分追求界面简洁,文字说明少,很多数据只通过简单的图形进行展示,导致用户难以解读内容;③没有中医专业人士的参与,平台只能展示提前设定的数据,用户难以找到所需信息。为此,许多学者尝试应用知识图谱技术对中医辨证、案例分析等进行可视化展示,取得了一些研究成果。例如,王菁薇等[10]利用中医经典古籍《伤寒论》中的数据文本进行中医药知识图谱构建;贾李蓉等[11]结合可视化技术研发出中医药知识图谱可视化平台;秦锦玉等[12]基于可视化技术对中医药知识进行整合与可视化展示,开发出一个中医药知识图谱可视化交互平台;陈姗姗等[13]利用知识可视化软件梳理国内有关中医药国际化发展的文献,呈现出该领域的知识图谱;郑懿鸣等[14]将知识图谱与知识卡片相结合,开发出中医药知识图谱用药推荐系统;孙华君等[15]详细分析了知识图谱在中医基础、中医临床、中医养生保健等领域中的应用。在此基础上,本文采用知识图谱技术结合可视化技术对中成药大数据进行研究分析,以期解决中医药数据利用不足、管理不规范等问题。
2 系统设计
首先从中成药数据的实际需求关系出发,选取必要的实体、属性等;然后使用爬虫技术从互联网上获取相关数据,存入对象关系型数据库Postgresql,通过对中成药数据进行实体识别、关系抽取、整理分析,构建中成药知识图谱并存入图形数据库Neo4j 中;最后利用Python 中的Flask 框架搭建可视化平台,实现数据的多角度展示以及智能问答。具体实现流程如图1所示。
Fig.1 System implementation flow图1 系统实现流程
2.1 数据选取与获取
根据实际调查,将中成药的实体属性分为基本属性、安全性、经济性3大类,细分属性如表1所示。
Table 1 Detailed properties of Chinese patent medicine表1 中成药细分属性
以中成药名称为检索关键词,使用Python 爬虫技术从站内众多开放网站中爬取相关网页源码[16],利用正则表达式技术提取所需数据并存入关系型数据库Postgresql 中,以实现中成药数据的动态更新。以中成药莱阳梨止咳糖浆为例,其属性如表2所示。
2.2 中成药可视化与知识问答平台设计
使用Python 中Web 开发模块的Flask 框架进行中成药知识图谱可视化平台开发。Flask 框架是一个轻量级Web开发框架,较其他同类型框架更灵活、安全且容易上手,可开发出功能强大的网站。同时,使用Ajax 技术进行网站交互设计,Ajax 即Asynchronous JavaScript and XML(异步JavaScript 和XML),是一种创建交互式、快速动态应用的网页开发技术,无需重新加载整个网页便能实现部分网页的更新。基于Ajax 技术的异步交互方法[17]可以实现前端页面的无等待实时刷新,提高人机交互水平,提升用户体验。
Table 2 Property examples of Laiyang pear cough syrup表2 莱阳梨止咳糖浆属性示例
中成药可视化与知识问答平台主要分为8 个模块,详见图2。用户在搜索框中输入中成药名称,点击搜索后,平台将自动加载出相应信息。
Fig.2 Design of visualization and knowledge Q&A platform of patent medicine图2 中成药可视化与知识问答平台设计
(1)用户搜索框。用户可在搜索框中输入中成药名称,点击搜索按钮即可进行该中成药相关数据的查询。
(2)知识图谱模块。网站以知识图谱的形式将被搜索中成药的相关数据展示出来,用户根据实际需求进行选择性节点展示、刷新知识图谱以及保存下载相关图片等操作。
(3)中成药属性表单模块:网站以表格的形式呈现被搜索中成药相关属性数据,方便用户查看。
(4)药品生产企业模块:网站以词云的形式呈现被搜索中成药的生产厂家信息,用户通过点击某个生产厂家可以在药品广告流通信息模块单独查看该企业生产的药品流通信息。
(5)药品广告流通信息模块:该模块以折线图或柱状图的形式呈现被搜索中成药所有广告在不同年份的流通数量,用户亦可以查看不同生产企业的广告流通信息。
(6)药品产地模块:该模块以饼状图的形式呈现被搜索中成药的产地,用户可查看不同省份生产该中成药的比例。
(7)药品经济模块:该模块以折线图的形式展示被搜索中成药的市场售价信息。
(8)知识问答模块:用户可通过输入中成药名称、药材、症状等关键词检索出相关信息。
3 数据可视化与知识问答应用
3.1 中成药知识图谱可视化应用
基于知识图谱对中成药数据进行存储能有效避免传统关系型数据库的弊端,使非结构化的中成药数据具有更好的关联性,为文本处理提供更为全面的语义特征[18]。
选取中成药的商品名作为实体结点,以基本属性、经济性、安全性作为一级属性结点,其中主要规格、用途、用法用量、组成、产品分类、厂家数量、性状为从属基本属性的二级属性结点;文献研究、药品禁忌、不良反应为从属安全性的二级属性结点;基药目录、医保目录、标准来源为从属经济性的二级属性结点;从数据库中提取的中成药相关数据作为对应属性下的三级实例结点。基于以上信息建立中成药知识图谱数据库,具体示例见图3、图4。
Fig.3 Example of knowledge map of"Juyuan Zhike Tablet"图3 桔远止咳片知识图谱示例
运用Neo4j 数据库存储中成药相关数据,将单个中成药的相关属性分为基本属性、安全性、经济性3 大类,分别以不同颜色展示,不同中成药实体根据其相同属性连接起来,形成中成药知识图谱体系,运用图匹配技术实现基于知识图谱技术的中成药智能问答研究。
Fig.4 Knowledge map example of relationship between different Chinese patent medicines图4 不同中成药之间关系的知识图谱示例
采用Echarts 可视化技术融合大屏可视化背景元素完成中成药知识图谱可视化平台的构建,平台以知识图谱、表格、柱状图、折线图、散点图、词云、饼状图等形式将中成药相关数据呈现给用户,界面展示如图5所示。
Fig.5 Visualization platform of Chinese patent medicine knowledge map图5 中成药知识图谱可视化平台界面展示
由图5 可知,平台以知识图谱和表单的形式呈现被搜索中成药的基本属性、安全性、经济性3 大类信息,以折线图、柱状图的形式呈现流通信息(以广告招标数量表示),以散点图的形式呈现其市场流通价格信息,以饼状图的形式呈现生产地区信息,以词云的形式呈现生产企业信息。
同时,平台的交互功能可以帮助用户更详细地查看相关数据,具体表现为:①用户通过点击知识图谱模块中的对象、对象属性、关联对象、所属类别图标,可以选择性隐藏部分结点信息;②用户通过点击某个生产企业,可以在药品广告流通信息模块中单独查看该企业生产的药品流通信息。
3.2 知识问答应用
基于中成药知识图谱数据库和中成药知识图谱可视化平台,可进行中成药知识问答研究。通过融入自然语言处理技术,抽取与表征中医药领域文本特征,采用基础的模式匹配与Transformer 深度学习模型相结合的方式,实现平台的中医药智能问答功能。具体实施流程如图6所示。
Fig.6 Implementation process of knowledge Q&A platform图6 知识问答平台实施流程
采用Python 进行自然语言处理,构建中医药问答词典,增加分词精确度,构建相关问题模板,提高问答效率。通过分词、实体识别、关键词提取将用户输入的自然语言文本形成问题列表,通过与已有问答模板进行关键词匹配分析问答类型,再跳转至相应的数据查询模块进行查询,并将所得数据整合成答案传到前端。对于未匹配到的问题文本,采用Transformer 深度学习模型对问题进行解析,通过自定义中医药知识问答素材抽取问题答案呈现给用户。具体处理流程如图7所示。
由图7 可知,系统通过对输入文本进行自然语言分词处理、文本特征分析、模式匹配等选择合适的模板回答搜索问题,针对未能匹配到的文本,使用Transformer 深度学习抽取式问答生成答案及得分,分数大于0.6 的回答视为正确答案输出,反之则表示未能理解[19]。
Fig.7 Process of knowledge Q&A图7 知识问答处理流程
4 结语
本文采用Python 爬虫技术采集中成药开源数据,通过实体抽取、属性抽取、知识融合等技术成功构建了基于Neo4j 图形数据库的中医药知识图谱体系,同时结合Flask框架与Echarts 可视化技术搭建了中成药数据可视化平台。目前,本文设计的智能问答功能模块尚且只注重模板匹配以及简单的素材文本抽取式问答,难以达到医药类问答对于精确度的要求。在后续研究中将深入挖掘中医药古籍文献数据,解析中医药多维度数据,并采用深度学习技术构建可泛化计算的智能问答模型[20],以更好地挖掘中成药数据的应用价值,为大众提供中成药大数据服务。