文章结尾部分有CSDN官方提供的学长 联系方式名片
关注B站,私信获取! 麦麦大数据编号: F076
视频
<<待上传>>
1 系统简介
系统简介:本系统是一个基于Vue+Flask+Neo4j+MySQL构建的《中医中药知识智能问答与图谱构建研究系统》。其核心围绕中医证型、中药信息的数字化管理、智能问答及知识图谱的构建与多维度可视化分析能力展开。
本系统主要面向用户提供中医证型查询、中药推荐、病症知识智能问答等功能,同时面向管理员提供数据分析、用户管理、基础数据维护等系统级管理功能。其关键技术栈涵盖前后端分离架构、图数据库Neo4j、传统关系型数据库MySQL,结合多种文本挖掘算法(如TF-IDF、TextRank、YAKE)完成对数据内容的智能分析。
主要功能模块包括:用户登录与注册、中医证型管理、中药信息展示、知识图谱可视化、智能问答、病症知识推荐、用户画像分析、系统数据管理、个人信息设置等。
2 功能设计
本系统基于Vue + Flask + Neo4j + MySQL架构,采用B/S架构模式,从前端界面设计、后端业务逻辑到数据库管理均实现了模块化和分层设计。
2.1 系统架构图
系统采用经典的三层架构:

- 前端层:用户界面构建,基于Vue框架,结合Vuetify组件库打造美观、流畅的交互体验。前端模块通过Axios调用Flask后端接口,使用ECharts和D3.js完成知识图谱和数据分析的可视化展示。
- 后端层:基于Flask Web框架构建RESTful API服务,采用SQLAlchemy进行MySQL数据管理,使用Py2Neo与Neo4j图数据库进行交互,为前后端交互提供数据支持。
- 数据库层 :
- MySQL:用于存储用户、权限、系统配置等结构化数据;
- Neo4j:用于知识图谱的存储与查询,支持图结构化数据的复杂关系表达。
2.2 功能模块图

系统主要分前端用户界面与后端管理接口两大部分:
-
前端用户模块:
- 用户登录、注册、个人信息管理
- 中医证型信息浏览
- 中药信息展示与搜索
- 中医智能问答系统
- 病症知识推荐系统
- 知识图谱展示
- 多维度数据分析与展示
-
后端管理模块:
- 用户行为与画像分析
- 用户管理功能
- 证型与中药数据管理
- 数据统计与报表生成
- 系统配置维护
3 系统功能描述
3.1 登录 & 注册
系统采用身份认证机制,分为普通用户和管理员角色,根据不同的角色权限展示不同的菜单内容。
登录注册界面支持账号切换,前端通过Vuetify实现登录表单,通过Axios发送请求与后台Flask进行数据验证。
- 登录流程 :
- 用户输入用户名和密码
- 后端验证是否与数据库(MySQL)中的用户匹配
- 验证通过后返回用户角色,前端根据角色渲染对应界面
- 注册流程 :
- 用户填写用户名、密码、邮箱等基础信息
- 邮箱格式校验
- 判断用户名是否唯一
- 注册信息写入MySQL并发送一封确认邮件

3.2 用户与管理员角色划分
系统根据用户角色(普通用户与管理员用户)渲染不同的菜单与功能页面。前端通过Vue-Router进行页面切换,管理员有访问后台管理模块的权限。
3.3 中医证型信息管理
3.3.1 证型浏览
- 每个证型以卡片形式展示,包含详细内容(如定义、症状、对应中药等)
- 支持搜索与筛选功能
- 提供"喜欢"、"收藏"、"不喜欢"操作功能,提升用户参与度,并作为推荐数据源之一

3.3.2 中药浏览
- 展示每种中药的基本信息,如图片、功效、适应症状、药理说明等
- 提供搜索框进行快速筛选
- 每种中药与对应的证型建立映射关系,支持知识图谱查看

3.4 智能问答功能(中医中药知识问答)
系统通过构建知识图谱及自然语言处理模块,支持用户基于症状、中药名称、功效等关键词发起智能问答。
- 比对用户输入文本与知识图谱中的实体、关系进行匹配
- 提供自动补全与语义理解功能,实现"问症状,给出建议"或"问某种中药,说明其功能"
- 支持问答过程中的上下文记录,以优化后续推荐

3.5 病症知识推荐
系统根据用户搜索历史、点击记录及收藏记录,采用混合推荐算法(基于内容、协同过滤与深度学习模型)进行个性化推荐。
- 推荐中医证型、病症与中药组合
- 用户可查看推荐内容并反馈是否喜欢,作为算法优化依据
- 后台可监控推荐效果,优化推荐逻辑与模型参数

