开源开放 | 面向家庭常见疾病的知识图谱(东南大学)

OpenKG地址:http://openkg.cn/dataset/medicalgraph

开放许可协议:CC BY-SA 4.0 (署名相似共享)

贡献者:东南大学(王之畅,罗卓彦,朱启鹏,朱浩嘉,王湘源,吴天星)


1、图谱简介

面向家庭常见疾病的知识图谱涵盖了常见医疗相关信息,包括常见疾病、症状、治疗手段、常用药物、推荐食谱等方面的内容。在目前新冠疫情流行的大环境下,以医疗知识图谱为基础的问答系统旨在让大众足不出户即可对疾病的进行初步判断、用药以改善病情。这样对平民百姓来说缩短了看病的时间,对于医院来说减轻了医疗负担,最重要的是对于整个社会可以降低疫情传播的风险。

构造此图谱需要首先需要多种数据途径,第一种是专业医疗网站的相关数据,此处选择寻医百科(见图1)这个网站,作为图谱的数据基础。

052af8885f35923843c45de8d3c5bf63.png

图1 爬取网页初始界面

5224e5131a647f80f34daccc5b127fa4.png

图2 常见疾病基本信息

如图2所示,这个网站具有较好的结构化、半结构化信息,利于进行医疗信息的爬取,通过讨论,提前设计好本体,并由本体指导网页信息爬取。之后,为了更好的丰富图谱的内容,还选择了另一个医疗领域数据集:CHIP-2020-2中文医学文本实体关系抽取数据集。该数据集包含儿科训练语料和百种常见疾病训练语料,儿科训练语料来源于518种儿科疾病,百种常见疾病训练语料来源于109种常见疾病。近7.5万三元组数据,2.8万疾病语句和53种定义好的class,将对此数据集进行关系抽取,并且将抽取得到的三元组通过知识融合的方式增加到原先知识图谱中,最终基于此知识图谱形成医疗问答系统——家庭常见疾病医疗小助手。

总结以上内容,该知识图谱以寻医百科为数据基础,以疾病节点为中心,图谱共计包含62196个疾病、药品、食谱等实体和543673个相关三元组。图谱借助导入neo4j数据库形成图形查询界面,以帮助用户理解和挖掘疾病信息以及相关内容,也有助于进一步支持相关应用。图3展示了用户使用该知识图谱寻找常见疾病如感冒相关信息时的一个可视化界面。

859b7403f0cc3e7f4bb426e590e8e146.png

图3 感冒节点的基本信息以及部分三元组

2、构建方法

该图谱的构建方法,主要分为以下几个部分:数据爬取,数据预处理,本体构建,知识图谱实例层构建,命名实体识别,关系抽取,知识融合。基于此知识图谱构建相应的模板,最终形成问答系统。下面将逐一介绍我们工作中采用的方法:

数据爬取中利用request爬取了11000个网页页面,通过书写相应的xpath语句解析并抽取提前设想好的本体中所需的对应实例的内容,在数据预处理时通过书写相关的正则表达式语句来进行特殊字符、无用字符的去除,获取最终信息,并将数据构造成字典信息,为之后形成知识图谱作铺垫。

本体构建中,采用protégé这个工具来构建,由于爬取的实体较多,无法很好的全部导入,考虑到protégé工具重在本体构建,所以将部分实体保存成csv文件,最终在protégé中书写相应的规则导入并形成本体,图4为该图谱本体的可视化:

2515ff49ee5590bd016b715b02b6fe74.png

图4 知识图谱本体可视化

对于知识图谱实例层构建选取neo4j完成,利用py2neo工具进行构建,分别导入节点和相应的关系,最终将得到图3所展示的部分知识图谱。

对于已经初步构建好的知识图谱,由于发现此图谱中关于儿科相关疾病较少,所以在上文提到还选取了另外一个领域相关数据集来增加图谱的内容,对于此数据集而言,由于其为文本数据,需使用命名实体识别与关系抽取来提取出相关的三元组,在命名实体识别中,采用的模型框架是GlobalPointer,具体实现方为将句子都进行BERT[1]编码,再通过一个线性层构造出初始的query和key向量,然后进行旋转位置编码,最后计算多头注意力[2]得到相似度矩阵。然后引入span level的监督信息,以进行多标签softmax的loss的计算,同样在关系抽取当中,基于[3]的思想使用相同的模型框架,即BERT编码后,在训练过程只拿去最后标识符的编码向量,将start和end连接起来,作为实体的编码向量,图5为模型示意图:

