文章目录

  • 中医与人工智能-基于Protégé构建知识图谱
    • 本文内容
    • 中医数据获取
    • 中医数据处理
    • Protégé介绍与基本使用
    • 基于Protégé构建知识图谱
      • 通过protégé创建类的层次关系
      • 通过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é的基本使用。

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

  1. 天池下的瑞金医院MMC人工智能辅助构建知识图谱

    浅谈知识图谱------天池下的瑞金医院MMC人工智能辅助构建知识图谱 前言 数据说明 问题 网络模型和效果展示 代码 实体的定义和处理 句子的切分和处理 代码和数据集: 前言 知识图谱是个很大的概念 ...

  2. 基于向量空间的知识图谱查询及结果解释

    2019独角兽企业重金招聘Python工程师标准>>> 知识图谱是一个宏大的数据模型,可以构建庞大的"知识"网络,包含世间万物构成的"实体"以 ...

  3. AAAI 2018论文解读 | 基于置信度的知识图谱表示学习框架

    作者丨谢若冰 单位丨腾讯微信搜索应用部 研究方向丨知识表示学习 知识图谱被广泛地用来描述世界上的实体和实体之间的关系,一般使用三元组(h,r,t)(head entity, relation, tra ...

  4. 论文浅尝 | 基于置信度的知识图谱表示学习框架

    本文转载自公众号:PaperWeekly. 作者丨谢若冰 单位丨腾讯微信搜索应用部 研究方向丨知识表示学习 知识图谱被广泛地用来描述世界上的实体和实体之间的关系,一般使用三元组(h,r,t)(head ...

  5. 基于位置的知识图谱链接预测

    基于位置的知识图谱链接预测 人工智能技术与咨询 本文来自<中文信息学报>,作者张宁豫等 摘 要: 链接预测是知识图谱的补全和分析的基础.由于位置相关的实体和关系本身拥有丰富的位置特征,该文 ...

  6. 【知识图谱】Neo4j的基本使用及思知1.4亿三元组数据构建知识图谱

    目录 0.前言 1.Neo4j的基本使用 1.1 下载和安装Neo4j 1.2 Neo4j配置 1.2.1 核心数据文件的位置 1.2.2 安全验证,默认是启用的 1.2.3 配置JAVA 堆内存的大 ...

  7. 2020年中国面向人工智能“新基建”的知识图谱行业白皮书

    全文共计1379字,预计阅读时间8分钟 来源 | 艾瑞咨询(经授权转载) 编辑 | 蒲蒲 日前,认知智能国家重点实验室&艾瑞咨询联合发布<2020年面向人工智能"新基建&quo ...

  8. 自底向上构建知识图谱全过程

    http://www.sohu.com/a/245246344_160850 阿里妹导读:知识图谱的构建技术主要有自顶向下和自底向上两种.其中自顶向下构建是指借助百科类网站等结构化数据源,从高质量数据 ...

  9. 通俗讲解自底向上构建知识图谱全过程

    知识图谱的基础介绍,供学习参考. 转载自:https://mp.weixin.qq.com/s/7cBbtqvPQUVrLZUNDx8XDQ 知识图谱的构建技术主要有自顶向下和自底向上两种.其中自顶向 ...

最新文章

  1. 《帝企鹅日记》观后感
  2. Silverlight 游戏开发小技巧:角色升级特效
  3. Git 分支设计规范
  4. mysql默认无密码的问题
  5. python画饼图-python使用Matplotlib画饼图
  6. Java7中的ForkJoin并发框架初探(上)——需求背景和设计原理
  7. mysql与hive比较
  8. 结对编程:黄金点游戏
  9. 推荐几款提升效率的神器
  10. spinnaker_为什么Spinnaker对CI / CD至关重要
  11. sql 纵向求和_sql 行列转换 求和平均值等
  12. POJ 1980【Unit Fraction Partition】
  13. python函数作用的描述_python基础之函数内容介绍
  14. 小米手机便签一键启动这个功能,可将便签录音秒变文字
  15. sqlite3 error: database is locked
  16. 为什么计算机二级查成绩显示验证码错误,我明明输入的是正确的验证码,为何电脑总显示验证码错误呢?...
  17. STM32固件库点灯
  18. C++ 模板实现—双向链表: doubly linked list
  19. ArcGIS 制作3D遥感影像图
  20. 高校社团管理系统jsp和javabean开发

热门文章

  1. 【头歌】JSON数据解析
  2. 开源家庭影院 Kodi 19.1 发布,如何在Ubuntu 21.04中安装
  3. 很多人不会画动漫人物眼睛里面的阴影?那今天这个帮到你了!
  4. Java自动售货机实验报告,java案例自动售货机
  5. PyQt5学习Ⅱ(菜单,工具栏和布局管理)
  6. PHP QRCODE 彩色二维码
  7. 数字电路也需要注意电源滤波 (1117-3.3V芯片工频干扰一例)
  8. 点云配准NDT (P2D)算法详解
  9. JQuery+JSON的省市区三级联动效果
  10. js实现全国三级城市联动select选择