面向医学疾病知识的图谱问答系统:从公开疾病数据集(25 字段 / 8805 条 / 41.7MB)抽取 1200 个疾病、11244 个实体、57585 条关系,实现力导向图谱探索、多跳查询、症状反查(IDF 加权)与 6 类意图的规则问答,并导出 Neo4j 可导入文件。第 22 套「青瓷医案风」界面,全站不做诊断、关系不加权、同义词只提示不合并。
技术栈
Python、Django、ECharts、MySQL
功能模块
- 真实数据:公开中文疾病数据集 41.7 MB / 25 字段 / 8805 条,随包提供;抽出 1200 疾病 / 11244 实体 / 57585 关系(平均每病 48 条),孤立疾病与同类型重名均为 0
- 实体归一口径:以(类型, 名称)为唯一键,「贫血」既是症状也是病名时分存两个节点,避免症状反查把病名当症状统计
- 关系不加权:源数据不提供同现次数,按位置拍脑袋加权无法解释;权重统一为 1,改用症状度数做区分度加权(IDF 思路)
- 同义词如实不合并:实测「发热」只关联 1 个疾病、「发烧」关联 89 个,静默合并会改变口径,页面改为提示「改搜发烧」,论文 6.3 节专门讨论
- 图谱探索可交互:以疾病为中心拉取一跳邻居(症状/药品/检查/科室/并发症/食物),二跳按共享症状找出最易混淆的相似疾病
- 规则问答 6 类意图:病→症状、症状→病、病→药、病→科室、病→检查、是什么;6 条典型问句全部命中正确意图与实体,答不出时明确说没识别到
- 9 个功能页面:概览 / 图谱探索 / 疾病检索 / 详情 / 症状反查 / 科室视图 / 知识问答 / 构建与质量 / 数据下载,ECharts 本地内置离线可用
- 可迁移:nodes.csv 与 rels.csv 可直接 LOAD CSV 导入 Neo4j;构建命令幂等,改阈值即可扩到全量 8805 条
运行环境
- 编程语言:Python 3.8 及以上
- 后端框架:Django 4.2
- 图谱构建:自定义 build_graph 管理命令(切分 / 归一 / 建边 / 度数 / Neo4j 导出)
- 数据处理:Python 标准库 csv + collections
- 数据库:MySQL 8.0(交付默认 SQLite,免安装)
- 可视化:ECharts 5(力导向图 / 柱状图 / 饼图,本地内置)
- 数据规模:1200 疾病 / 11244 实体 / 57585 关系(源数据 8805 条)
- 操作系统:Windows / macOS / Linux
- 启动方式:双击一键脚本,或 python manage.py runserver 8087
界面截图










文档预览
交付的任务书、开题报告与论文均为 Word 文档,下面是真实页面预览:



交付内容
- 完整源码(Django 工程 + 图谱构建命令 + 演示数据库)
- 原始数据集 41.7MB 与图谱导出文件(nodes.csv / rels.csv / findings.json)
- 毕业设计任务书(Word)
- 毕业设计开题报告(Word)
- 毕业论文(Word,七章制,含同名归一、不加权、同义词不合并三处取舍与评估)
- 系统使用与二次开发说明(Word + md)
- 系统运行截图 10 张 + 功能演示视频