这是中科院软件所刘焕勇老师在github上的一个开源项目

地址:http:// https://github.com/liuhuanyong/QASystemOnMedicalKG

本项目构建了以疾病为中心的医疗知识图谱,实体规模4.4万,实体关系规模30万。并基于此,搭建起了一个可以回答18类问题的自动问答小系统。
本项目以neo4j作为存储,并基于传统规则的方式完成了知识问答,并最终以cypher查询语句作为问答搜索sql,支持了问答服务。

基于知识图谱的问答框架

基于知识图谱的问答系统应用知识

  1. 本体构建
  2. RDF 生成
  3. 问句解析
  4. SPARQL 查询
  5. 答案生成

本项目的问答系统完全基于规则匹配实现,根据问句中的关键词进行匹配,对匹配到的关键词分类问句,然后使用cypher的match去匹配查找neo4j,根据返回数据组装问句回答,最后返回结果。

医药领域知识图谱规模

知识图谱实体类型

实体类型 中文含义 实体数量 举例
Check 诊断检查项目 3,353 支气管造影;关节镜检查
Department 医疗科目 54 整形美容科;烧伤科
Disease 疾病 8,807 血栓闭塞性脉管炎;胸降主动脉动脉瘤
Drug 药品 3,828 京万红痔疮膏;布林佐胺滴眼液
Food 食物 4,870 番茄冲菜牛肉丸汤;竹笋炖羊肉
Producer 在售药品 17,201 通药制药青霉素V钾片;青阳醋酸地塞米松片
Symptom 疾病症状 5,998 乳腺组织肥厚;脑实质深部出血
Total 总计 44,111 约4.4万实体量级

知识图谱实体关系类型

实体关系类型 中文含义 关系数量 举例
belongs_to 属于 8,844 <妇科,属于,妇产科>
common_drug 疾病常用药品 14,649 <阳强,常用,甲磺酸酚妥拉明分散片>
do_eat 疾病宜吃食物 22,238 <胸椎骨折,宜吃,黑鱼>
drugs_of 药品在售药品 17,315 <青霉素V钾片,在售,通药制药青霉素V钾片>
need_check 疾病所需检查 39,422 <单侧肺气肿,所需检查,支气管造影>
no_eat 疾病忌吃食物 22,247 <唇病,忌吃,杏仁>
recommand_drug 疾病推荐药品 59,467 <混合痔,推荐用药,京万红痔疮膏>
recommand_eat 疾病推荐食谱 40,221 <鞘膜积液,推荐食谱,番茄冲菜牛肉丸汤>
has_symptom 疾病症状 5,998 <早期乳腺癌,疾病症状,乳腺组织肥厚>
acompany_with 疾病并发疾病 12,029 <下肢交通静脉瓣膜关闭不全,并发疾病,血栓闭塞性脉管炎>
Total 总计 294,149 约30万关系量级

知识图谱属性类型

属性类型 中文含义 举例
name 疾病名称 喘息样支气管炎
desc 疾病简介 又称哮喘性支气管炎...
cause 疾病病因 常见的有合胞病毒等...
prevent 预防措施 注意家族与患儿自身过敏史...
cure_lasttime 治疗周期 6-12个月
cure_way 治疗方式 "药物治疗","支持性治疗"
cured_prob 治愈概率 95%
easy_get 疾病易感人群 无特定的人群

支持问答的类型

问句类型 中文含义 问句举例
disease_symptom 疾病症状 乳腺癌的症状有哪些?
symptom_disease 已知症状找可能疾病 最近老流鼻涕怎么办?
disease_cause 疾病病因 为什么有的人会失眠?
disease_acompany 疾病的并发症 失眠有哪些并发症?
disease_not_food 疾病需要忌口的食物 失眠的人不要吃啥?
disease_do_food 疾病建议吃什么食物 耳鸣了吃点啥?
food_not_disease 什么病最好不要吃某事物 哪些人最好不好吃蜂蜜?
food_do_disease 食物对什么病有好处 鹅肉有什么好处?
disease_drug 啥病要吃啥药 肝病要吃啥药?
drug_disease 药品能治啥病 板蓝根颗粒能治啥病?
disease_check 疾病需要做什么检查 脑膜炎怎么才能查出来?
check_disease  检查能查什么病 全血细胞计数能查出啥来?
disease_prevent 预防措施 怎样才能预防肾虚?
disease_lasttime 治疗周期 感冒要多久才能好?
disease_cureway 治疗方式 高血压要怎么治?
disease_cureprob 治愈概率 白血病能治好吗?
disease_easyget 疾病易感人群 什么人容易得高血压?
disease_desc 疾病描述 糖尿病

问答样例 


项目实现

1.项目运行配置要求:要求配置neo4j数据库及相应的python依赖包

根据neo4j 安装时的端口、账户、密码,修改相应文件:answer_search.py 和build_medicalgraph.py 、neo4j

安装neo4j(neo4j 依赖java jdk 1.8版本以上),见文章:http://t.csdn.cn/UAu3Q

安装好neo4j后,登录网站http://localhost:7474/browser/

查看端口号和用户名

