中医与人工智能-基于Protégé构建知识图谱

简介: 文章目录中医与人工智能-基于Protégé构建知识图谱本文内容中医数据获取中医数据处理

中医与人工智能-基于Protégé构建知识图谱

本文内容

本文为系列长文,为便于读者单独阅读每篇博客都对整体项目有个大致理解,每个文章前都大致介绍下完整流程,包括数据集的介绍,数据处理,以及本篇博客相关的内容。

中医数据获取

基于网络采集了部分中药材数据和中药方剂数据,目前这块的资源比较多,可以查询百度查询中医数据库即可,如下提供几个常见的中医资源获取的地方。

中医资源网:http://www.tcmdoc.cn/ShuJuKu/default.aspx

医药网:http://www.pharmnet.com.cn/search/tcm/

杏林园:http://tcm.sstp.cn/

药智网:https://www.yaozh.com/

针对采集到的数据,基于规则进行数据清洗,清洗后保留的字段如下:

药物数据示例数据如下:


字段信息:ID,名称,别名,性味,归经,功效,主治,摘自

2200,大丁草,烧金草、豹子药、苦马菜、米汤菜、鸡毛蒿、白小米菜、踏地香、龙根草、翻白叶,温、苦、毒,肺、脾,祛风、解毒、祛风湿,风湿麻木、咳喘、疔疮,寒湿 麻木 咳喘 疔疮,"《本草纲目》,《贵州民间药物》,《贵州草药》"


方剂数据示例如下图:


中医数据处理

数据获取后,要进行实体识别,获取其中的实体信息,实体识别部分步骤内容较多,有专题进行介绍,这里先一笔带过。

获取实体后,由于同一症状的描述用于较多,还需要进行同义词替换,这一步骤需要收集大量症状同义词,需要中医进行把关。案例如下:

1.遍身洪肿 身体浮肿 遍身浮肿 浑身浮肿 身体气肿 遍身肿满 身体肿 通身暴肿 遍身黄肿 通身浮肿 肢体浮肿 通身蛊胀 身面悉肿 遍身虚肿水气

2.体肿 遍身头面浮肿 遍身麻痹 遍身顽麻 身体麻痹 周身麻木 肢体麻痹 举体不仁


如上面的每一行的每个词都可以理解为一个意思,这一步需要收集大量的同义词。收集完成后,按照词典和相似度匹配,替换方剂数据集在的症状描述信息。

Protégé介绍与基本使用

关于Protégé的介绍有如下几处较好的参考文档:

Protégé基本教程【Protégé5.5.0版本】

https://blog.csdn.net/Jenny_oxaza/article/details/83148300

本体构建-斯坦福七步法本体构建(读完这篇文字就完全懂如何构建本体了)

https://blog.csdn.net/harry_c/article/details/103995267


Protégé软件是斯坦福大学医学院生物信息研究中心基于Java语言开发的本体编辑和知识获取软件,或者说是本体开发工具,也是基于知识的编辑器,属于开放源代码软件。这个软件主要用于语义网中本体的构建,是语义网中本体构建的核心开发工具,现在的最新版本为5.5.0版本。

Protégé提供了本体概念类,关系,属性和实例的构建,并且屏蔽了具体的本体描述语言,用户只需在概念层次上进行领域本体模型的构建。

本体是对领域的显式描述*:概念、概念的属性和属性、属性和属性的约 束、个人


本体建模有几种方法, 本文推荐采用七步法(非七步诗)。


七步法为:确定范围->考虑重用->列举条款->定义类->定义属性->定义约束条件->创建实例


七步法是一个简单的过程,加上多次的迭代,就会形成如下步骤:


现实:确定范围->考虑重用->列举条款->考虑重用->定义类->列举条款->定义类->定义属性->定义类->定义属性->创建实例->定义类->创建实例->考虑重用->定义属性->定义约束条件->创建实例···········


实际上,我们所进行的创建工作应该是一个不断迭代的过程,此教程将其简化为七步法

具体可参考:https://blog.csdn.net/harry_c/article/details/103995267


