F076 中医中药知识智能问答与图谱构建研究系统 Vue+Flask+Neo4j

F076 中医中药知识智能问答与图谱构建研究系统 Vue+Flask+Neo4j
文章结尾部分有ZEEKLOG官方提供的学长 联系方式名片
关注B站,私信获取! 麦麦大数据
编号: F076

视频

<<待上传>>

1 系统简介

系统简介:本系统是一个基于Vue+Flask+Neo4j+MySQL构建的《中医中药知识智能问答与图谱构建研究系统》。其核心围绕中医证型、中药信息的数字化管理、智能问答及知识图谱的构建与多维度可视化分析能力展开。
本系统主要面向用户提供中医证型查询、中药推荐、病症知识智能问答等功能,同时面向管理员提供数据分析、用户管理、基础数据维护等系统级管理功能。其关键技术栈涵盖前后端分离架构、图数据库Neo4j、传统关系型数据库MySQL,结合多种文本挖掘算法(如TF-IDF、TextRank、YAKE)完成对数据内容的智能分析。

主要功能模块包括:用户登录与注册、中医证型管理、中药信息展示、知识图谱可视化、智能问答、病症知识推荐、用户画像分析、系统数据管理、个人信息设置等。

2 功能设计

本系统基于Vue + Flask + Neo4j + MySQL架构,采用B/S架构模式,从前端界面设计、后端业务逻辑到数据库管理均实现了模块化和分层设计。


2.1 系统架构图

系统采用经典的三层架构:

在这里插入图片描述
  1. 前端层:用户界面构建,基于Vue框架,结合Vuetify组件库打造美观、流畅的交互体验。前端模块通过Axios调用Flask后端接口,使用ECharts和D3.js完成知识图谱和数据分析的可视化展示。
  2. 后端层:基于Flask Web框架构建RESTful API服务,采用SQLAlchemy进行MySQL数据管理,使用Py2Neo与Neo4j图数据库进行交互,为前后端交互提供数据支持。
  3. 数据库层
    • 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 代码说明

系统的核心算法包括:

  1. TF-IDF分析中药功效: 通过计算关键词在每条功效中的重要性,提取关键词。
  2. TextRank分析中药药理: 结构化的摘要提取,用于推荐中药适应症。
  3. YAKE分析化学成分: 通过文本中的上下文位置与重复频率,提取中药的化学关键成分词。
  4. 混合推荐算法: 根据用户点击、搜索与收藏记录,进行内容推荐或个性化知识展示。

4.2 流程图

(建议展示从用户输入到生成推荐结果的流程)


4.3 代码实例

Python示例:Flask后端调用Neo4j获取知识图谱数据
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'])defget_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 """ifnot label or label notin["证型","中药"]: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 示例:获取与“气滞血瘀”相关的中药关系图谱
MATCH (n:证型 {name: '气滞血瘀'})-[r:适合使用]->(m:中药) RETURN n.name AS source, type(r) AS relation, m.name AS target 

如果你对本系统感兴趣,或者需要源码、文档、演示视频,欢迎关注B站账号,私信获取资料!

作者:麦麦大数据
文章编号:F076

[ZEEKLOG官方提供的联系方式]

Read more

java: 警告: 源发行版 17 需要目标发行版 17

错误 java: 警告: 源发行版 17 需要目标发行版 17 要解决“java: 无效的目标发行版: 17”错误,需从JDK版本、构建工具配置、环境变量、IDE设置、依赖兼容性五个维度系统性排查。以下是具体步骤和解决方案: 一、验证JDK版本与一致性 1. 安装JDK 17: * 官方下载:Oracle JDK 17 * 开源替代:Adoptium Temurin JDK 17 验证构建工具使用的JDK: mvn -v# Maven使用的JDK版本 gradle -v# Gradle使用的JDK版本 确保与项目配置的JDK 17一致。 检查已安装的JDK版本: java-version javac -version 确保输出显示JDK 17(如17.0.11)

By Ne0inhk
Java新手入门:从零开始安装JDK并配置环境变量

Java新手入门:从零开始安装JDK并配置环境变量

作者:默语佬 ZEEKLOG技术博主 原创文章,转载请注明出处 前言 作为一名Java程序员,相信很多小伙伴都经历过刚入门时的迷茫:“Java到底怎么学?从哪里开始?”,而安装JDK并配置环境变量就是迈向Java世界的第一步。 今天这篇文章,我就来手把手教大家从零开始安装JDK并配置环境变量。文章会配有详细的截图和步骤说明,即使你是完全的小白,也能轻松搞定! 阅读对象:Java新手、编程入门者、对Java感兴趣的同学 难度等级:⭐(入门级) 预计时间:30分钟 目录 1. JDK是什么?为什么要安装JDK? 2. JDK下载:选择合适的版本 3. JDK安装:一步步图形化安装 4. 环境变量配置:Windows系统配置 5. 验证安装:确认JDK安装成功 6. 常见问题及解决方案 7. 总结与下一步学习建议 JDK是什么?为什么要安装JDK? JDK的概念 JDK是Java Development Kit的缩写,

By Ne0inhk
Spring Boot 4.0 + JDK 25 + GraalVM:下一代云原生Java应用架构

Spring Boot 4.0 + JDK 25 + GraalVM:下一代云原生Java应用架构

🧑 博主简介:ZEEKLOG博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c=1000,移动端可关注公众号 “ 心海云图 ” 微信小程序搜索“历代文学”)总架构师,16年工作经验,精通Java编程,高并发设计,分布式系统架构设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇心,乐于分享所学,希望通过我的实践经历和见解,启发他人的创新思维。在这里,我希望能与志同道合的朋友交流探讨,共同进步,一起在技术的世界里不断学习成长。 🤝商务合作:请搜索或扫码关注微信公众号 “ 心海云图 ” Spring Boot 4.0 + JDK 25 + GraalVM:下一代云原生Java应用架构 摘要 随着云原生架构的快速演进,传统Java应用面临的“启动慢、内存高、体积大”三座大山亟待解决。

By Ne0inhk