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

这是 阿拉灯神丁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基本一样。

 

2.3 Neo4j数据库展示

2.4 问答系统运行效果

3、项目介绍

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

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

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

3.1 项目目录

.
├── README.md
├── __pycache__      \\编译结果保存目录
│   ├── answer_search.cpython-36.pyc
│   ├── question_classifier.cpython-36.pyc
│   └── question_parser.cpython-36.pyc
├── answer_search.py
├── answer_search.pyc
├── build_medicalgraph.py    \\知识图谱数据入库脚本
├── chatbot_graph.py    \\问答程序脚本
├── data
│   └── medicaln.json \\本项目的全部数据,通过build_medicalgraph.py导neo4j
├── dict
│   ├── check.txt    \\诊断检查项目实体库
│   ├── deny.txt      \\否定词库
│   ├── department.txt  \\医疗科目实体库
│   ├── disease.txt    \\疾病实体库
│   ├── drug.txt      \\药品实体库
│   ├── food.txt      \\食物实体库
│   ├── producer.txt    \\在售药品库
│   └── symptom.txt    \\疾病症状实体库
├── document
│   ├── chat1.png    \\系统运行问答截图01
│   ├── chat2.png      \\系统运行问答截图01
│   ├── kg_route.png    \\知识图谱构建框架
│   ├── qa_route.png    \\问答系统框架图
├── img    \\README.md中的所用图片
│   ├── chat1.png
│   ├── chat2.png
│   ├── graph_summary.png
│   ├── kg_route.png
│   └── qa_route.png
├── prepare_data
│   ├── build_data.py    \\数据库操作脚本
│   ├── data_spider.py    \\网络资讯采集脚本
│   └── max_cut.py      \\基于词典的最大向前/向后脚本
├── question_classifier.py    \\问句类型分类脚本
├── question_classifier.pyc    
├── question_parser.py    \\问句解析脚本
├── question_parser.pyc

3.2 知识图谱的实体类型

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

3.4 知识图谱的属性类型

3.5 问答项目实现原理

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

问句中的关键词匹配:

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

问句解析

查找相关数据

根据返回的数据组装回答

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

4、项目总结

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

1、给出一个无厘头的答案;

2、婉转的回答不知道,提示用户换种方式去问;

3、转移话题,回避问题;

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

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

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

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

个人博客:www.bobinsun.cn

题图

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

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

相关文章

QA智能问答

是基于检索的还是基于生成式回答的是开放领域的还是限定领域的 问答系统分为开放领域和限定领域的智能问答系统 面向学生的智能聊天机器人 包含以下两个部分 问答模块聊天对话模块解决学生提出的问题与学生闲聊基于规则实现基于深度学习实现数据库为15个关于新生的问题公开…

浪潮信息助力医院智慧医疗建设走得既稳又快

在智慧医疗时代下,浪潮信息作为优质的大数据服务商,正在持续为医疗机构打造场景化、个性化数据基础设施,不断强化在医疗卫生领域的投入,让智慧医疗有“数”可依。日前,浪潮信息出席了2022中华医院信息网络大会&#xf…

互联网医院源码|互联网医院软件体现智慧医疗的优势

现在大家看病一般都会直接在互联网医院平台上去就诊,每次大家需要看病时,可以在手机上直接去预约指定的医生,同城周边的所有医院都是可以去直接选择的,这样也可以去帮助大家节省很多的看病时间,在互联网医院软件中所具…

医疗智能BI助你建立智慧医院

基于“智慧医院”的海量数据,虽看上去冗繁复杂,但却极具价值。通过对这些数据进行存储、清洗和挖掘,能够创造出极大的价值。医疗智能BI助你建立智慧医院,应用医疗智能BI不仅能够提升医疗服务运行效率和质量,还能满足患…

智慧医疗基础平台-02

医疗业务-区域卫健 区域医疗生态系统是一个不断完善不断演化的生态圈,从全民健康平台到的智慧卫生城市,再到健康大脑,内涵和外延不断的扩展。 1、全员健康信息平台 构建省、市、县(区)三级卫生信息云服务平台&#…

(完整项目系统)智能问诊,智慧医疗健康管理,智能药物推荐系统,智能食疗推荐,疾病诊断分析系统,医疗健康机器人系统

人工智能问诊,智慧医疗健康管理,智能药物推荐系统,智能食疗推荐,疾病诊断分析系统,医疗健康机器人系统 人工智能健康管理系统,语音交互,智能分析疾病,包含8000疾病智能分析&#xf…

互联网+智慧医疗:基于Python打造公益智慧医院项目之智能问答系统

智慧医疗英文简称WIT120,是最近兴起的专有医疗名词,通过打造健康档案区域医疗信息平台,利用最先进的物联网技术,实现患者与医务人员、医疗机构、医疗设备之间的互动,逐步达到信息化。 随着计算机科学技术的飞速发展&am…

使用python模拟简单客服机器人