并修改相应python文件

 2.知识图谱数据导入:python build_medicalgraph.py,导入的数据较多,需要几个小时。

数据导入这一步会出现一些问题,要注意编码格式,包的正确安装等

安装 py2neo

直接使用pip install py2neo命令会默认安装最新版,可能使用会出现问题

推荐安装4.3.0版本:pip install py2neo==4.3.0 -i https://pypi.douban.com/simple

导入成功后即可查看

 3、启动问答:python chat_graph.py

安装pyahocorasick

pip3 install pyahocorasick -i https://pypi.tuna.tsinghua.edu.cn/simple/

医疗知识图谱问答系统(python neo4j)相关推荐

  1. 系统架构设计师与系统分析师历年实体分析与解答下载_医疗知识图谱问答系统探究(一)...

    这是 阿拉灯神丁Vicky 的第 23 篇文章 1.项目背景 为通过项目实战增加对知识图谱的认识,几乎找了所有网上的开源项目及视频实战教程. 果然,功夫不负有心人,找到了中科院软件所刘焕勇老师在git ...

  2. 医疗知识图谱问答系统探究(一)

    这是 阿拉灯神丁Vicky 的第 23 篇文章 1.项目背景 为通过项目实战增加对知识图谱的认识,几乎找了所有网上的开源项目及视频实战教程. 果然,功夫不负有心人,找到了中科院软件所刘焕勇老师在git ...

  3. 权力的游戏击杀和家族知识图谱(python+neo4j)

    一.任务描述 数据集是github上某大神整理出来的全八季任务信息,包括姓名.家族.杀了谁.被谁杀了等等.本文做的知识图谱仅包含所有人物及其被杀关系和家族关系. 数据集链接:https://githu ...

  4. 基于医疗知识图谱的问答系统源码详解

    承接上一篇系统搭建和遇到的问题,本篇解析系统功能的实现,并做了部分修改. 项目是找的中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目QABasedOnMedicaKno ...

  5. 基于Python实现的医疗知识图谱的知识问答系统

    资源下载地址:https://download.csdn.net/download/sheziqiong/85942554 资源下载地址:https://download.csdn.net/downl ...

  6. 知识图谱入门2-1:实践——基于医疗知识图谱的问答系统

    注:欢迎关注datawhale:https://datawhale.club/ 系列: 知识图谱入门一:知识图谱介绍 知识图谱入门2-1:实践--基于医疗知识图谱的问答系统 知识图谱入门2-2:用户输 ...

  7. 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part2):图谱数据准备与导入

    前序文章: [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备 背景 前文已经介绍了该系统的环境准备.下面介绍图谱数据获取,数据主要从:http://jib.xyw ...

  8. 菜哥学知识图谱(通过“基于医疗知识图谱的问答系统”)(二)(搭建系统)

    上接菜哥学知识图谱(通过"基于医疗知识图谱的问答系统")(一) 3.搭建项目2 被小学生拖累连跪5把,近期不搞了- 继续搭建项目.先把neo4j启动起来. 编辑build_medi ...

  9. 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part4):结合问题分类的问题解析与检索语句生成

    前序文章: [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备 [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part2):图谱数据准备与导入 [知识图谱] ...

最新文章

  1. Docker-理解镜像构成
  2. [资料整理] Decentralized Services Orchestration, Choreography相关的几篇论文
  3. ATG中的定时Job处理
  4. jsp中引入js文件缓存问题解决
  5. leetcode851. 喧闹和富有(dfs)
  6. 中国好岳父?女婿亏掉公司半个亿 岳父3天还清!涉事公司回应了
  7. varnish4.0简介
  8. 使用NBU备份数据文件和Oracle
  9. VS2015编译eXosip2-4.1.0 osip2-4.1.0
  10. k8s不适合mysql_K8S 配置mysql配置文件不生效问题处理
  11. Springboot Web应用中服务器配置参数ServerProperties的加载
  12. 文档翻译工具有哪些?Word文档翻译方法介绍
  13. 微信支付服务商,![CDATA[sub_mch_id与sub_appid不匹配],微信小程序支付,签名错误,CDATA[签名错误]解决方法,支付签名验证失败
  14. JAVA 面对对象程序设计 习题7.3
  15. iframe 用法总结
  16. java添加例外_JAVA例外处理
  17. AST实战|手把手教你还原ob混淆:ob混淆代码特征
  18. uniapp报错 -4048
  19. 【转载】传统蓝牙协议栈 串口协议SPP
  20. 好学6招快速减大象腿

热门文章

  1. python时区、时差、时间差转换——datetime.timedelta类介绍
  2. 2018第九届蓝桥杯-决赛-Java大学-C组
  3. postgresql通过拼音排序
  4. 【移动开发】Checkout开源库源码解析
  5. Kafka之四:Kafka与Streaming集成
  6. Nacos2.0启动报错:Your project setup is incompatible with our requirements due to following reasons:
  7. 精妙绝伦的CSS——CSS效果例子
  8. 利用html开发英语单词小程,前端利用表单标签自己制作一个简单的表单页面-表单制作-小程序表单制作...
  9. 51nod1355:斐波那契的最小公倍数(数论)
  10. 开心网开启 网络营销新时代