F063 基于知识图谱的中成药推荐与养生知识平台设计与实现

文章结尾部分有CSDN官方提供的学长 联系方式名片

文章结尾部分有CSDN官方提供的学长 联系方式名片

关注B站,私信获取! 麦麦大数据

编号: F063

视频

F063知识图谱中成药推荐与知识科普平台

1 系统简介

系统简介:本系统是一个基于Vue+Flask+MySQL+Neo4j构建的基于知识图谱的中成药推荐与养生知识平台 。其核心功能围绕智能医药推荐、养生知识传播与后台数据管理。主要功能模块包括:用户端的智能推荐、在线开药、养生内容浏览与互动,以及管理员端的知识图谱构建、药库管理、新闻管理、用户管理与数据可视化分析。

2 功能设计

该系统采用前后端分离的B/S架构模式,基于Vue+Flask+MySQL+Neo4j技术栈实现。前端通过Vue.js框架搭建响应式界面,结合Element UI等组件库提供友好的用户交互体验,使用Vue-Router进行页面路由管理,Axios实现与后端的异步数据交互。Flask后端负责构建RESTful API服务,通过Sqlalchemy操作MySQL数据库存储用户信息、新闻、用药记录等结构化数据,PyMySQL作为MySQL驱动支持。Neo4j作为图数据库,用于存储和查询由知识图谱构建的药物、病症、养生等关系数据。在智能推荐 功能方面,系统采用paraphrase-MiniLM-L6-v2(一个预训练的句子嵌入模型)对用户的症状描述进行语义理解,并在Neo4j图谱中寻找语义最相似的匹配药物,从而实现精准推荐。

2.1系统架构图

系统架构分为前端、后端和数据层。用户通过浏览器访问前端(Vue)界面,前端通过HTTP请求与Flask后端进行通信。Flask后端负责处理业务逻辑,并与MySQL和Neo4j进行数据交互。MySQL用于存储常规的结构化数据,如用户信息、新闻、用药历史等;Neo4j则负责存储和查询动态的知识图谱数据。系统还包含一个Python爬虫程序,用于从外部网站抓取养生知识,并将其存储到MySQL中,供后续构建知识图谱使用。

2.2 功能模块图

主要功能模块有:

  1. 用户端模块
    • 登录 & 注册
    • 智能推荐
    • 在线开药
    • 养生科普和新闻
    • 用药历史
    • 反馈
    • 个人信息设置
  2. 管理员端模块
    • 养生数据采集
    • 知识图谱构建
    • 知识图谱可视化
    • 药库管理
    • 新闻管理
    • 用户管理
    • 可视化分析
    • 权限管理

3.1 登录 & 注册

登录注册做的是一个可以切换的登录注册界面,点击去登录后者去注册可以切换。登录需要验证用户名和密码是否正确,密码需经过哈希加密后与数据库中的信息进行比对。注册时,系统会验证用户名是否已存在,并对新用户信息进行合法性校验。

3.2 智能推荐

用户在输入框中描述自己的症状(如"嗓子疼"、"咳嗽"等),系统会将这些文本输入到paraphrase-MiniLM-L6-v2模型中,生成一个语义向量。后端在Neo4j图谱中搜索与该向量最相似的节点(代表药物),并返回推荐的药物列表。用户可以根据推荐结果选择开药。

3.3 在线开药

在智能推荐页面,用户点击推荐的药物后,进入在线开药页面。用户可填写购买数量等信息,确认订单后,系统会将用药记录写入MySQL数据库的"用药历史"表中。同时,系统会为用户生成药品的购买链接或提供购买指引。

3.4 养生新闻&养生科普

用户可以浏览养生科普和养生新闻列表,点击进入详情页面查看具体内容。在详情页,用户可以对文章进行点赞和评论。系统通过Ajax请求将用户的点赞和评论信息实时提交到后端,存储到数据库中。


3.5 用药历史

用户登录后可以查看自己过去的所有用药记录,包括药物名称、使用时间、用药时长等信息。用户可以按时间筛选历史记录。

3.6 反馈

用户可以通过反馈模块提交自己的意见或建议。系统会将反馈内容存储到数据库,供管理员查阅和处理。

3.7 个人信息设置

个人信息设置方面包含了用户信息修改、密码修改功能。

用户信息修改中可以上传头像,完成用户的头像个性化设置,也可以修改用户其他信息。上传头像时,前端使用File API选择本地图片,通过FormData传给后端,后端将图片保存到指定目录,并在数据库中更新用户信息。

修改密码需要输入用户旧密码和新密码,验证旧密码成功后,就可以完成密码修改。

3.8 养生数据采集

管理员通过后台的"养生数据采集"功能,可以启动爬虫程序。爬虫会从预先配置的养生知识网站抓取文章,提取出标题、内容、发布时间等字段,并将数据存入MySQL中的"养生知识"表中,为后续的知识图谱构建提供原始数据。

3.9 知识图谱构建

管理员在后台"知识图谱构建"功能中,可以启动图谱生成程序。该程序会调用py2neo库连接Neo4j,读取MySQL中"养生知识"表的文本,通过自然语言处理技术(如实体识别、关系抽取)解析出药物、病症、养生方法等实体及其关系,并将其作为节点和关系写入Neo4j图数据库中,完成知识图谱的构建。

3.10 知识图谱可视化

