基于vue+neo4j 的中药方剂知识图谱可视化系统

前言

历时一周时间,中药大数据R02系统中药开发完毕,该系统通过scrapy工程获取中药数据,使用python pandas预处理数据生成知识图谱和其他相关数据,利用vue+springboot+neo4j+mysql 开发系统,具体功能请看本文介绍。

简要介绍

🩵编码:R02
🩵网站端:neo4j知识图谱+推荐算法、药方查询(带图谱)、中药查询,数据下钻、产地地图、数据纠错,中医中药资讯新闻
🩵管理端:药方、药材、资讯、用户的增删改查管理等
🩵大屏端:超酷知识图库结合可视化
🩵架构: 3+1+2架构 三前端一后端双数据库
🩵技术:vue+springboot+neo4j+mysql (java开发为主)
🩵数据来源:包含scrapy爬虫,数据预处理,图谱生成
🩷展望:R02 ultra版本正在开发,将会升级AI大模型中医问答+药材识别两大超强超实用吊打答辩老师的功能

视频演示

解说vue+neo4j知识图谱中药大数据+推荐算法+neo4j知识图谱+可视化 java开发vue+springboot

系统功能架构图

在这里插入图片描述

爬虫流程

在这里插入图片描述

网站端介绍

药材推荐

集成推荐算法,提供个性化药材推荐,帮助用户根据不同需求选择合适的药材。算法方面集成usercf和itemcf两种算法。药材卡片可以点击下钻:
请添加图片描述

中医知识图谱

中医知识图谱,模糊搜索功能的集成,并且支持力导向图和环形布局两种布局模式之间的切换:
在这里插入图片描述
切换到环形视图:
在这里插入图片描述
模糊搜索石斛:
在这里插入图片描述

中医方剂和药材可视化:

提供中医方剂及其药材的可视化展示,用户可以方便地查询方剂及其组成药材,并深入了解每种药材的特性。
查询功能:

用户可根据中药和方剂进行查询,支持根据方剂查询药材构成,并查看相关知识图谱。用户可下钻至具体药材界面进行详细了解,并可对药材进行评论,利用 LSTM 算法进行情感分析,以获取用户反馈。
在这里插入图片描述
在方剂的详情页面中可以查看这个处方的【例如阿魏麝香散】构成的药材的知识图谱,下面褐色的就是构成的药材,这个药材是可以点击的,点击之后进行下钻,下钻到药材
在这里插入图片描述
在这里插入图片描述
同时也支持单独的查询药材
在这里插入图片描述在这里插入图片描述

系统支持留言评论功能,用户可以与其他用户进行互动,分享经验和见解。这个留言可以通过后台的paddle飞浆模型情感分析其情感倾向
在这里插入图片描述

中医资讯浏览:

提供最新的中医资讯,帮助用户获取中医领域的最新动态和研究成果。支持点赞、评论、收藏等操作:
用户可以通过输入关键词进行模糊查询,系统支持力导向图和环形布局之间的切换,方便用户探索方剂的相关知识。
在这里插入图片描述

中药产地地图可视化:

根据药材名称在中国地图上高亮显示重要产地,用户可在此界面提交纠错信息,管理员收到后可进行处理,确保信息的准确性。
比如输入青藤子:
在这里插入图片描述

用户管理与安全性:

提供用户注册和登录功能,通过阿里云短信验证码确保密码修改的安全性。
在这里插入图片描述

在这里插入图片描述

技术架构

前端: 使用 Vue.js 构建用户友好的界面,确保良好的用户体验。
后端: 采用 Spring Boot 构建高效的服务端逻辑,支持大并发请求。
数据存储:
Neo4j: 存储和管理中医知识图谱,支持复杂的关系查询。
MySQL: 用于存储其他信息数据,实现高效的数据管理。

大屏端介绍

数据大屏,数据大屏支持各种不同形式的展示
在这里插入图片描述
force图展示
在这里插入图片描述
环形图展示
在这里插入图片描述

图谱构造部分
在这里插入图片描述

neo4j截图部分
在这里插入图片描述
在这里插入图片描述
整个大屏通过丰富的图表与数据展示了中医药材和药方的多维度信息,包括用户注册数量、中药药材和药方的记录数、热门词汇图、性味比例、中药产地分布及注册情况等。

