基于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 scrapy


class 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:
                # 构建完整的详情页 URL
                detail_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"]/text
    def 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 item

    def closed(self, reason):
        # 当爬虫关闭时,保存数据到 Excel 文件
        df = pd.DataFrame(self.data)
        df.to_excel('zhongyaofang_data.xlsx', index=False)

爬取截图

在这里插入图片描述

爬取后的数据

在这里插入图片描述

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

01.如何用DDD重构老项目

学习资料来源:DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 动机DDD与重构实践重构? 重写从一开始就采用DDD重构步骤1. 添加领域模块2.分离出有价值的代码3.迁移到领域模块4.重复2,3 动机 …

WPF+MVVM案例实战(十八)- 自定义字体图标按钮的封装与实现(ABD类)

文章目录 1、案例效果1、按钮分类2、ABD类按钮实现描述1.文件创建与代码实现2、样式引用与控件封装3、按钮案例演示1、页面实现与文件创建2、运行效果如下3、总结4、源代码获取1、案例效果 1、按钮分类 在WPF开发中,最常见的就是按钮的使用,这里我们总结以下大概的按钮种类,…

Python 5个数据容器

列表(list) 列表的定义 定义空列表: 变量名 [] 或 变量名 list() 定义变量: 变量名 [元素1,元素2,元素3,... ] 取出列表元素 列表 [下标索引] 从前向后,从0开始&#xff…

使用语言模型进行文本摘要的五个级别(llm)

视频链接:5 Levels Of LLM Summarizing: Novice to Expert

Qt5.15.x源码编译

介绍: QT5.15以上版本已经不提供现成的集成软件了。所以当我们项目中需要用到5.15以上的版本时,只能自己对源码进行编译来生成一个环境了(Qt提供了在线升级,但是在线升级中没有MinGW版本了) 背景: 我们想要…

Ubuntu 系统、Docker配置、Docker的常用软件配置(下)

前言 书接上文,现在操作系统已经有了,作为程序的载体Docker也安装配置好了,接下来我们需要让Docker发挥它的法力了。 Docker常用软件的安装 1.Redis 缓存安装 1.1 下载 docker pull redis:7.4.1 #可改为自己需要的版本 1.2 创建本地目录存储…

Redis全系列学习基础篇之位图(bitmap)常用命令的解析

文章目录 描述常用命令及解析常用命令解析 应用场景统计不确定时间周期内用户登录情况思路分析实现 统计某一特定时间内活跃用户(登录一次即算活跃)的数量思路分析与实现 描述 bitmap是redis封装的用于针对位(bit)的操作,其特点是计算效率高,占用空间少,常被用来统计…

面试题:JVM(四)

new对象流程?(龙湖地产) 对象创建方法,对象的内存分配。(360安全) 1. 对象实例化 创建对象的方式有几种? 创建对象的步骤 指针碰撞:以指针为分界线,一边是已连续使用的…

手写实现call,apply,和bind方法

手写实现call,apply和bind方法 call,apply和bind方法均是改变this指向的硬绑定方法,要想手写实现此三方法,都要用到一个知识点,即对象调用函数时,this会指向这个对象(谁调用this就指向谁&#…

【python ASR】win11-从0到1使用funasr实现本地离线音频转文本

文章目录 前言一、前提条件安装环境Python 安装安装依赖,使用工业预训练模型最后安装 - torch1. 安装前查看显卡支持的最高CUDA的版本,以便下载torch 对应的版本的安装包。torch 中的CUDA版本要低于显卡最高的CUDA版本。2. 前往网站下载[Pytorch](https://pytorch.o…

AI驱动无人驾驶:安全与效率能否兼得?

内容概要 如今,人工智能正以其神奇的魔力驱动着无人驾驶的浪潮,带来了无数令人兴奋的可能性。这一领域的最新动态显示,AI技术在车辆的决策过程和实时数据分析中发挥着重要作用,帮助车辆更聪明地应对复杂的交通环境。通过实时监测…

从头开始学PHP之面向对象

首先介绍下最近情况,因为最近入职了且通勤距离较远,导致精力不够了,而且我发现,人一旦上了班,下班之后就不想再进行任何脑力劳动了(对大部分牛马来说,精英除外)。 话不多说进入今天的…

Systemd:现代 Linux 系统服务管理的核心

Systemd:现代 Linux 系统服务管理的核心 引言 Systemd 是一种现代的系统和服务管理器,用于在 Linux 系统启动时初始化用户空间,并通过服务管理和资源控制实现系统的自动化管理。自发布以来,Systemd 已逐渐取代传统的 SysVinit 和…

Linux初阶——线程(Part3):POSIX 信号量 CP 模型变体

一、什么是 POSIX 信号量 信号量本质就是一个统计资源数量的计数器。​​​​​​​ 1、PV 操作 pv操作就是一种让信号量变化的操作。其中 P 操作可以让信号量减 1(如果信号量大于 0),V 操作可以让信号量加 1. 2、信号量类型——sem_t 3…

《女巫攻击:潜伏在网络背后的隐秘威胁与防御策略》

目录 引言 一、基本概念 二、攻击机制 三、Sybil攻击类型 1、直接通信 2、间接通信 3、伪造身份 4、盗用身份 5、同时攻击 6、非同时攻击 四、攻击影响 五、防御措施 总结 引言 随着区块链技术和去中心化网络的迅速发展,网络安全问题也愈发引起关注。其…

Mybatis-plus入门教程

注意版本 jdk 18 springboot 3.1.0 mybatis 3.0.3 mybatisplus 3.5.5 快速入门 构建模块 导入依赖 <properties><maven.compiler.source>18</maven.compiler.source><maven.compiler.target>18</maven.compiler.target><project.build…

插件式模块化软件框架的思想图解一(框架篇)

插件式模块化软件框架的思想图解一&#xff08;框架篇&#xff09; Chapter1 插件式模块化软件框架的思想图解一&#xff08;框架篇&#xff09;一、前述二、模块化原则1、高度独立2、接口规范 三、从管理需求出发四、框架雏形五、接口引用规定六、子模块与代码模板七、把优秀当…

用ChatGPT-o1搞定论文写作!完整的8步指南

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 使用ChatGPT辅助论文写作可以显著提升效率和质量&#xff0c;关键在于正确的方法和对学术规范的遵守。以下将详细说明完整步骤&#xff0c;并提供ChatGPT的具体操作指南。 1. 确定研究…

LabVIEW继电器视觉检测系统

随着制造业的自动化与高精度要求不断提升&#xff0c;传统的人工检测方法逐渐难以满足高效和高精度的需求。特别是在航空航天、医疗设备等高端领域&#xff0c;密封继电器推动杆部件的质量直接影响到设备的性能与可靠性。LabVIEW自动化视觉检测系统&#xff0c;能对推动杆部件进…

SYN590RH

一般描述 SYN590RH是SYNOXO全新开发设计的一款宽电压范围&#xff0c;低功耗&#xff0c;高性能&#xff0c;无需外置AGC电容&#xff0c;灵敏度达到典型-110 dBm,400MHz~450MHz频率范围应用的单芯片ASK或00 K射频接收器。 SYN590RH是一款典型的即插即用型单片高…