# medical_knowledge_graph_app
## 项目说明
* 一、构建医药知识图谱
* 二、搭建自动问答后端
* 三、增加前端交互
在构建医药知识图谱和自动问答时,参考了项目[^1]。在构建医药知识图谱和问答系统上做了如下优化:
1. 原项目存在无法回复症状到疾病的问题。因此通过爬虫直接把重新爬了每个疾病的症状描述文本。同时把原来网站的症状库所有症状名爬取得到症状名字典。
2. 用ac算法取出症状描述文本中与症状库名对齐的所有症状 4377 个(symptom.txt)。重构疾病名-症状-症状名三元组 99492 个。
3. 关于提及symtom推理disease的提问,由原来的单独找每个症状后合并结果改成支持多个症状的疾病交集。
4. 当描述的症状口语化,与症状库名字无法精确匹配时,先用BERT+CRF模型[^2]做命名实体识别。标注方法用的是BIO+C(C表示实体类型,drug/symptom/disease等),构建数据集是基于问题模板随机从领域词典中抽取领域词更替问句中的提及词槽位,每个词只出现一次。训练好的模型参数下载地址( 链接: https://pan.baidu.com/s/1ZGCzYIs-Vo1bsL40XRPtfw 密码: 96ln ),解压放到目录med_kg/ner_model/outputs下。
5. 用模型SBERT[^3]把识别出来的提及词和对应类型的词典(存起来的embedding)做相似度计算,得到top20后,结合重叠字的长度,把重叠字最长的作为实体链接的结果。
6. 本项目的意图识别依然沿用原项目基于规则的提问词+提及词类型的模板方法实现。
7. todo:重新构建疾病的患病率属性,目前没有构建。进而通过描述症状得到多个候选疾病时,按患病概率从高到低演示。
8. todo:目前没有用到深度学习的意图识别模型,是通过构建提问词词集以及规则匹配到问题意图的,可以考虑用一些医药领域问题复述相似度的数据集,去实现泛化能力强的意图识别模块。
在建好知识图谱和问答系统后,增加前端交互和KG展示,用的是echarts的力引导图。实现参考项目[^4]。
## 启动项目
* 启动neo4j数据库
```
neo4j-community-4.1.4 % bin/neo4j start
```
* 执行主程序
```
medical_knowledge_graph_app-master % python med_kg/manage.py runserver
```
## 项目目录
* img 功能界面图
* kg/prepare_data 爬虫文件
* kg/data/medical_rebuild.json 最终处理好的数据
* kg/build_medicalgraph.py 创建neo4j图数据库
* med_kg/el_model 实体链接模型
* med_kg/el_model/embedding 疾病/药物/症状词典的词嵌入表示
* med_kg/el_model/entity_linking.py 实体链接脚本
* med_kg/med_kg django框架的视图和配置文件
* med_kg/templates django框架的模版
* med_kg/static 前端bootstrap文件
* med_kg/ner_model 命名实体识别模型
* med_kg/ner_model/models 命名实体识别模型模型代码
* med_kg/ner_model/data 训练模型的数据
* med_kg/ner_model/losses 训练模型的损失函数
* med_kg/ner_model/outpus/1101medselfner-finetune 精调(训练好)的模型
* med_kg/ner_model/prev_trained_model 放pytorch的预训练模型
* med_kg/util 工具,冷启动
* med_kg/Model 与neo4j图数据库交互的脚本
* med_kg/MedModel 自动问答
* med_kg/MedModel/question_classifier.py 意图识别脚本
* med_kg/MedModel/question_parser.py 把识别出的提及词和意图转为查询语句的脚本
* med_kg/MedModel/answer_search.py 查询图数据库返回答案
* med_kg/MedModel/dict 领域词典
## 一、知识医药图谱构建
### 1.知识图谱实体类型
‘*’ 号表示原项目基础上变化的项
| 实体类型 | 中文含义 | 实体数量 | 举例 |
| :--------- | :----------: | :------: | :------------------------------------- |
| Check | 诊断检查项目 | 3,353 | 支气管造影;关节镜检查 |
| Department | 医疗科目 | 54 | 整形美容科;烧伤科 |
| Disease | 疾病 | 8,807 | 血栓闭塞性脉管炎;胸降主动脉动脉瘤 |
| Drug | 药品 | 3,828 | 京万红痔疮膏;布林佐胺滴眼液 |
| Food | 食物 | 4,870 | 番茄冲菜牛肉丸汤;竹笋炖羊肉 |
| Producer | 药品大类 | 17,201 | 通药制药青霉素V钾片;青阳醋酸地塞米松片 |
| Symptom* | 疾病症状 | 4,377 | 乳腺组织肥厚;脑实质深部出血 |
| Total | 总计 | 44,111 | 约4.4万实体量级 |
### 2.知识图谱实体关系类型
‘*’ 号表示原项目基础上变化的项
| 实体关系类型 | 中文含义 | 关系数量 | 举例 |
| :------------- | :----------: | :------: | :--------------------------------------------------- |
| 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* | 疾病症状 | 99,492 | <早期乳腺癌,疾病症状,乳腺组织肥厚> |
| acompany_with | 疾病并发疾病 | 12,029 | <下肢交通静脉瓣膜关闭不全,并发疾病,血栓闭塞性脉管炎> |
| Total | 总计 | 294,149 | 约30万关系量级 |
### 3.知识图谱属性类型
| 属性类型 | 中文含义 | 举例 |
| :------------ | :----------: | :-------------------------: |
| name | 疾病名称 | 喘息样支气管炎 |
| desc | 疾病简介 | 又称哮喘性支气管炎... |
| cause | 疾病病因 | 常见的有合胞病毒等... |
| prevent | 预防措施 | 注意家族与患儿自身过敏史... |
| cure_lasttime | 治疗周期 | 6-12个月 |
| cure_way | 治疗方式 | "药物治疗","支持性治疗" |
| cured_prob | 治愈概率 | 95% |
| easy_get | 疾病易感人群 | 无特定的人群 |
## 二、搭建自动问答系统
### 1.支持问答类型
| 问句类型 | 中文含义 | 问句举例 | 说明 |
| :---------------------- | :--------------------: | :----------------------: | :--------------- |
| disease_symptom | 疾病症状 | 乳腺癌的症状有哪些? | 不同类实体间关系 |
| symptom_disease | 已知症状找可能疾病 | 老流鼻涕是什么毛病? | 不同类实体间关系 |
| disease_cause | 疾病病因 | 为什么有的人会失眠? | 实体属性 |
| disease_acompany | 疾病的并发症 | 失眠有哪些并发症? | 同类实体间关系 |
| disease_not_food | 疾病需要忌口的食物 | 失眠的人不要吃啥? | 不同类实体间关系 |
| disease_do_food | 疾病建议吃什么食物 | 耳鸣了吃�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 毕业设计 基于Python+Django医药知识图谱(Neo4j)自动问答系统源码+详细文档+全部数据资料(高分项目).zip毕业设计 基于Python+Django医药知识图谱(Neo4j)自动问答系统源码+详细文档+全部数据资料(高分项目).zip毕业设计 基于Python+Django医药知识图谱(Neo4j)自动问答系统源码+详细文档+全部数据资料(高分项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过mac/window10/11测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计 基于Python+Django医药知识图谱(Neo4j)自动问答系统源码+详细文档+全部数据资料(高分项目).zip (365个子文件)
run.bat 26B
jquery.easy-pie-chart.coffee 5KB
bootstrap-theme.css 116KB
bootstrap.min.css 95KB
style.css 91KB
jquery-ui-1.10.4.min.css 27KB
elegant-icons-style.css 25KB
font-awesome.css 25KB
font-awesome.min.css 20KB
theme.css 20KB
bootstrap-fullcalendar.css 12KB
fullcalendar.css 10KB
fullcalendar.css 10KB
footable.bootstrap.css 10KB
footable.bootstrap.min.css 8KB
style-responsive.css 7KB
widgets.css 7KB
xcharts.min.css 4KB
styles.css 4KB
style.css 4KB
styles.css 4KB
line-icons.css 2KB
prettify.css 2KB
owl.carousel.css 1KB
fullcalendar.print.css 1KB
tree_style.css 1KB
tagcloud.css 907B
jquery-jvectormap-1.2.2.css 744B
jquery.easy-pie-chart.css 141B
fontawesome-webfont.eot 71KB
ElegantIcons.eot 58KB
glyphicons-halflings-regular.eot 14KB
.gitignore 58B
.gitignore 11B
model.h5 84KB
index.html 27KB
relation.html 16KB
question_answering.html 14KB
index.html 13KB
index.html 12KB
navigate.html 10KB
entity_search.html 10KB
external-dragging.html 4KB
index.html 4KB
sixup.html 3KB
index.html 3KB
selectable.html 2KB
theme.html 2KB
agenda-views.html 2KB
basic-views.html 2KB
default.html 2KB
gcal.html 2KB
json.html 1KB
radar.html 1KB
line.html 961B
bar.html 811B
polarArea.html 795B
doughnut.html 733B
pie.html 603B
404.html 227B
chart-texture.jpg 8KB
echarts.js 2.32MB
echarts.common.min.js 435KB
footable.js 262KB
jquery-ui-1.9.2.custom.min.js 232KB
bootstrap.bundle.js 225KB
jquery-ui-1.10.4.min.js 223KB
jquery-jvectormap-world-mill-en.js 141KB
fullcalendar.js 122KB
jquery.sparkline.js 121KB
jquery.sparkline-11.js 118KB
jquery-1.8.3.min.js 91KB
jquery.js 91KB
jquery-1.8.1.min.js 91KB
jquery.min.js 85KB
bootstrap.bundle.min.js 81KB
footable.min.js 80KB
jquery.nicescroll.js 58KB
bootstrap.js 57KB
fullcalendar.min.js 49KB
fullcalendar.min.js 49KB
fullcalendar.js 48KB
jquery-ui-1.8.23.custom.min.js 46KB
Chart.js 44KB
Chart.js 44KB
Chart.js 43KB
sparklines 2.js 42KB
sparklines.js 42KB
excanvas.js 40KB
ga.js 37KB
jquery-jvectormap-1.2.2.min.js 33KB
morris.min.js 31KB
morris.min 2.js 31KB
xcharts.min.js 30KB
xcharts.min 2.js 30KB
bootstrap.min.js 27KB
owl.carousel 2.js 27KB
owl.carousel.js 27KB
excanvas.js 26KB
jquery.validate.min.js 21KB
共 365 条
- 1
- 2
- 3
- 4
资源评论
不走小道
- 粉丝: 3383
- 资源: 5051
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Apparat 餐厅,使用 C# 和 SlimDX 制作的开源游戏模拟引擎。.zip
- 视觉图像处理,2D 或 3D 实时视频或来自摄像头、网络摄像头或扫描仪的静止图像的视觉图像处理.......zip
- ARSoft.MultiRulePolicyDaemon 反垃圾邮件守护程序
- 使用 Expression Tree 以 C# 编写的规则引擎.zip
- 这是一个适用于 Windows 的简单免费开源 闹钟,MIT 许可闹钟。它不到 100 行代码。用 Visual Studio C# 2010 EE 编写。.zip
- 应用程序管理库,应用程序管理使您的应用程序生活更轻松。它将自动进行内存管理,处理和记录未处理的异常,分析您的函数,使您的应用程序成为单个实例,并提供 util 函数来获取系统信息。.zip
- 检测人笑脸的程序;微笑会传递
- C#自动设备上位机应用 PLC OPC 监控曲线 数据保存导出 完整工程项目代码,vs2015或以上开发或调试 UI是DevExpress组件,可编译,可修改,可调试,这是一个工业应用上位机,下位
- Python图形绘制实例:用Turtle模块绘制创意南瓜头
- S7-1200控制5轴伺服程序案例 1.PTO伺服轴脉冲定位控制功能应用+速度模式应用+扭矩模式应用 2.程序为结构化编程,每一功能为模块化设计,具有一个项目都有的功能:自动-手动-单步-暂停
- 2025届南网面试宝典
- 分布式能源接入分析matlab 通过分布式能源的选址定容确定得到帕累托最优解集,然后选择最优值进行分析,模型为双层模型,程序采用改进粒子群算法
- 基于Python Turtle模块实现奥林匹克五环图案的绘制
- 西门子200 SMART椎栈缓存程序 字节、字数据堆栈缓存示例 由于该PLC的填充和块移动指令移动个数为0一255. 缓存数据多一点就没办法实现,要么成1200的 本程序功能由西门子工程师通过循环和
- 扫频式频谱仪中频算法仿真代码
- 2025南方电网讲义电分-纯图版
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功