摘" 要:为解决存储高质量民族医药数据时的标准化和系统化困难,为民族医药的推广和研究提供参考,针对互联网中丰富的民族医疗资源,爬取了藏医、苗医、壮医、蒙医数据,对数据进行处理。使用Neo4j图数据库存储数据到民族医药知识图谱库,然后进行知识图谱信息抽取和融合,进而构建民族医药方面知识图谱并进行可视化。基于知识图谱的民族医药数据可视化系统,可以降低信息搜索的成本,具有一定的研究意义和使用价值。
关键词:知识图谱;民族医药;可视化;图数据库
中图分类号:TP391.4 文献标识码:A 文章编号:2096-4706(2025)04-0151-06
Ethnic Medicine Data Mining and Visualization Based on Knowledge Graph
MENG Jiana, LIU Yidan, YANG Jun, ZHAO Di
(Computer Science and Engineering College, Dalian Minzu University, Dalian" 116650, China)
Abstract: To solve the standardization and systematization difficulties in storing high-quality ethnic medicine data and provide reference for the popularization and research of ethnic medicine, aiming at the rich ethnic medical resources on the Internet, this paper extracts the data of Tibetan medicine, Miao medicine, Zhuang medicine and Mongolian medicine, and processes the data. It uses Neo4j graph database to store the data into the ethnic medicine knowledge graph database, and then carries out Knowledge Graph information extraction and fusion. Then the Knowledge Graph of ethnic medicine is constructed and visualized. The visualization system of ethnic medicine data based on Knowledge Graph can reduce the cost of information search, and has certain research significance and application value.
Keywords: Knowledge Graph; ethnic medicine; visualization; graph database
0" 引" 言
本文主要借鉴知识图谱技术,实现民族医药数据可视化系统,该系统通过整合互联网中的民族医疗资源,利用知识图谱技术实现信息的抽取、融合与推理,并构建可视化展示平台,有效解决了民族医药领域数据存储、标准化及系统化难题,促进了民族医药知识的更新与进步,降低了信息搜索成本,为民族医药的研究与应用提供了有力支持[1-2]。
1" 民族医药知识图谱框架设计
知识图谱是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系。其基本组成单位是“实体-关系-实体”三元组,和实体及其相关“属性-值”对。实体可以是具体事物或者抽象概念,关系可以是实体的属性或实体之间的关系。实体间通过关系相互联结,构成网状的知识结构[3-4]。运用知识图谱作为民族医药数据的载体,可以有效地挖掘民族医药之间的内在关联,拓展民族医药领域的知识发现。
民族医药知识图谱的构建有以下几个阶段:数据获取和处理、知识获取、图谱设计和图谱存储与应用。数据获取和处理是从互联网相关民族医药网站爬取数据,然后处理异常数据、重复数据和缺失值。知识获取通过实体识别、关系抽取和属性抽取获取民族医药文章信息知识图谱的三元组,图谱存储是利用Neo4j图数据库对民族医药知识图谱节点的存储,实现对医药信息的精确查询[5-6]。
本次项目涉及知识图谱领域,将民族医药数据利用知识图谱形式进行构建[7-8]。通过搜寻药学方面数据将其转化为可表示词向量,进而将词向量进行解释和标注,完成后将其存储到构建的民族医药知识图谱库中,进行知识图谱信息抽取、融合及推理,进而构建民族医药方面知识图谱系统,过程如图1所示。
2" 民族医药数据分析及可视化系统构建
2.1" 数据获取与处理
本项目利用Python编写一个按关键字的爬虫程序,高效而快捷的获取大量与民族医药相关的知识。项目开展至今,通过获取大量文献及相关文件,对民族医药数据进行了筛选与整理,例如,藏医方面的《晶珠本草》《月王药诊》。
从民族医药各类相关网站获取了一部分医药数据共2 294条,表1为藏族《晶珠本草》中部分药品数据,包括民族、药品名称、药物功能、药品性质等属性。为后续完成节点创建,建立节点关系提供数据支持。表2为常见中药对应疾病、症状、用药的部分数据。
通过对原始数据清洗与预处理,去除重复数据、格式统一化的解析,使得原始数据具有结构化,将文本数据转化为结构化的实体、属性和关系,建立起数据之间的联系;经过结构化处理的数据,利用知识图谱的建模方法和图数据库技术构建民族医药知识图谱。
2.2" 知识图谱存储
为了实现知识图谱数据的持久化保存,并将其应用于数据查询、数据分析和知识推理以及应用开发等各方面,本文将数据转换为三元组形式的数据。使用Python编程语言,并调用Py2neo库将经过数据处理的三元组连接到图数据库,并进行导入。这样的操作将使得数据变得更易于访问和理解,同时也为未来的知识图谱应用提供了基础。使用Neo4j中的Neo4j-Browser工具[9-10],结合民族医药数据创建节点,核对节点并建立节点间关系,生成了如图2所示的各个药物性质与功能的关系图谱。其中蓝色节点表示对应治疗的症状或疾病,其他颜色节点表示各类药物,例如黄色颜色此药物表示可溶性珍宝药物属性。
利用Python编程语言及其Py2neo库与Neo4j图数据库交互,以构建藏族民族医药知识图谱的过程。首先,定义Neo4j数据库的URL及必要的包括用户名和密码的认证信息,并据此初始化数据库连接。随后,实例化Py2neo的Graph类,创建一个名为graph的实例,用于执行Cypher查询和命令,实现数据库的交互操作。
为了在图数据库中高效匹配节点,进一步利用NodeMatcher类创建了名为match1的实例,该实例基于已建立的graph连接,支持后续的节点搜索操作。
在处理数据级阶段,打开包含经过处理的以空格为分隔符记录、每行详细记录了一种药材的多种属性的藏族民族医药信息数据的文本文件。通过逐行读取并解析文件内容,每行数据遵循特定格式,包括标识符、药材名称、以逗号分隔的药材功效描述,以及其他内部标识符字段。
在构建图模型阶段,首先对于解析出的每行数据,创建以“藏族:药材”为标签的节点,并设置相应的药材名称属性。接着,解析药材的功效描述,并通过维护一个功效列表(命名为func)来确保功效节点的唯一性,逐一创建尚未存在于图数据库中的功效节点。最后,在药材节点与每个对应的功效节点之间建立了“作用”和“用药”两种关系,表达药材与其功效之间的内在联系。其中,“作用”关系从药材节点指向功效节点,表示药材具有某种特定功效;“用药”关系则从功效节点指向药材节点,反映了该功效被用于特定药材的关联。构建流程如图3所示。
2.3" 可视化实现
基于目前数据库内数据,已经显示出药品与症状或治疗方法的关系图,仅仅显示一张复杂的节点图无法快速找到需要查找的药材与药材的关系,因此划分功能模块,逐一完成了向数据库增加药材和功效的节点,增加药材与功效间关系,删除药材和功效节点以及节点间关系,修改节点信息或关系,以及按照药材查询或者按照功效查询获得相关图谱信息。系统首先通过编码连接到数据库,成功连接后进行数据处理和数据入库操作。随后使用Python语言设计一套直观、易用的GUI界面,对节点的增删改查和对关系的增删改等功能实现。在GUI模板完成后,逐步添加详细功能模块。关键技术包括操作图形数据库的CQL语言以及使用Python实现操作的Py2neo功能模块包[11-12],图4为系统主界面。
系统主界面建立思路如下:首先定义一个名为MainWindow的类,该类创建了包含图形用户界面(GUI)的主窗口,用于展示和管理名为“民族医药系统”的应用。界面使用Tkinter库构建,同时结合PIL(Python Imaging Library)来处理图像。图5为系统主界面实现流程图。
在初始化接口阶段,首先设置了主窗口的标题、大小、位置。然后,定义两个框架(frame_top和frame_side),分别用于显示图像和按钮。frame_top用于图像显示,通过嵌入的画布控件动态加载和调整图像大小;frame_side用于操作按钮和查询功能,提供用户交互的接口。为了确保系统能够成功加载和显示图像,使用动态图像加载方法,其做法是读取指定路径的图像文件,根据画布大小动态调整图像尺寸,并在画布上展示。同时,通过机制设计确保在窗口尺寸变化时自动调用该方法,以适应新的画布尺寸。
创建窗口按钮阶段,在框架中创建了一系列按钮,按钮文本如“添加药材”“编辑关系”等,直接反映了其各自的功能,便于用户快速识别与操作。每个按钮都绑定了相应的事件处理函数,当用户点击按钮时,会触发相应的操作,如打开新的窗口以输入或修改数据。
创建查询模块阶段,首先创建查询功能界面,界面由一个标签、一个输入框和一个提交按钮组成。查询操作的处理逻辑封装在MyClick方法中。当用户点击提交按钮时,MyClick方法首先会删除当前画布上的图像,然后更新图像路径为查询结果对应的图像文件,并重新调用create_image方法来显示新的图像。完成查询后,系统会弹出一个提示框,告知用户查询结果。
当系统完成用户点击的功能后,会等待用户的下一步操作,若用户点击其他功能,则系统会根据用户点击的按钮不同,打开不同的子窗口(如添加药材、编辑关系等)。这些子窗口的类(如NodeDemo、FuncDemo等)在其他文件中定义,并通过参数传递不同的值来执行不同的操作。
系统主界面上部标有“民族医药系统”,界面中部显示数据库内所有节点信息及关联关系,右侧列出用户可操作的功能模块,其中包括添加药材、添加功效、添加关系、编辑药材、编辑功效、编辑关系、删除节点、删除关系以及查询功能。以查询功能为例,说明系统操作功能。查询功能中,主页的右下角输入想要查询的药材名称,若查询成功则弹出“数据查询成功!”提醒。图6中查询“猪头石”这一药材,界面弹出提示查询成功,系统将查询到的具有此节点图谱显示在主界面上。
2.4" 系统测试
系统测试是评估软件系统质量和功能的过程,验证系统是否符合设计规范、满足用户需求,并且在不同环境下能够正常运行和稳定工作。通过输入各种不同类型的测试数据,模拟实际使用场景检验系统的稳定性、可靠性和有效性,以确保系统达到预期目标,经过测试该系统符合预期要求。部分测试数据如表3所示。
3" 结" 论
本文利用知识图谱技术,对爬取的互联网上的藏医、苗医、壮医、蒙医等多元民族医药数据进行结构化处理,构建出包含复杂交互关系的民族医药知识网络,实现了信息的精准抽取、高效融合与智能推理,在此基础上,设计并实现了一个直观易用的可视化展示平台,该平台将民族医药知识转化为直观化的表现形式,提升了信息检索的效率与准确性,降低了信息获取的成本。未来本研究将进一步扩大数据源的广度与深度,并不断优化数据挖掘算法,为民族医药的现代化、国际化发展开辟新路径。
参考文献:
[1] 郭文培.互联网医疗进入发展新阶段 [N].经济日报,2023-04-28(9).
[2] 孙肇阳,黄小圆,许溪彬,等.语义知识图谱与科学知识图谱在中医药领域的应用 [J].医学信息学杂志,2021,42(7):38-42.
[3] 张吉祥,张祥森,武长旭,等.知识图谱构建技术综述 [J].计算机工程,2022,48(3):23-37.
[4] 肖明胜.数据结构知识图谱构建及可视化交互研究 [D].赣州:赣南师范大学,2023.
[5] 熊旺平,刘世雄.基于知识图谱的中药智能服药服务系统的研究 [J].现代信息科技,2023,7(18):137-141+149.
[6] 陈计智,沈洁,朱星昊,等.民族医药非遗文化传承方式及发展趋势研究 [J].中国中医药现代远程教育,2022,20(19):43-46.
[7] 韩冰玉,刘源,王一涵,等.基于人工智能技术的中医四诊客观化知识图谱可视化分析 [J].现代中医药,2024,44(4):18-25.
[8] 樊淼,高屹.基于藏成药数据的知识图谱可视化构建 [J].现代计算机,2023,29(24):64-68+102.
[9] 谢云霏,贾李蓉,代金刚.基于Neo4j的中医导引学知识图谱构建 [J].中国数字医学,2024,19(4):33-38.
[10] 柴源.基于Neo4j的用户阅读数据图数据库的应用 [J].现代信息科技,2021,5(7):95-100+106.
[11] 闫艺婷,黄文杰.基于数据结构的知识图谱构建及可视化研究 [J].现代信息科技,2023,7(4):171-173+176.
[12] 陈颂斌,高屹,罗丽锦,等.藏医药文章信息知识图谱构建与可视化分析 [J].西藏科技,2024,46(2):61-67.
作者简介:孟佳娜(1972—),女,汉族,吉林四平人,教授,博士,研究方向:机器学习和文本挖掘;通信作者:赵迪(1992—),男,汉族,吉林四平人,讲师,博士,研究方向:实体识别和知识图谱。
收稿日期:2023-08-06
基金项目:辽宁省自然科学基金计划项目(2022-BS-104);辽宁省大学生创新创业训练计划课题(202312026121);大连市社科院2024年调研课题(2024dlsky024)