Protégé官网(https://protege.stanford.edu/products.php)可以下载,但官网下载较慢,这里提供百度网盘的下载地址:


百度网盘地址下载:

下载链接:https://pan.baidu.com/s/1dq-2prplkhQCsdmK00pL5g

提取码:675d


下载后,解压Protege-5.5.0-win.rar后,即可使用,免安装,我的安装路径为D:\apps目录下,解压后的目录结构为:D:\apps\Protege-5.5.0-win\Protege-5.5.0-win\Protege-5.5.0



压缩包解压之后有Protege.exe和run.bat这两个文件,点击任何一个都可以打开Protégé。Protégé一打开的界面主要是Active Ontology这个Tab的界面。



本体的名字可以在Ontology IRI里面修改。

Annotations是注释栏,可以对本体添加一些信息注释或者描述。

右边Ontology metrics会显示一些本体中相关元素的统计信息。

优化显示:

下载graphviz。地址:https://graphviz.org/download/



构建类,关系,实体等环节,大多基于entities窗口,具体如下:



基于Protégé构建知识图谱

通过protégé创建类的层次关系

在本体中,类用于描述抽象的实体对象,代表着一类具有共性的实例对象,是基本的组织单元。类具有继承性、传递性,最顶层的类代表着最抽象的实体概念,子类继承父类的特性,是比父类更具体的类。在本文中我们按照自顶向下的方法定义本体类的层次结构。

下面用 protégé本体编辑工具进行中医妇科病领域本体类和类的层次关系的编辑。

首先打开protégé本体编辑工具,点击File—New,建立新的项目。在新打开的protégé界面中,我们选择Entities面板来创建类层次结构, 点击所有类的父类Thing,点击Add Subclass在当前被选择类也就是Thing类下新建类“疾病”。

技巧:


我们也可以在选择某一类后点击Add Sibling Class按钮来为当前类添加同级类,当我们不需要某类时,可以点击Delete Selected Classes按钮删除当前选择类。

如果在编辑的过程中,类的层级关系不小心弄错了,不需要删除之后再重新编辑;可以拖动这个类到它应处于的层级,类似于文件夹的操作。如果拖动了某个类,它的子类也会随之移动,但不会改变这个类及其子类的层级关系。

如果类的名字写错了,可以右键选择“Change IRI Name”进行更改。

如果需要增加很多个子类,可以右键点击该类,选择“Add Subclasses”。

完整的中医妇科病领域本体类的层次模型如下图:


通过protégé创建实体属性关系

通过protégé创建实体属性关系,具体如下图:



相关含义已经在图中通过文字描述。

通过protégé创建实体

实体为各个类别的实体,实体较多,具体如下:



推理模型实现

基于上述完成的本体建模,可以借助推理机实现推理。protégé提供的WRL可以使用本体已定义好的概念来建立推理所使用的规则,但SWRL无法直接由推理机释义,因此要使用推理引擎将本体与规则进行转换。可以基于Jess这种规则引擎来实现推理。安装Jess的过程,本文不进行介绍。三者的关系为:


protege定义本体,SWRL编写规则,Jess将protege中的知识库和SWRL规则转化成内部格式,从而进行推理。


下面描述具体实现:

选择windows—tabs—SWARTabs,在SWARTabs界面查看到推理结果。

推理结果如下:


w3c1:证候推理(?x) ^ w3c1:患病主症(?x带下量多) ^ w3c1:患病次症(?x五色杂下) ^

w3c1:患病脉象(?x脉滑数) ^ w3c1:患病舌相(?x舌苔黄腻) -> w3c1:患病主证候(w3c1:湿毒蕴结型带下过多) ^ w3c1:方剂推荐(w3c1:五味消毒饮)


上述推理结果表明,当输入病人的患病主证(带下量多)、患病次证(五色杂下)、患病舌相(舌苔黄腻)、患病脉象(脉滑数),经过规则推理后,系统推理得出患病主证候为湿毒蕴结型带下过多,推荐方剂为五味消毒饮。

中医妇科本体存储

基于protégé构建的本体库,有多种存储形式,本文基于Neo4j存储,使用Neo4j实现知识图谱的查询与展示,具体见下图。



总结

本文是中医与人工智能的系列博客,本文有很多内容借鉴与赵老师的曾经工作,这里一并感谢。本文主要对protégé进行了介绍,并基于protégé实现了一个中医数据的本体建模,文本也对博主发现的较好资源进行推荐,便于读者在使用过程中,可以尽快的找到较好的资源,实现对protégé的基本使用。


相关文章
|
16天前
|
人工智能 运维 自然语言处理
AI战略丨构建未来: 生成式人工智能技术落地策略
GenAI 的技术落地需要企业进行周密地规划和持续地努力。企业必须从自身的战略出发, 综合考虑成本、效果和性能,制定合理的技术架构,通过全面的 AI 治理,实现可持续的创新和发展。
|
1月前
|
人工智能 自然语言处理 搜索推荐
【知识图谱】人工智能之知识图谱的详细介绍
知识图谱(Knowledge Graph)作为一种新型的知识表示和组织方式,正逐渐成为信息领域的研究热点。以下是对知识图谱的详细介绍
20 1
|
1月前
|
数据采集 人工智能 监控
构建未来:人工智能在城市规划中的应用与挑战
【8月更文挑战第6天】随着人工智能技术的飞速发展,其在各行各业的应用日益深入。本文将探讨人工智能在城市规划领域的应用及其所面临的挑战,分析AI技术如何助力城市发展更加智能、高效和可持续,同时指出在实施过程中需要注意的问题和潜在风险。通过对未来趋势的展望,本文旨在为城市规划者和决策者提供参考,促进人工智能技术在城市建设中的健康发展。
|
2月前
|
计算机视觉 人工智能
人工智能问题之人脸识别团队决定使用LangChain来构建一个智能排查助手如何解决
人工智能问题之人脸识别团队决定使用LangChain来构建一个智能排查助手如何解决
21 1
|
2月前
|
机器学习/深度学习 人工智能 算法
人工智能伦理框架:构建AI的道德指南针
【7月更文挑战第16天】随着人工智能技术的快速发展,其对社会的深远影响引起了广泛关注。本文探讨了构建人工智能伦理框架的必要性,并提出了一套基于四大原则的伦理指导方针:透明度、公正性、责任归属和隐私保护。文章旨在为AI系统的设计与部署提供道德指南,确保技术进步与人类价值观相协调。
78 3
|
3月前
|
人工智能 数据库 Docker
探索人工智能的世界:构建智能问答系统之环境篇
【6月更文挑战第7天】在本教程中,作者指导读者如何搭建项目环境,包括安装Python 3.10、Docker Desktop和Visual Studio Code。安装Python时可按默认设置进行,Docker Desktop用于管理数据库容器,提供更好的开发和测试环境。Visual Studio Code是一个推荐的源代码编辑器。虽然尝试使用cursor开发时遇到问题,但最终选择了使用VS Code。但建议本地开发。配置文件部分,提供了`docker-compose.yaml`、`Dockerfile`和`pyproject.toml`的示例,用于构建和管理项目容器。
探索人工智能的世界:构建智能问答系统之环境篇
|
3月前
|
机器学习/深度学习 数据采集 人工智能
人工智能:构建自定义机器学习模型的步骤与技巧
【6月更文挑战第25天】构建自定义机器学习模型涉及明确问题、数据收集预处理、特征工程、模型选择训练、评估优化及部署监控。关键技巧包括选择适配的算法、重视数据预处理、精巧的特征工程、有效评估优化和适时的模型更新。通过这些步骤和技巧,可提升模型性能与泛化能力。
|
3月前
|
机器学习/深度学习 人工智能 算法
人工智能伦理与责任:构建未来技术的指南针
【6月更文挑战第17天】随着人工智能技术的快速发展,其带来的伦理问题和社会责任也逐渐成为公众关注的焦点。本文将深入探讨AI的伦理挑战,包括隐私保护、偏见消除、自动化失业问题等,并提出相应的解决策略。通过分析当前AI技术的应用现状,文章旨在为技术开发者、政策制定者和社会各界提供指导,共同推动一个负责任和可持续的人工智能未来。
24 3
|
3月前
|
人工智能 自然语言处理 数据库
探索人工智能的世界:构建智能问答系统之实战篇
【6月更文挑战第8天】本文档介绍了如何使用Python进行Milvus数据库操作,包括环境安装、基本操作如连接数据库、创建集合、插入和查询向量数据、创建索引、删除数据等。此外,还展示了使用LangChain库与HuggingFaceEmbeddings集成,简化操作。最后,演示了如何结合openai模型定制交互式问答系统。整个过程旨在帮助读者理解如何将预训练模型与数据库集成以实现特定任务。
|
4月前
|
机器学习/深度学习 人工智能 算法
构建未来:人工智能在持续学习系统中的进化
【5月更文挑战第24天】 本文聚焦于人工智能(AI)技术中一个关键且迅速发展的分支——持续学习系统。不同于传统的静态机器学习模型,持续学习系统能够适应新数据的到来,不断更新知识库,实现长期的累积学习。文章首先概述了持续学习的理论基础及其在现代AI领域的重要性;随后,详细探讨了该领域的最新进展,包括算法创新、神经网络架构的优化以及数据处理策略;最后,分析了持续学习面临的挑战和未来的发展方向。本研究旨在为AI专业人士提供深入见解,并激发对AI持续学习能力提升的新思路。