1. 项目概述
医疗领域的智能问答系统近年来在临床辅助诊断、患者咨询服务等方面展现出巨大潜力。这个基于Python的医疗实体识别项目,通过构建医疗知识图谱和运用LSTM-CRF深度学习模型,实现了对医疗问句中关键实体的精准识别与分类。当用户输入"阿莫西林的作用是什么?"这类问题时,系统能够自动提取药品实体"阿莫西林",并在知识图谱中匹配其药理作用信息,最终返回准确的答案。
作为一套完整的毕业设计解决方案,该项目采用Django作为后端框架,MySQL作为数据库,前端使用纯HTML开发。系统不仅实现了核心的实体识别功能,还配备了完善的后台管理模块,包括问句识别记录查询、知识图谱维护等实用功能。对于计算机相关专业的毕业生而言,这个项目涵盖了爬虫、NLP、Web开发等多个热门技术方向,具有很高的学习和参考价值。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构与技术选型
2.1 整体架构设计
系统采用经典的三层架构模式,分为表示层、业务逻辑层和数据访问层:
code复制表示层(HTML)
↓
业务逻辑层(Django)
↓
数据访问层(MySQL)
这种分层设计使得各模块职责清晰,便于后期维护和扩展。系统核心功能流程如下:
- 用户通过HTML界面输入医疗相关问题
- Django后端接收问句并调用实体识别模块
- LSTM-CRF模型识别问句中的医疗实体
- 系统查询知识图谱获取实体关联信息
- 将答案返回给用户界面
2.2 技术栈选择考量
后端框架选择Django的原因:
- 内置ORM简化数据库操作,适合快速开发
- 自带Admin后台,方便构建管理系统
- 完善的文档和社区支持,降低学习成本
- 高安全性,自动防护CSRF、XSS等常见Web攻击
数据库选择MySQL的考虑:
- 关系型数据库适合存储结构化的医疗知识
- 与Django框架集成度高
- 支持事务处理,保证数据一致性
- 社区版免费,适合学术项目
前端采用纯HTML的决策背景:
- 毕业设计重点在于后端算法实现
- 减少前端复杂度,聚焦核心功能
- 便于快速原型开发
提示:在实际生产环境中,建议考虑加入Vue.js或React等现代前端框架提升用户体验,但作为毕业设计演示,纯HTML方案已经足够。
3. 核心算法实现细节
3.1 医疗知识图谱构建
知识图谱是系统的"大脑",其质量直接影响问答准确性。我们通过以下步骤构建:
-
数据采集:
- 使用Scrapy爬取权威医疗网站(如药品说明书、疾病百科)
- 重点抓取实体数据:药品名、疾病名、症状、检查项目等
- 同时采集实体间关系:治疗关系、副作用关系等
-
数据清洗:
python复制def clean_text(text
