# 基于知识图谱的智能医疗诊断系统论文
项目作者: 像风一样(yster@foxmail.com)
> 声明:本作品本着开源的精神分享本作品,禁止任何人/企业申请专利,禁止任何人使用本作品参加任何比赛。
## 获奖荣誉
[山东省大学生软件大赛一等奖](https://www.softqilu.com/show-3-1920.htm)
[山东省大学生移动互联创新创业大赛二等奖](http://www.mobileint.org/news-show-89.html)
[山东省新动能软件创新创业大赛三等奖](http://sdsoft.topcio.cn/sssd/157087643.jhtml)
# 一.科学性
## 1.研究意义
信息科技经过 60 余年的发展,已经普及到社会生活的每一个角落。随着信息技术在国家治理、经济运行的方方面面的应用,大量的数据随之产生。而互联网技术的爆发式发展使得近年来产生的数据总量超过了人类以往产生的历史数据的总和,医疗行业的数据增长幅度尤为突出。
医疗大数据具有巨大的价值,尤其是在临床辅助诊疗和健康管理方面。医疗大数据已经上升到国家战略,同时也是全球学术界与产业界竞争的研究热点。如何利用这些医疗数据,挖掘数据的深层价值,是未来信息科技发展的趋势,也是医疗大数据技术产生的背景。
本项目利用知识图谱将各种琐碎、零散的医疗信息知识相互连接,以支持综合型知识检索问答、辅助决策和智能医疗诊断。精准医学知识与大数据相结合,能够利用庞大的全人类对疾病的理解和医生的经验形成知识库,让医生能够通过大数据的信息系统直接根据病人的个体实际情况来对他们进行针对性的诊断和治疗,辅助医生的诊疗过程,使得普通医生也能够像最好的资深医生一样为病人提供高质量的诊疗服务。
本项目结合知识图谱和医疗大数据技术,可以帮助患者自我评估病情,帮助医生找到最佳治疗方案,提高医生工作效率和诊疗质量,为慢病患者提供远程指导和干预。
## 2.医疗大数据的爬取与存储
(1) 利用互联网搜寻可靠、权威的医疗数据来源,按照疾病所属科室利用多线程技术分段爬取全部数据,保证涵盖全部疾病内容,并在数据爬取过程中,分析数据结构,包括科室、症状、病因、并发症、治疗、预防等。
(2) 针对爬取的数据进行分词,用于后续算法设计,最后将全部数据结构化存储至本地 MySQL 数据库。
(3) 利用 Elastic Search 数据库快速地储存、搜索和分析海量数据。将MySQL 中存储的数据抽取部分部分存入到 Elastic Search 数据库,然后开发相应接口,返回JSON 格式的数据。ES 数据库的主要功能:一是用户在输入框输入症状词时提供实时搜索结果;二是点击部位时搜索到全部相关症状。
(4) 使用 Neo4j 图形数据库存储一部分结构化的数据,便于进行算法设计,搭配分词、检索、排除、统计等算法提升诊断正确率。
## 3.系统运行流程
本系统需要用户输入个人信息(年龄、性别、职业、提供的症状词),系统根据用户年龄、性别、症状等个人信息进行算法分析、统计、排除、排序、得出相关性得分,最后将算法分析结果反馈给用户。关于算法的设计细节,本申报书的创新性部分会详细说明。项目的大致流程图如图一所示:
![img](robot/README.assets/clip_image002.jpg)
图一:系统运行流程图
# 二.创新性
## 1.研究并实现一种基于知识图谱的智能医疗诊断方法
本项目从互联网爬取了庞大的医疗知识库,总体可以分为疾病库与症状库,如何分析出疾病与疾病、疾病与症状、症状与症状的内在联系是本系统设计的难点与核心。基于此问题,我们研究出了一种基于知识图谱的智能医疗诊断方法。
### 1.1 医疗知识图谱的构建
知识图谱可以大致概括为节点与关系的组成图谱,非常有助于本项目对医疗数据的分析与研究。关于知识图谱的节点设计,我们抽取医疗知识库中的全部症状词与全部疾病词构成了知识图谱的全部节点,这部分数据也成为了本项目的医学词典。每个节点都有许多属性,包括科室、症状、病因、并发症、治疗、预防等,但这些属性都是以长文本的形式存储,医学命名实体并没有被单独标注区分。前面已经说明,研究的主要方向是针对疾病与症状的联系,我们利用医学词典对疾病的症状属性进行分词。由此症状节点与疾病节点有了直接的关联,此时的节点知识图谱如图二所示:
![img](robot/README.assets/clip_image004.jpg)
当每个疾病节点都与它所属的症状或一些并发症进行了关联之后,相互之间难免出现交叉。以图二所示举例,偏头痛会导致一系列症状与并发症,这种关系以箭头指向表示,偏头痛指向丛集性头痛,丛集性头痛又指向症状词头痛,偏头痛也指向了头痛,各种复杂的疾病、症状关系正是通过这种复杂的指向关系(也就是知识图谱),进行了清晰的展示。
### 1.2 智能诊断方法
如何基于这种复杂的知识图谱研究出一套科学的智能诊断算法是本系统的核心与关键。前面已经提到,系统在诊断之前需要用户提供症状、年龄、性别等信息,当获取用户提供的本系统医学词典范围内的症状词后,系统会马上根据症状词获取此症状的知识图谱,假设用户提供了“头痛”与“恶心”两个症状词,此时的知识图谱如图三、图四所示:
![img](robot/README.assets/clip_image006.jpg)
![img](robot/README.assets/clip_image008.jpg)
由知识图谱可以看到指向它们自身的节点,也就是导致这两个症状的疾病是存在共同之处的。当我们把这两张知识图谱合二为一后,此时的知识图谱如图五所示:
![img](robot/README.assets/clip_image010.jpg)
该方法到此正式分析出了引起用户症状的“病因”,但此刻获取的疾病结果还是有些笼统,存在一些误差,这些误差来源于每个人的性别、年龄、职业等具体的个人特征,因此需要进一步的提升诊断准确率。
针对疾病所属的部分科室对人群的严格划分,我们详细列出了特殊科室人群分布表格,如表格1所示:
表 1 特殊科室人群分布表
| 科室 | 人群 |
| -------- | ---- |
| 妇科 | 女 |
| 产科 | 女 |
| 妇产科 | 女 |
| 男科 | 男 |
| 小儿科 | 小儿 |
| 老年科 | 老年 |
| 乳腺外科 | 女 |
由此表格辅助,再搭配用户提供的年龄、性别信息,可以成功排除相当大的一部分不可能疾病,大大提升了诊断的正确率。
到此,系统已初步诊断出引发这些症状的一系列疾病。但这些的疾病哪些的正确率最大,哪些的正确率最小暂时还不知道。为了解决这个问题,特提出“相关性得分”的概念进行最终的排序。系统需要计算诊断得出的疾病的匹配症状的多少,比如,用户提供了3个症状词,系统诊断得出了10个疾病结果,其中有的疾病的所有症状中只匹配用户提供的3个症状的其中2个,有的疾病的所有症状中包含全部的3个症状,匹配症状越多的疾病得分越高,这是第一步的大体排序。但此时很容易就出现匹配度相同的疾病,类似出现两种疾病的所有症状都匹配了两个症状的情况。如何处理这种情况,仅使用匹配算法是不能满足的。因此,需要进一步对匹配度相同的疾病结果进行单独的排序。经过两次排序后的结果就是诊断系统的最终诊断结果。
## 2.提出一种面向大规模知识图谱快速存储
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
<项目介绍> Java开发的基于知识图谱的分布式智能医疗诊断系统+源代码+文档说明(大赛作品)+论文 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
Java开发实现的基于知识图谱的分布式智能医疗诊断系统+源代码+文档说明(大赛作品)+论文 (213个子文件)
word.local.conf 4KB
jbk_tool2014.css 29KB
jbk_topnav_2014.css 17KB
jbk_index.css 16KB
layer.css 14KB
layer.css 5KB
smohan.pop&share.css 4KB
my.css 1KB
base2014.css 1KB
img_btn.gif 10KB
logo.gif 6KB
loading-0.gif 6KB
img_bg.gif 5KB
loading_02.gif 5KB
bg.gif 4KB
base_search.gif 4KB
loading_01.gif 3KB
Load.gif 3KB
img_float_side.gif 2KB
nav_share.gif 2KB
loading-2.gif 2KB
img_nav_new.gif 1KB
img_sort.gif 1KB
loading-1.gif 701B
index_2.html 20KB
index_3.html 13KB
index.html 12KB
index.html 8KB
MedicalNodeRepositoryTest.java 9KB
AnaylzeServiceImpl.java 9KB
AbstractSpiderServer.java 9KB
SpiderMedicalService2.java 7KB
SpiderService.java 6KB
wordTest.java 6KB
MedicalRepositoryTest.java 5KB
Medical.java 5KB
Medical.java 5KB
Medical.java 5KB
MedicalRepositoryTest.java 4KB
SpiderMedicalService.java 4KB
BotNodeUpdata.java 4KB
CheckController.java 3KB
Msymptom.java 3KB
Msymptom.java 3KB
MedicalRepositoryTest.java 3KB
BotRepositoryTest.java 2KB
RobotApplicationTests.java 2KB
SpiderNewServiceTest.java 2KB
WordFileTest.java 2KB
MedicalServiceImpl.java 2KB
SpiderUtil.java 2KB
DataClean.java 2KB
DruidConfig.java 2KB
SpiderTest.java 2KB
EsDiseaseRepositoryTest.java 2KB
SpiderSymptomService.java 2KB
Disease.java 2KB
BotNode.java 2KB
SymptomServiceImpl.java 2KB
Propertiy.java 1KB
BotRelationRepository.java 1KB
ProjectPath.java 1KB
ProjectPath.java 1KB
ProjectPath.java 1KB
Medical.java 1KB
Test2.java 1KB
BotNode.java 1KB
Medical.java 1KB
EsDisease.java 1KB
MedicalNode.java 1KB
MedicalController.java 1KB
PartClass.java 1KB
BotRelationRepository.java 1KB
MedicalRelation.java 1KB
SpiderMedicalFaild.java 1KB
Department.java 1KB
BotRelation.java 1KB
D3Relation.java 1KB
AnaylzeUtil.java 1KB
BotRelationServiceImpl.java 1KB
Illness.java 1KB
NameHref.java 1KB
NameHrefTest.java 1KB
BotRelation.java 1KB
Parameter.java 1KB
Symptom.java 942B
MedicalServiceTest.java 930B
Node.java 901B
IllnessRepository.java 864B
TexUtil.java 835B
IllnessRepositoryTest.java 827B
Link.java 787B
MsymptomServiceImpl.java 755B
MedicalServiceImpl.java 746B
AccessDataServiceImpl.java 746B
MedicalController.java 686B
DiagnosticApplicationTests.java 658B
ResultEnum.java 650B
DiagnosticApplication.java 628B
ExceptionHandle.java 594B
共 213 条
- 1
- 2
- 3
资源评论
机智的程序员zero
- 粉丝: 2012
- 资源: 4223
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功