系统利用D3.js在前端实现知识图谱的动态可视化展示。管理员可以在可视化界面中搜索特定实体(如"感冒"),查看其关联的药物和症状节点。用户可以进行放大、缩小、拖拽、点击查看节点详细信息等交互操作,直观地了解药物之间的关联。

3.11 药库管理

管理员可以对中成药库进行管理。通过增删改查操作,可以维护药品信息,如药品名称、药品成分、主要功效、适应症、禁忌症等,数据存储于MySQL的"药库"表中。

3.12 新闻管理

管理员可以管理养生新闻。支持添加、修改、删除新闻,新闻内容支持富文本编辑(如添加图片、链接等)。新闻数据存储于MySQL的"新闻"表中。

3.13 用户管理

管理员可以查看、修改、删除用户信息。包括用户的基本信息和注册状态,所有操作均通过管理员面板在MySQL中进行。

3.14 可视化分析

系统提供数据可视化分析功能,管理员可以查看:

  • 用户留存度分析:统计每日、每周、每月的用户登录情况。
  • 用户活跃度分析:分析用户使用系统的频率、时长等。
  • 用户满意度分析:通过分析用户反馈的词云,了解用户对系统的整体评价和关注点。
  • 用户反馈词云 :将用户提交的反馈文本进行分词和词频统计,生成词云图,直观展示用户最常提及的关键词。

3.15 权限管理

系统采用RBAC(基于角色的访问控制)模型。管理员可以创建不同的角色(如普通用户、管理员),并为每个角色分配可以访问的菜单和执行的操作权限,确保系统安全和数据隔离。

4程序核心算法代码

4.1 代码说明

代码介绍:

  1. 文本相似度计算 :使用sentence_transformers库中的paraphrase-MiniLM-L6-v2模型,将用户输入的症状文本和知识图谱中的药物描述文本转换为向量,再计算余弦相似度,找出最相似的药物。
  2. 知识图谱构建 :使用Python的py2neo库,结合NLP技术,从养生文本中提取实体和关系,批量写入Neo4j数据库。
  3. D3.js图谱渲染:利用D3.js库的力导向图(Force-Directed Graph)算法,动态展示Neo4j中的知识图谱节点和连接。

4.2 流程图

用户输入症状
调用paraphrase-MiniLM-L6-v2模型生成向量
在Neo4j中查询语义相似度最高的药物
返回推荐药物列表
前端展示推荐结果
用户选择开药
记录用药历史

4.3 代码实例

python 复制代码
# 1. 使用sentence_transformers进行语义相似度计算
from sentence_transformers import SentenceTransformer, util

# 加载预训练模型
model = SentenceTransformer('paraphrase-MiniLM-L6-v2')

# 用户输入的症状描述和知识图谱中的药物描述
symptom = "嗓子疼"
medicines = ["板蓝根颗粒", "银翘解毒片", "川贝枇杷膏"]

# 将症状和药物描述转换为向量
symptom_embedding = model.encode(symptom)
medicine_embeddings = model.encode(medicines)

# 计算余弦相似度
cosine_scores = util.cos_sim(symptom_embedding, medicine_embeddings)
# 找出相似度最高的药物
top_results = util.semantic_search(cosine_scores, medicines, top_k=1)
sql 复制代码
-- 2. Neo4j数据库中创建节点和关系
CREATE (m:Medicine {name: '板蓝根颗粒', effect: '清热解毒', symptom: '喉咙痛'})
CREATE (s:Symptom {name: '喉咙痛'})
CREATE (m)-[:TREATS]->(s)

关注B站,私信获取! 麦麦大数据

文章结尾部分有CSDN官方提供的学长 联系方式名片

文章结尾部分有CSDN官方提供的学长 联系方式名片

相关推荐
ai大模型中转api测评5 分钟前
解密 GPT-5.5:原生多模态架构如何重定义 AI 逻辑推理与精准制图
大数据·人工智能·gpt·架构·api
冷雨夜中漫步8 分钟前
Claude Code源码分析——Claude Code Agent Loop 详细设计文档
java·开发语言·人工智能·ai
xixixi7777711 分钟前
英伟达Agent专用全模态模型出击,仿冒AI智能体泛滥成灾,《AI伦理安全指引》即将落地——AI治理迎来“技术-风险-规范”三重奏
人工智能·5g·安全·ai·大模型·英伟达·智能体
直奔標竿13 分钟前
Java开发者AI转型第二十六课!Spring AI 个人知识库实战(五)——联网搜索增强实战
java·开发语言·人工智能·spring boot·后端·spring
数据皮皮侠AI17 分钟前
中国城市可再生能源数据集(2005-2021)|顶刊 Sci Data 11 种能源面板
大数据·人工智能·笔记·能源·1024程序员节
G311354227321 分钟前
如何用 QClaw 龙虾做一个规律作息健康助理 Agent
大数据·人工智能·ai·云计算
幂律智能22 分钟前
零售行业合同管理数智化转型解决方案
大数据·人工智能·零售
旺财矿工24 分钟前
零基础搭建 OpenClaw 2.6.6 Win11 本地化运行环境
人工智能·openclaw·小龙虾·龙虾·openclaw安装包
九成宫25 分钟前
动手学深度学习PyTorch版初步安装过程
人工智能·pytorch·深度学习
Traving Yu25 分钟前
Prompt提示词工程
人工智能·prompt