详细部分
顶部区域:展示了系统的总体统计信息,包括平台总用户数、中药药材记录数和中药药方记录数,为用户提供整体数据的概览。

左上角图表:展示了各种古籍的收录排行,说明了中药材信息主要来源于哪些古籍,反映了古籍在中医药材数据中的重要性。

左下角图表:展示性味比例图,不同颜色的扇形代表不同性味的中药材数量占比,帮助用户直观了解中医药性味的分布情况。

中部主要区域:中药药方关系图谱展示了不同药方和药材之间的关系,节点以 “Book” 和 “Prescription” 两种颜色区分,青色节点代表书籍,橙色节点代表药方,各个节点之间的连线展示了它们之间的关系,帮助识别药材和药方的联系网络。

右上角图表:通过词云图展示了中药相关的大数据热词,可以用户快速了解当前中药领域的热点话题和研究方向。

右中部图表:中药产地分布图,通过辐射状的图形展示了中药材的主要产地分布信息,图上的不同区域代表不同省份,每个省份用不同的颜色标记。

右下角时间轴:展示了项目的设计过程和时间节点,包括服务器端开发、前端页面设计、数据爬取和大屏设计等步骤,帮助用户了解该项目的开发过程和时间线。

左下角登陆情况:折线图展示了用户登录的时间分布情况,通过数据点和连线观察用户访问的高峰和低谷时段。

这个大屏将复杂的中药材和药方数据通过可视化方式展示出来,为用户提供了一目了然的中药材数据查询和分析服务,充分展现了中医药数据的多样性和丰富性。

管理端介绍

提供主页功能:管理员可以直观查看系统数据情况、用户登录的信息、3D词云
在这里插入图片描述

用户信息管理:可以进行用户增删改查的操作

在这里插入图片描述

中药材信息查询:用户可以点击系统名称进行模糊查询,或通过搜索框自主输入想要查询的信息进行中药材查询,另外支持增删改:
在这里插入图片描述
中药的方剂管理,支持增删改查:
在这里插入图片描述

中药材资讯管理:后台可以进行咨询管理。
在这里插入图片描述

中药材产地可视化:内含全国省份的中药材种类分布地图,这个数据是从scrapy爬虫爬取到的数据进行提取之后使用echarts可视化进行提取的
比如我们输入了青酒缸,在中国地图上金色的点位展示了产地的信息
在这里插入图片描述

用户可以向后台管理员发送中药药材和药方的纠错申请,管理员可以进行处理
在这里插入图片描述
评论管理
用户的登录和退出功能
在这里插入图片描述

爬虫介绍

爬取逻辑非常简单,根据url来处理翻页,然后获取到详情页面的链接,再去爬取详情页面的内容即可!
需要注意的是:这里面有一个方剂多个来源的情况,这个没有处理。
最终数据落地到excel中。
经测试,总计获取 24909条中医方剂数据。

import pandas as pd
import scrapyclass ZhongyaofangSpider(scrapy.Spider):name = 'fangji'allowed_domains = ['zysj.com.cn']start_urls = [f"https://www.zysj.com.cn/zhongyaofang/index_{i}.html" for i in range(1, 27)]def __init__(self, *args, **kwargs):self.data = []def parse(self, response):# 提取包含链接和标题的部分for li in response.css('div#list-content ul li'):a_tag = li.css('a')title = a_tag.css('::attr(title)').get()href = a_tag.css('::attr(href)').get()if title and href:# 构建完整的详情页 URLdetail_url = response.urljoin(href)yield scrapy.Request(detail_url, callback=self.parse_detail, meta={'title': title})# 如果没有这个元素,就设置空就行# 处方: div[class="item prescription"]/div[class="item-content"]/p/text# 制法: div[ class="item making"]/div[class="item-content"]/p/text# 主治: div class="item functional_indications"]/div[class="item-content"]/p/text# 用法用量: class="item usage"]/div[class="item-content"]/p/text# 注意事项: class="item care"]/div[class="item-content"]/p/text# 摘录: class="item excerpt"]/div[class="item-content"]/textdef parse_detail(self, response):title = response.meta['title']# 提取各个字段prescription = response.css('div.item.prescription div.item-content p::text').get(default='').strip()making = response.css('div.item.making div.item-content p::text').get(default='').strip()functional_indications = response.css('div.item.functional_indications div.item-content p::text').get(default='').strip()usage = response.css('div.item.usage div.item-content p::text').get(default='').strip()care = response.css('div.item.care div.item-content p::text').get(default='').strip()excerpt = response.css('div.item.excerpt div.item-content::text').get(default='').strip()item = {'title': title,'prescription': prescription,'making': making,'functional_indications': functional_indications,'usage': usage,'care': care,'excerpt': excerpt}self.data.append(item)yield itemdef closed(self, reason):# 当爬虫关闭时,保存数据到 Excel 文件df = pd.DataFrame(self.data)df.to_excel('zhongyaofang_data.xlsx', index=False)

