这是 阿拉灯神丁Vicky 的第 23 篇文章

1、项目背景

为通过项目实战增加对知识图谱的认识,几乎找了所有网上的开源项目及视频实战教程。

果然,功夫不负有心人,找到了中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目QABasedOnMedicaKnowledgeGraph。

项目地址:https://github.com/liuhuanyong/QASystemOnMedicalKG

用了两个晚上搭建了两套,Mac版与Windows版,哈哈,运行成功!!!

从无到有搭建一个以疾病为中心的一定规模医药领域知识图谱,以该知识图谱完成自动问答与分析服务。该项目立足医药领域,以垂直型医药网站为数据来源,以疾病为核心,构建起一个包含7类规模为4.4万的知识实体,11类规模约30万实体关系的知识图谱。 本项目将包括以下两部分的内容:

1、基于垂直网站数据的医药知识图谱构建
2、基于医药知识图谱的自动问答

2、项目环境

2.1 windows系统

搭建中间有很多坑,且行且注意。

配置要求:要求配置neo4j数据库及相应的python依赖包。neo4j数据库用户名密码记住,并修改相应文件。

安装neo4j,neo4j 依赖java jdk 1.8版本以上:

java jdk安装方法可参考:windows系统下安装JDK8,下载地址:https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-windows-x64.exe
安装neo4j可参考博文:windows安装neo4j,下载地址:https://go.neo4j.com/download-thanks.html?edition=community&release=3.4.1&flavour=winzip
安装python可参考:Windows环境下安装python2.7

根据neo4j 安装时的端口、账户、密码配置设置设置项目配置文件:answer_search.py & build_medicalgraph.py (github下载项目时根据个人需要也可使用git)

数据导入:python build_medicalgraph.py,导入的数据较多,估计需要几个小时。

python build_medicalgraph.py导入数据之前,需要在该文件main函数中加入:

build_medicalgraph.py

启动问答:python chat_graph.py

2.2 Mac系统

mac本身自带python、java jdk环境,可直接安装neo4j图数据库,项目运行步骤与windows基本一样。

问题解答:

安装过程中如遇问题可联系Wechat: dandan-sbb。

2.3 Neo4j数据库展示

2.4 问答系统运行效果

3、项目介绍

该项目的数据来自垂直类医疗网站寻医问药,使用爬虫脚本data_spider.py,以结构化数据为主,构建了以疾病为中心的医疗知识图谱,实体规模4.4万,实体关系规模30万。schema的设计根据所采集的结构化数据生成,对网页的结构化数据进行xpath解析。

项目的数据存储采用Neo4j图数据库,问答系统采用了规则匹配方式完成,数据操作采用neo4j声明的cypher。

项目的不足之处在于疾病的引发原因、预防等以大段文字返回,这块可引入事件抽取,可将原因结构化表示出来。

3.1 项目目录

.

3.2 知识图谱的实体类型

3.3 知识图谱的实体关系类型

3.4 知识图谱的属性类型

3.5 问答项目实现原理

本项目的问答系统完全基于规则匹配实现,通过关键词匹配,对问句进行分类,医疗问题本身属于封闭域类场景,对领域问题进行穷举并分类,然后使用cypher的match去匹配查找neo4j,根据返回数据组装问句回答,最后返回结果。

问句中的关键词匹配:

根据匹配到的关键词分类问句

问句解析

查找相关数据

根据返回的数据组装回答

3.6 问答系统支持的问答类型

4、项目总结

基于规则的问答系统没有复杂的算法,一般采用模板匹配的方式寻找匹配度最高的答案,回答结果依赖于问句类型、模板语料库的覆盖全面性,面对已知的问题,可以给出合适的答案,对于模板匹配不到的问题或问句类型,经常遇到的有三种回答方式:

1、给出一个无厘头的答案;
2、婉转的回答不知道,提示用户换种方式去问;
3、转移话题,回避问题;

例如,本项目中采用了婉转的方式回答不知道:

基于知识图谱的问答系统的主要特征是知识图谱,系统依赖一个或多个领域的实体,并基于图谱进行推理或演绎,深度回答用户的问题,基于知识图谱的问答系统更擅长回答知识性问题,与基于模板的聊天机器人有所不同的是它更直接、直观的给用户答案。对于不能回答、或不知道的问题,一般直接返回失败,而不是转移话题避免尴尬。

整个问答系统的优劣依赖于知识图谱中知识的数量与质量。也算是利弊共存吧!知识图谱图谱具有良好的可扩展性,扩展了知识图谱也就是扩展了问答系统的知识库。如果问句在射程范围内,可轻松回答,但如果不幸脱靶,则体验大打折扣。

从知识图谱的角度分析,大多数知识图谱规模不足,主要原因还是数据来源以及技术上知识的抽取与推理困难。

http://weixin.qq.com/r/qS_uto-EP9JArcvV93q7 (二维码自动识别)

个人博客:http://www.bobinsun.cn