ac34d9fcce7f1bb309a738a778ef6ac6.png

图5 GlobalPointer模型框架

在知识对齐与更新中,先进行schema的筛选,先观察数据以知晓哪一些property是可以对齐的。筛选出其中可以对齐的property,如图6所示

abb816d309c0cfe88ecc1df1673bdfd0.png

图6 对齐的模式

之后便是进行知识的对齐,最基本的方法就是使用Jaccard相似度,因此,我们统计了不同Jaccard相似度阈值下的对齐实例的数量,当选择0.6到0.8之间的阈值时,这种方法是可行的。但这样的问题也很显著,很难控制选取一个比较好的阈值。因为在医学领域中很多对应相同实体的标签往往Jaccard相似度没有那么高,而反过来两个label相似的instance未必对应同一个病,所以我们基于[4]提出了一种半监督新的对齐方式,我们称其为set aligned,首先做一个基本的假设,标签完全一致的instance对应同一实体,先把两个数据集中label相同的instance对齐,放入same-entity。对于任意两个三元组,如果已经object已经对齐且两个三元组属于同已经对齐的property,给他们的subject的组合投一票。遍历所有至少有一票的instance对,如果两个instance的label大于MIN-JAC(基于Jaccard相似度的固定阈值),则接受这一对齐,如果对于某个instance,已经与另一个instance对齐,则对比其Jaccard相似度,选择Jaccard相似度大的那一对。也使用用同样方法对subject进行对齐,图7为具体操作过程。

56a44b96a0a5250ea7149829d3b33189.png

图7 set align算法流程图

在问答系统设计方面,采取了模板匹配的手段。通过构造特定模板,进行问句意图表的设计,实体识别,实体链接,问句意图识别与槽位填充,意图实体转换cypher查询,答句拼接构造出问答系统,最终利用NoneBot框架将整个问答系统部署到腾讯QQ端(添加QQ号1941962388可进行测试),图8为问答系统整体框架:

4583ad2f490a417689486e63f5dac104.png

图8 问答框架描述

3、成果总结

面向家庭常见疾病知识图谱由两个不同源的数据集构成,分别采用不同的方式进行,首先是从寻医百科中获取基础数据,然后通过事实抽取在另一数据集上获得数据,最终提出新的知识对齐方式将两者进行融合,并基于此知识图谱,编写相应模板,进行问答系统的构建,最终部署至腾讯QQ端,在测试中取得了不错的成果。该工作有三个主要贡献:(1)探索了特定领域的知识图谱构建的过程,并选取了其他的数据集进行事实抽取进而采用了一种新的知识对齐机制(2)构建了一个具有高数据质量的家庭常见疾病知识图谱。可以清楚地显示一些疾病的本身信息,及其相关的信息如常见药物,症状,推荐食谱,治疗手段等。(3)基于此图谱构建了一个初步的“家庭常见疾病医疗问答系统”,并部署上线,提供常见疾病咨询服务。

在未来的进一步版本更新过程中,我们将进一步丰富知识图谱的内容。

4、参考文献

1.Jacob Devlin Ming-Wei, Chang Kenton and Lee Kristina Toutanova, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[C]. // Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (NAACL-HLT), 2019: 4171–4186.

2.Ashish Vaswani, Noam Shazeer and Niki Parmar, et al. Attention is all you need[C]. //Proceedings of Advances in Neural Information Processing Systems (NeurIPS), 2017:1-11.

3.Zexuan Zhong and Danqi chen. A frustratingly easy approach for entity and relation extraction[C]. //Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (NAACL-HLT), 2021: 50-61.

4.TianxingWu, HaofenWang, Cheng Li, et al. Knowledge graph construction from multiple online encyclopedias[J]. World Wide Web, 2020, 5: 2671—2698.

