# 基于医药知识图谱的智能问答系统
* 这是一个基于Python模块REfO实现的知识库问答初级系统. 该问答系统可以解析输入的自然语言问句生成 SPARQL 查询,进一步请求后台基于TDB知识库的Apache Jena Fuseki 服务, 进而得到问题的结果。
* 提供疾病症状、疾病用药、药品查询等功能。
* demo演示
![](Image/kgqa-demo-1.png 'Image-1')
![](Image/kgqa-demo-2.png 'Image-2')
# 需要环境
* python3.5.2开发环境
* 安装jieba中文分词组件
* 安装sparqlwrapper,python与Apache Jena Fuseki服务的交互组件
* Django,Web应用框架,用于交互展示
* Apache Jena,是一个开源的Java语义网框架(open source Semantic Web Framework for Java),用于构建语义网和链接数据应用
* apache-jena-fuseki,开启Apache Jena Fuseki 服务
* Java环境,Apache Jena需要在Java环境下运行
* 数据
* [TDB药品疾病知识库](https://pan.baidu.com/s/1V7yqs4HKcQYJqDznf2MbSA)
# 怎么运行
* 下载TDB药品疾病知识库数据 & clone项目代码
* 开启Apache Jena Fuseki 服务
* 将TDB数据和Apache Jena Fuseki放在同一个目录下。
* 进入Apache Jena Fuseki文件夹,运行fuseki-server.bat,然后退出。程序为我们在当前目录自动创建“run”文件夹
* 将项目代码apache_configuration文件夹下的kgdrug.tll和rules.tll文件移动到“run”文件夹下。
* kgdrug.tll:知识库本体文件
* rules.tll:规则推理配置文件
* 将项目代码apache_configuration文件夹下的fuseki_conf.ttl文件移动到“run”文件夹下。
* fuseki_conf.ttl:Fuseki配置文件,主要配置上述两个文件的路径和TDB知识库路径
* 上述操作配置好后,再次运行fuseki-server.bat,开启Apache Jena Fuseki 服务
* 安装python环境需要的包
```python
pip install requirements.txt
```
* 这里需要修改项目代码中setting.py文件中的字典导入路劲,因为我们的文件路径可能不一样。
* 运行KB_query文件夹中的query_main.py,开启命令行模式。
```python
python query_main.py
```
* 在项目根目录下运行manage.py,开启项目的web模式
```
python manage.py runserver
```
# 可能遇到的问题
* 第二次开动Apache Jena Fuseki 服务时,如果启动失败,需要到TDB文件把prefix前缀的文件全部删除掉。
* 代码运行错误,应该大部分集中在路径错误上,请仔细阅读报错信息。
# 项目不足
* 只支持一问一答式的对话。
* 只支持查询知识库有的数据,知识库不包含的数据则查询不到。
* 页面UI设计交简陋
# 后期更新
* 加入药品、疾病的同义词,增加系统的鲁棒性
* 增加疾病推断功能
* 增加多轮式对话功能
* 重新设计页面UI
# 参考
[基于 REfO 的 KBQA 实现及示例](http://www.openkg.cn/tool/refo-kbqa)
盈梓的博客
- 粉丝: 9838
- 资源: 2682
最新资源
- 电力系统复杂网络分析:基于MATLAB源码与CNA方法求解微电网最优位置,增强电网弹性与电压稳定性分析,电力系统复杂网络分析 matlab源代码,代码按照高水平文章复现,保证正确 电力系统复杂网络分析
- 欧姆龙CP1H+CIF11与E5CC温控器通讯程序:全新原创,可稳定设定温度值、读取实际温度,功能丰富,稳定可靠,可扩展,附送威纶通触摸屏程序 ,欧姆龙CP1H+CIF11与欧姆龙E5cc温控器通讯程
- 基于WinForms的C#界面开发:多文档选项卡切换与四种类型提示框(提示、询问、警告、错误)的源代码实现,winform ui界面 c#界面 支持多文档选项卡关闭,4种类型提示框(提示,询问
- C# EF架构下的生产管理源码解析与实现:构建高效、稳定的生产管理系统,C#基于EF架构生产管理糸统源码 ,核心关键词:C#; EF架构; 生产管理; 源码; 糸统(或系统),"C# EF架构生产管理
- 基于Luenberger降阶状态观测器的PMSM电机转矩前馈控制Simulink仿真研究,PMSM电机负载观测转矩前馈simulink 基于Luenberger降阶状态观测器,包含PMSM数学模型
- C#上位机与台达DVP系列Modbus通信实例解析:简易Modbus485通信程序的编写与实践,C#上位机,台达DVP系列modbus485通信例子 例子简单易看懂 自己写的程序 ,核心关键词:
- 三菱FX3U与欧姆龙E5CC温控器通讯控制程序:实现温度监控与调节,包括设定温度、报警管理等,接线、参数设置齐全,附威纶通屏程序,高效稳定通信 ,三菱FX3U与3台欧姆龙E5CC温控器 通讯控制程序功
- "高性能SpringBoot与SpringCloud代码生成器:快速构建权限管理系统的利器",代码生成器,SpringBoot,SpringCloud代码生成器 此代码生成器为本人倾心打造,通过简单
- UDS协议栈:满足Autosar标准,文档齐全,质量有保障的平台代码,移植简单,代码通俗易懂,UDS协议栈 满足基本的Autosar接口标准,有说明文档,代码通俗易懂,经过量产验证,质量绝对有保障
- libkadm5-1.15.1-55.el7-9.x64-86.rpm.tar.gz
- 三菱FX-5U轴定位与Modbus RTU RS-485通信案例:编程软件、PLC及触摸屏程序、地址规划表与教程视频全解析,三菱fx-5u轴定位,Modbus RTU RS-485与测微计通信案例
- libkcddb-4.10.5-3.el7.x64-86.rpm.tar.gz
- C#二维码条形码生成打印软件源码分享:自动添加抬头,适用工控领域,完整可使用 ,二维码条形码生成打印软件C#源码,根据变量自动添加抬头,非常方便,工控朋友可以直接拿过去使用,完整源码 ,二维码; 条形
- 网络Modbus TCP通讯控制电路板:四路继电器及温湿度烟雾浓度监控,基于sht30传感器,支持上位机及手机APP控制,基于网络的Modbus TCP通讯控制,通过网线连接以太网,本电路板可以控制四
- libkcddb-devel-4.10.5-3.el7.x64-86.rpm.tar.gz
- 医疗小程序音视频问诊及药房系统一体化开发源码解析,医疗小程序音视频问诊门诊医院药房系统开发源码 ,核心关键词:医疗小程序; 音视频问诊; 门诊医院; 药房系统; 开发源码; 医疗系统开发 ,医疗音视频
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