爬取截图

在这里插入图片描述

爬取后的数据

在这里插入图片描述

数据预处理:从药材数据中提取药材的产地信息
在这里插入图片描述
从药材和药方数据中提取知识图谱信息并且构建到neo4j数据库中
系统的图谱构建由于时间比较长,我们加上了进度条日志,可以方便用户在导入数据的时候去预估时间:
在这里插入图片描述

图谱信息(由于前端显示限制,只展示冰山一角):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/462945.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt的程序如何打包详细教学

生成Release版的程序 在打包Qt程序时,我们需要将发布程序需要切换为Release版本(Debug为调试版本),编译器会对生成的Release版可执行程序进行优化,使生成的可执行程序会更小。 debug版本 debug版本是一种开发过程中的…

AUTOSAR从入门到精通-BswM模块(二)

目录 前言 算法原理 BswM接口端口 BswM功能描述 模式仲裁 仲裁规则(Arbitration Rules) 模式仲裁来源 模式仲裁过程 模式条件(ModeCondition) 逻辑表达式(LogicExpressions) 模式控制 模式处理 操作执行 模式控制过程 模式控制基本流程 BswM Interfaces and …

【C++题解】1970. 判断是什么字符

欢迎关注本专栏《C从零基础到信奥赛入门级(CSP-J)》 问题:1970. 判断是什么字符 类型:字符串、字符型 题目描述: 从键盘读入一个字符,有可能是大写字母、小写字母、数字中的一种,请编程判断&…

2. Flink快速上手

文章目录 1. 环境准备1.1 系统环境1.2 安装配置Java 8和Scala 2.121.3 使用集成开发环境IntelliJ IDEA1.4 安装插件2. 创建项目2.1 创建工程2.1.1 创建Maven项目2.1.2 设置项目基本信息2.1.3 生成项目基本框架2.2 添加项目依赖2.2.1 添加Flink相关依赖2.2.2 添加slf4j-nop依赖2…

年底和2025年黄金预测:至少3000

黄金价格瞄准$3,000.00关口 过去两年,现货黄金价格一直处于强劲的牛市,从2022年9月的低点上涨了将近70%,达到本周创下的每金衡盎司$2,790.00的历史高点,几乎触及心理关口$2,800.00。 即使出现明显的回撤,只要2024年的…

Halcon区域分割之分水岭分割法

现实中我们见到过有山有湖的景象,那么一定是水绕山、山围水的情形。当然可在需要的时候人工构筑分水岭,以防集水盆之间的互相穿透。而区分高山与水的界线以及湖与湖之间的间隔,就是分水岭。 分水岭分割法是一种基于拓扑理论的数学形态…

LLM | 论文精读 | CVPR | SelTDA:将大型视觉语言模型应用于数据匮乏的视觉问答任务

论文标题:How to Specialize Large Vision-Language Models to Data-Scarce VQA Tasks? Self-Train on Unlabeled Images! 作者:Zaid Khan, Vijay Kumar BG, Samuel Schulter, Xiang Yu, Yun Fu, Manmohan Chandraker 期刊:CVPR 2023 DOI…

基于JavaWeb+MySQL实现口算题卡

爱 math 口算题卡 1. 总体要求 综合运用软件工程的思想,协同完成一个软件项目的开发,掌软件工程相关的技术和方法;组成小组进行选题,通过调研完成项目的需求分析,并详细说明小组成员的分工、项目的时间管理等方面。根…