视频详解


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

dd0ee46e92679622be2a636934fc6c94.png

点击阅读原文,进入 OpenKG 网站。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我不看好data2vec这类多模态融合的研究

文 | 谢凌曦知乎作者注:所有内容均只代表作者本人观点,均有可能被推翻,二次转载务必连同声明一起转载。谢谢!最近data2vec在twitter和知乎上小火了一把,有人说data2vec是个不错的工作,也有人说data2vec最成…

LeetCode 165. 比较版本号

1. 题目 比较两个版本号 version1 和 version2。 如果 version1 > version2 返回 1&#xff0c;如果 version1 < version2 返回 -1&#xff0c; 除此之外返回 0。 你可以假设版本字符串非空&#xff0c;并且只包含数字和 . 字符。 . 字符不代表小数点&#xff0c;而是…

会议交流 | 第十六届全国知识图谱与语义计算大会 (CCKS2022)

点击阅读原文&#xff0c;进入 CCKS2022 注册页面。OpenKGOpenKG&#xff08;中文开放知识图谱&#xff09;旨在推动以中文为核心的知识图谱数据的开放、互联及众包&#xff0c;并促进知识图谱算法、工具及平台的开源开放。

Spring Cloud Config对特殊字符加密的处理

之前写过一篇关于配置中心对配置内容加密解密的介绍&#xff1a;《Spring Cloud构建微服务架构&#xff1a;分布式配置中心&#xff08;加密解密&#xff09;》。在这篇文章中&#xff0c;存在一个问题&#xff1a;当被加密内容包含一些诸如、这些特殊字符的时候&#xff0c;使…

负采样,yyds!

文 | 徐澜玲源 | RUC AI Box引言&#xff1a;负采样方法最初是被用于加速 Skip-Gram 模型的训练&#xff0c;后来被广泛应用于自然语言处理 (NLP)、计算机视觉 (CV) 和推荐系统 (RS) 等领域&#xff0c;在近两年的对比学习研究中也发挥了重要作用。本文聚焦于负采样方法&#x…

图谱实战 | 10 个前沿落地应用案例分享(附下载)

转载公众号 | DataFunSummit导读&#xff1a;知识图谱和图学习都是这两年比较热门的研究方向。近年来&#xff0c;无论是工业界还是学术界&#xff0c;都陆续提出了自己的知识图谱构建平台&#xff0c;知识图谱被广泛应用在推荐、医疗等行业场景&#xff1b;各个公司、各个研究…

LeetCode 1080. 根到叶路径上的不足节点(递归)

1. 题目 给定一棵二叉树的根 root&#xff0c;请你考虑它所有 从根到叶的路径&#xff1a;从根到任何叶的路径。&#xff08;所谓一个叶子节点&#xff0c;就是一个没有子节点的节点&#xff09; 假如通过节点 node 的每种可能的 “根-叶” 路径上值的总和全都小于给定的 lim…

Spring Cloud构建微服务架构:分布式配置中心(加密解密)

在微服务架构中&#xff0c;我们通常都会采用DevOps的组织方式来降低因团队间沟通造成的巨大成本&#xff0c;以加速微服务应用的交付能力。这就使得原本由运维团队控制的线上信息将交由微服务所属组织的成员自行维护&#xff0c;其中将会包括大量的敏感信息&#xff0c;比如&a…

112页机器学习数学知识整理!数学基础回顾.pptx

机器学习的基础是数学&#xff0c;数学基础决定了机器学习从业人员的上限&#xff0c;想要学好机器学习&#xff0c;就必须学好数学。这么多数学知识&#xff0c;不管是硕士阶段还是博士阶段的研究生&#xff0c;是没法学完全的&#xff0c;必须有所取舍&#xff0c;黄海广博士…

LeetCode 274. H指数(排序,哈希)

1. 题目 给定一位研究者论文被引用次数的数组&#xff08;被引用次数是非负整数&#xff09;。编写一个方法&#xff0c;计算出研究者的 h 指数。 h 指数的定义: “h 代表“高引用次数”&#xff08;high citations&#xff09;&#xff0c;一名科研人员的 h 指数是指他&…