题图

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

  1. 系统架构设计师与系统分析师历年实体分析与解答下载_做Python数据分析5年了,复制粘贴是我最牛逼的技能,直到看到这些公众号,我学习了...

    上次跟一个学妹聊天,问她平时怎么学习,她反手甩给我这几个公众号,说很喜欢里面的技术文章,推荐给大家 深度学习这件小事 机器学习,深度学习,自然语言处理,计算机视觉--这些小事情,只要你主动,我们就有可 ...

  2. 系统校验矩阵怎么求_软考高级架构师:计算机系统基础知识

    计算机系统基础 计算机组成 CPU的功能 •(1)程序控制功能.CPU通过执行指令来控制程序的执行顺序. •(2)操作控制. •(3)时间控制. •(4)数据处理.CPU最根本的任务. (1)运算器. ...

  3. 2023年软考系统架构师新版专栏导读

    目录 新的改变 软考是不是内卷? 老版教材删减章节 建议学习计划 专栏更文列表 新的改变 软考今年改版啦 高级系统架构师考试在2022年12月底出了第二版教材,比第二版多出来140页,虽然看起来好像更 ...

  4. 【软考系统架构设计师】2009年下系统架构师案例分析历年真题

    [软考系统架构设计师]2009年下系统架构师案例分析历年真题 2009年下系统架构师案例分析历年真题 [软考系统架构设计师]2009年下系统架构师案例分析历年真题 2009年系统架构师案例分析真题第一 ...

  5. 【软考系统架构设计师】2017下系统架构师案例分析历年真题

    [软考系统架构设计师]2017下系统架构师案例分析历年真题 2017下系统架构师案例分析历年真题 [软考系统架构设计师]2017下系统架构师案例分析历年真题 2017下系统架构师案例分析试题一(系统架 ...

  6. 【软考系统架构设计师】2022下案例分析历年真题

    [软考系统架构设计师]2022下案例分析历年真题 [软考系统架构设计师]2022下案例分析历年真题 [软考系统架构设计师]2022下案例分析历年真题 2022下案例分析历年真题第一题(25分) 202 ...

  7. 【软考系统架构设计师】2012年下系统架构师综合知识历年真题

    [软考系统架构设计师]2012年下系统架构师综合知识历年真题 2012年下系统架构师综合知识历年真题 [软考系统架构设计师]2012年下系统架构师综合知识历年真题 [2012下架构真题第01题:绿色] ...

  8. 【软考系统架构设计师】2011年下系统架构师综合知识历年真题

    [软考系统架构设计师]2011年下系统架构师综合知识历年真题 2011年下系统架构师综合知识历年真题 [软考系统架构设计师]2011年下系统架构师综合知识历年真题 [2011下架构真题第01题:绿色] ...

  9. 【软考系统架构设计师】2009年下系统架构师综合知识历年真题

    [软考系统架构设计师]2009年下系统架构师综合知识历年真题 2009年下系统架构师综合知识历年真题 [软考系统架构设计师]2009年下系统架构师综合知识历年真题 [2009下架构真题第01题:绿色] ...

最新文章

  1. WPF数据绑定、多个元素
  2. 远望资本田鸿飞:中国产业互联网的关键是AI赋能
  3. leetcode-191-Number of 1 Bits
  4. 逻辑回归模型_联邦学习体系下——逻辑回归模型
  5. 数字图像处理:图像平均/加法_OPT小讲堂 ∣ SciSmart图像增强之二值化
  6. Python编写的数字拼图游戏(含爬山算法人机对战功能)
  7. 基于微博数据的人物性格分类系统
  8. WinDbg 符号下载错误解决方案
  9. 通过大数据来卸载清理电脑垃圾的软件,到底有多牛?Revo Uninstaller Pro 中文官方网站正版特惠
  10. forEach空指针异常问题
  11. 派森编程软件python有什么用_派森Python下载
  12. centos7 挂载 硬盘 shell 懒人系列-2
  13. 组合、聚合、继承详解
  14. 高新技术企业认定四大要素知多少?
  15. SIEMENS SIMATIC STEP 7 v5.7 Professional 2021
  16. text,setText
  17. 开发流程之功能设计(一)
  18. 【Quad FPV】Betaflight S.BUS,iBUS和PPM对应的三种接收机电路
  19. java swing实现计算器,Java swing实现的计算器功能完整实例
  20. UI设计师必看,灵感爆表UI作品集

热门文章

  1. 使用Spring进行面向切面编程(AOP)---讲解+代码
  2. 处理时间_6_SQL Server常见的时间格式转换
  3. 窗口分析函数_17_计算百分位数
  4. mysql可以存储整数数值的是_MySQL的数值类型
  5. 用python同时画多个分布图
  6. 精通Spring Boot—— 第二十一篇:Spring Social OAuth 登录简介
  7. 常用思科设备图标(JPG+矢量图)
  8. 【FBA】SharePoint 2013自定义Providers在基于表单的身份验证(Forms-Based-Authentication)中的应用...
  9. SDUTRescue The Princess(数学问题)
  10. thinkphp字符截取函数msubstr()