Linux云计算 |【第五阶段】CLOUD-DAY8

主要内容: 掌握DaemonSet控制器、污点策略(NoSchedule、Noexecute)、Job / CronJob资源对象、掌握Service服务、服务名解析CluterIP(服务名自动发现)、(Nodeport、Headless)、Ingress控制器 一…

机器学习1_机器学习定义——MOOC

一、机器学习定义 定义一 1959年Arthur Samuel提出机器学习的定义: Machine Learning is Fields of study that gives computers the ability to learn without being explicitly programmed. 译文:机器学习是这样的领域,它赋予计算机学习的…

无人机维护保养、部件修理更换技术详解

无人机作为一种精密的航空设备,其维护保养和部件修理更换是确保飞行安全、延长使用寿命的重要环节。以下是对无人机维护保养、部件修理更换技术的详细解析: 一、无人机维护保养技术 1. 基础构造理解: 熟悉无人机的基本构造,包括…

HCIP--以太网交换安全(总实验)

实验背景 假如你是公司的网络管理员,为了提高公司网络安全性,你决定在接入交换机部署一些安全技术:端口隔、端口安全、DHCP snooping、IPSG。 实验拓扑图 实验的要求: 1.在R1、R2连接在GE0/0/1和GE0/0/2接口下,均划…

Qt中的Model与View 3:从样例出发理解QStringListModel和QListView

目录 Ui文件设计如下: 初始化窗口 这里,就是一经典的例子 你可以看到,我们的环境变量是一个经典的List列表,其中承载的就是我们的字符串。我们现在来仿照着搞一个: Ui文件设计如下: 我们下面来逐一演示用…

【VSCode】配置

安装插件 C vscode-icons gdb调试 https://www.bilibili.com/video/BV15U4y1x7b2/?spm_id_from333.999.0.0&vd_sourcedf0ce73d9b9b61e6d4771898f1441f7f https://www.bilibili.com/video/BV1pU4y1W74Z?spm_id_from333.788.recommend_more_video.-1&vd_sourcedf0…

【开发心得】筑梦上海:项目风云录(10)

目录 经典代码背后的故事 贵人相助与价值创造的跳槽哲学 从甲方现场到职场晋升 经典代码背后的故事 写完上一篇故事,本来想休息一段时间,再把思路整理一下。 但是感觉前面的故事里,涉及的故事多,涉及的技术和代码少,很多小伙伴私信希望能够多一些技术和代码的分享。 好…

编译原理第一次实验报告

源代码及附件:编译原理实验一源程序及附件资源-CSDN文库实验题目 实验要求 实验设计 前两部分指出了实验的宏观把控,为了具体实施实验,我们需要预先为实验做出如下设计: 本次实验我选取了C语言的一个子集进行设计词法分析器&…

Elastix-基于ITK的医学图像配准库

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 Elastix是什么? Elastix是一个广泛使用的医学图像配准库,旨在帮助研究人员和临床医生处理和分析医学影像…

清华双臂机器人扩散大模型RDT:先预训练后微调,支持语言、图像、动作多种输入

前言 通过上文介绍的GR2,我们看到了视频生成模型在机器人训练中的应用,无独有偶,和GR2差不多一个时期出来的清华RDT,其模型架构便基于视频生成架构DiT改造而成(当然,该清华团队其实也在DiT之前推出了U-ViT&#xff0c…

远程连接服务

目录 一、远程连接服务器简介 二、连接加密技术简介 三、认证阶段 四、ssh实验 1.修改ssh服务器的端口号 2.拒绝root账户远程登录 3.允许特定用户ssh登录,其他用户无法登录 4.ssh-keygen 一、远程连接服务器简介 概念: 远程连接服务器通过文字或…

YOLOv5之Common.py

文章目录 1.学习目的2.网络模型![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/67b8dbd00c9b4034ba370fc8b8a6031a.jpeg)3.common.py分析 1.学习目的 YOLOv5中最关键一个模型类 2.网络模型 3.common.py分析 # Ultralytics YOLOv5 🚀, AGPL-3.0 license…