论文浅尝 | 记忆推理:最近邻知识图谱嵌入

笔记整理&#xff1a;孙硕硕&#xff0c;东南大学硕士&#xff0c;研究方向为根因溯源。Citation: Zhang N, Xie X, Chen X, et al. Reasoning Through Memorization: Nearest Neighbor Knowledge Graph Embeddings[J]. arXiv preprint arXiv:2201.05575, 2022.动机大多数知识图…

LeetCode 275. H指数 II(二分查找)

1. 题目 给定一位研究者论文被引用次数的数组&#xff08;被引用次数是非负整数&#xff09;&#xff0c;数组已经按照升序排列。编写一个方法&#xff0c;计算出研究者的 h 指数。 h 指数的定义: “h 代表“高引用次数”&#xff08;high citations&#xff09;&#xff0c;…

Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失

在Spring Cloud中我们用Hystrix来实现断路器&#xff0c;Zuul中默认是用信号量&#xff08;Hystrix默认是线程&#xff09;来进行隔离的&#xff0c;我们可以通过配置使用线程方式隔离。 在使用线程隔离的时候&#xff0c;有个问题是必须要解决的&#xff0c;那就是在某些业务…

如果再这么玩下去,中国的科研就没戏了

文 | 知识分子编者按&#xff1a;今天编发的这篇文章&#xff0c;是某国立研究所所长的内心自白。他的一家之言&#xff0c;道出了许多人不愿意面对的现实——中国科研表面上看起来一片繁荣&#xff0c;实际深藏危机&#xff0c;如果继续跟班式搞科研&#xff0c;中国科研就没戏…

Spring Cloud Feign的文件上传实现

在Spring Cloud封装的Feign中并不直接支持传文件&#xff0c;但可以通过引入Feign的扩展包来实现&#xff0c;本来就来具体说说如何实现。 服务提供方&#xff08;接收文件&#xff09; 服务提供方的实现比较简单&#xff0c;就按Spring MVC的正常实现方式即可&#xff0c;比…

论文浅尝 | 开放知识图谱构建必读:封闭域VS开放知识抽取与4大类开放抽取常用方法概述...

转载公众号| 老刘说NLP最近社区抛出一个关于开放知识抽取的话题&#xff0c;也是当前知识图谱构建的一个热点&#xff0c;希望能够介绍相关的工作&#xff0c;而在之前也做过一些工作&#xff0c;借着这个机会&#xff0c;写一篇文章&#xff0c;来跟大家谈谈这个问题。开放知识…

别再双塔了!谷歌提出DSI索引,检索效果吊打双塔,零样本超BM25!

卖萌屋今日学术精选这篇论文展示了信息检索可以用一个Transformer来完成&#xff0c;其中&#xff0c;关于语料库的所有信息都被编码在Transformer模型的参数中。论文标题&#xff1a;Transformer Memory as a Differentiable Search Index链接&#xff1a;https://arxiv.org/a…

LeetCode 71. 简化路径(栈)

1. 题目 以 Unix 风格给出一个文件的绝对路径&#xff0c;你需要简化它。或者换句话说&#xff0c;将其转换为规范路径。 在 Unix 风格的文件系统中&#xff0c;一个点&#xff08;.&#xff09;表示当前目录本身&#xff1b;此外&#xff0c;两个点 &#xff08;..&#xff…

我有一段很厉害的代码,不外传的那种

文 | 郭忠明知乎最近在知乎上看到一个问题&#xff0c;叫做“程序员有没有很厉害、不外传的代码”。​好像在这个遍地都是开源项目的时代&#xff0c;啥代码都藏不住。但其实&#xff0c;是有的&#xff0c;而且有不少&#xff01;很多算法在没有公开前&#xff0c;普通程序员都…

开源开放 | OpenKG发布cnSchema重构版本

cnSchema网站&#xff1a;http://cnschema.openkg.cn/GitHub地址&#xff1a;https://github.com/cnschema/cnSchema开放许可协议&#xff1a;CC 0摘要cnSchema是由OpenKG管理和维护的面向中文知识图谱的Schema参考标准。结合中文语言特点和中文领域特点需求&#xff0c;cnSche…