使用python模拟简单客服机器人 文章目录 使用python模拟简单客服机器人1.安装MYSQL与Navicat1.1安装教程1.2数据导入数据库 2.开始搭建机器人2.1 连接数据库2.2 索引设置2.3 信息匹配2.4 问题关键字匹配2.5 编写主函数 3.结果展示4.鼠鼠的一些话 本次案例的背景为拥有一个装载用…

基于QT实现的在线群聊天

引言:由于自身的喜好和在校时的无聊,就产生了自己使用QT设计一个聊天app的想法。在产生这个想法和实现这些功能的过程中,遇到了很多的困难,但经过查询资料,查看文档等,也解决了这些问题,在自己的…

媲美ChatGPT的Bard你用了吗,看起来还不错!

在这个技术日新月异的时代,人工智能已成为我们生活中不可或缺的一部分。聊天机器人,以其独特的表现形式,备受人们追捧。在这里,笔者要向大家推荐几个不错的聊天机器人网站,其中包括Google Bard。看看他自己怎么模仿某位…

Google Bard使用初体验,与ChatGPT比较到底怎么样

文章目录 Google Bard 介绍如何使用Google bardbard和ChatGPT3.5的区别 本文讲述了Google bard的入门教程和使用技巧,并且与竞争对手ChatGPT进行了一个全方面的比较。这是 Google 不能输的战役,也是全面 AI 的时刻。 Google Bard 介绍 Google Bard已经于…

使用谷歌的kaptcha进行验证码验证

使用谷歌的kaptcha进行验证码验证 我的实现思路 1. jsp页面发出请求到Controller 1. Controller层接收请求去寻找对应的验证码视图 1. 验证码视图层生成验证码 1. 返会给jsp页面进行验证码显示 具体实现 引入jar包 <!--谷歌验证码生成 jar--><dependency><…

谷歌二次验证 Google Authenticator

后台登录要搞令牌&#xff0c;类似于steam令牌、企鹅令牌等等 开启Google的登陆二步验证&#xff08;即Google Authenticator服务&#xff09;后用户登陆时需要输入额外由手机客户端生成的一次性密码。 实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责…

Google验证码Kaptcha的详细过程

使用Google验证码&#xff1a;Kaptcha 1.首先是导入jar包 2.第二步 配置jar包中的KaptchaServlet的路径 <!--配置google的验证码返回一个图片--><servlet><servlet-name>KaptchaServlet</servlet-name><servlet-class>com.google.code.kaptch…

谷歌公开测试Google Bard聊天机器人【无需排队,全面公测】

&#x1f951; Welcome to Aedream同学 s blog! &#x1f951; https://bard.google.com/ 更新&#xff01;&#xff01;&#xff01;&#xff01; bard全面放开了&#xff0c;可以用起来了&#xff0c;只需要满足网络就可以。 缺陷是暂时不支持中文 经过多年的谨慎发展&…

【Google Bard】公测已开始,与文心一言、chatGPT相比如何?

一、Google Bard简介 自从2022年11月30日&#xff0c;openAI开放聊天机器人chatGPT之后&#xff0c;其热度一直居高不下。 openAI公司成立于2015年&#xff0c;成立后不久&#xff0c;微软就对其工作给予了大力支持&#xff0c;包括资金援助、以及提供高性能服务器。 在这些…

读书笔记-别说你懂写网文

作者&#xff1a;千幻冰云 第一节 移动互联网时代的网络文学和商业化写作 1. 读者 读者分两类&#xff0c;一类是付费读者&#xff0c;一类是非付费读者。 2. 收入 决定网络写手收入的指标主要有两个&#xff1a;一是买断千字稿酬&#xff0c;一是读者订阅分成稿酬。 作者的名气…

阅文的IP梦

配图来自Canva可画 近日&#xff0c;阅文集团联合上海科技报最新发布的《2021科幻网文新趋势报告》显示&#xff0c;随着近年来互联网的不断发展&#xff0c;影响到大众生活的方方面面&#xff0c;也包括文学领域。 网文平台的创作者&#xff0c;尤其是年轻创作者的数量开始增…

魔改GPT自动写网文,速度一秒十字,还能给太监作品无限续更 | 开源

博雯 发自 凹非寺量子位 报道 | 公众号 QbitAI 如果一个人只看网文&#xff0c;那会写出来怎样的文字&#xff1f; 看了100G网文后&#xff0c;这个AI模型帮你试了一下。 先来一段自由创作&#xff1a; 乍眼看去很有内味&#xff0c;而且基本是一秒十字甚至更快的生成速度&…

外星生命或智能摆在面前,你能认出来吗?——“梯径”提供的思路

导语 外星生命一定长得像人类吗&#xff1f;最近和你火热聊天的 ChatGPT 有智能和意识吗&#xff1f;当外星智慧生命出现在眼前&#xff0c;即使它们不是我们熟悉的样子&#xff0c;我们能识别出来吗&#xff1f;是否可以用严格的数学形式来定量描述生命和智能的复杂度&#xf…