3.6 知识图谱可视化
知识图谱模块是系统的技术核心之一,用户可以选择浏览"药方与药剂"的关联知识。
- 基于Neo4j,系统构建了中药、证型、病症、处方之间的复杂关系图谱
- 前端使用ECharts和D3.js进行图谱展示,节点代表实体(如证型、中药),边代表关系(如"适合使用"、"用于治疗")
- 可拖动、放大缩小、点击查看详细信息

3.7 多维度数据分析
本系统具备多维度的数据分析能力,包括:
-
病症数据分析:
- 按疾病类别、证候、病位、病性进行图表展示
- 使用饼图、柱状图、折线图表呈现用户关注热点或系统数据趋势

-
文本分析:
- 对中药功效、药理、化学成分进行文本挖掘
- 分别采用TF-IDF(词频-逆文档频率)、TextRank(文本摘要排名)、YAKE(关键词提取)三种算法处理
- 后台生成关键词或主题词,前端展示为词汇云或关键词列表,便于用户获取重点词义

3.8 用户画像分析
管理员可以通过此模块进行用户行为分析,辅助系统优化与内容推荐策略。
- 分析方式 :
- 对用户浏览、收藏、搜索等行为进行数据统计
- 按时间维度分析用户行为趋势
- 提取用户关注的中医证候热点
- 展示形式 :
- 数据图表(折线、柱状图、饼图等)
- 可选择特定用户单独查看其行为轨迹

3.9 信息可视化加载提示
在进行文本分析处理 (如TF-IDF处理功效)时,处理速度可能较快较慢,因此前端需加入加载状态提示,以增强用户体验。
- 当用户选择分析维度时,前端显示"正在分析..."状态
- 分析完成后返回结果展示
3.10 系统用户管理(管理员功能)
管理员拥有更高权限,可以对系统用户进行以下操作:
- 用户增删改查
- 查看用户详情(点击行为、收藏记录、注册时间等)
- 设置账号状态(启用/禁用)
- 生成用户画像报告

3.11 证型与中药数据管理
管理员可维护系统核心数据,包括:
- 添加、删除、编辑证型、中药条目(名称、定义、成分、适应症等)
- 配置数据字段(如是否公开、是否启用推荐等)
- 所有配置操作记录均存入MySQL供后续查询
- 证型、中药可配置为可否添加到知识图谱


3.12 个性化设置模块
该模块面向所有用户,允许其根据自身需求进行个性化设置:
- 修改个人信息:可设置姓名、年龄、电话、地址,并选择预设头像
- 密码修改:输入用户旧密码和新密码,通过后台验证后完成更新
- 所有信息更新均通过Flask API完成,并与MySQL数据库同步

4 程序核心算法代码
4.1 代码说明
系统的核心算法包括:
- TF-IDF分析中药功效: 通过计算关键词在每条功效中的重要性,提取关键词。
- TextRank分析中药药理: 结构化的摘要提取,用于推荐中药适应症。
- YAKE分析化学成分: 通过文本中的上下文位置与重复频率,提取中药的化学关键成分词。
- 混合推荐算法: 根据用户点击、搜索与收藏记录,进行内容推荐或个性化知识展示。
4.2 流程图
(建议展示从用户输入到生成推荐结果的流程)
4.3 代码实例
Python示例:Flask后端调用Neo4j获取知识图谱数据
python
from flask import Flask, request, jsonify
from py2neo import Graph
import json
app = Flask(__name__)
neo4j_graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
@app.route('/api/zhongyi/graph', methods=['GET'])
def get_knowledge_graph():
label = request.args.get('label') # 动态标签如"证型"或"中药"
query = """
MATCH (n:`{}`)-[r]->(m)
RETURN n.name AS source, type(r) AS relation, m.name AS target
LIMIT 50
"""
if not label or label not in ["证型", "中药"]:
return jsonify({"error": "无效标签"})
results = neo4j_graph.run(query.format(label))
data = [{"source": r["source"], "relation": r["relation"], "target": r["target"]} for r in results]
return jsonify({"nodes": results.unique(), "relationships": data})
Cypher 示例:获取与"气滞血瘀"相关的中药关系图谱
cypher
MATCH (n:证型 {name: '气滞血瘀'})-[r:适合使用]->(m:中药)
RETURN n.name AS source, type(r) AS relation, m.name AS target
如果你对本系统感兴趣,或者需要源码、文档、演示视频,欢迎关注B站账号,私信获取资料!
作者:麦麦大数据
文章编号:F076
CSDN官方提供的联系方式