vue+neo4j+flask 音乐知识图谱推荐系统

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

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

关注B站,有好处!

编号: F027

架构: vue+flask+neo4j+mysql

亮点:协同过滤推荐算法+知识图谱可视化

支持爬取音乐数据,数据超过3万条,知识图谱节点几万个

架构说明

系统架构主要分为以下几个部分:用户前端后端服务数据库数据爬取与处理。各部分通过协调工作,实现数据的采集、存储、处理以及展示。具体如下:

1. 用户前端

用户通过浏览器访问系统,前端采用了基于 Vue.js 的技术栈来构建。

  • 浏览器:作为用户与系统交互的媒介,用户通过浏览器进行各种操作,如浏览图书、获取推荐等。
  • Vue 前端:使用 Vue.js 框架搭建前端界面,包含 HTML、CSS、JavaScript,以及 Vuex(用于状态管理),vue-router(用于路由管理),和 Echarts(用于数据可视化)等组件。前端向后端发送请求并接收响应,展示处理后的数据。

2. 后端服务

后端服务采用 Flask 框架,负责处理前端请求,执行业务逻辑,并与数据库进行交互。

  • Flask 后端:使用 Python 编写,借助 Flask 框架处理 HTTP 请求。通过 SQLAlchemy 与 MySQL 进行交互,通过 py2neo 与 Neo4j 进行交互。后端主要负责业务逻辑处理、 数据查询、数据分析以及推荐算法的实现。

3. 数据库

系统使用了两种数据库:关系型数据库 MySQL 和图数据库 Neo4j。

  • MySQL:存储从网络爬取的基本数据。数据爬取程序从外部数据源获取数据,并将其存储在 MySQL 中。MySQL 主要用于存储和管理结构化数据。
  • Neo4j:存储图谱数据,特别是歌手、歌曲及其关系。通过利用 py2neo 库将 MySQL 中的数据结构化为图节点和关系,再通过图谱生成程序(可能是一个 Python 脚本)将其导入到 Neo4j 中。

4. 数据爬取与处理

数据通过爬虫从外部数据源获取,并存储在 MySQL 数据库中,然后将数据转换为图结构并存储在 Neo4j 中。

  • 爬虫:实现数据采集,从网络数据源抓取相关信息。爬取的数据首先存储在 MySQL 数据库中。
  • 图谱生成程序:利用 py2neo 将爬取到的结构化数据(如歌曲、歌手,以及它们之间的关系)从 MySQL 导入到 Neo4j 中。通过构建图谱数据,使得后端能够进行复杂的图查询和推荐计算。

工作流程

  1. 数据爬取:爬虫程序从外部数据源抓取数据并存储到 MySQL 数据库中。
  2. 数据处理与导入:图谱生成程序将 MySQL 中的数据转换为图结构并导入到 Neo4j 中,利用 py2neo 与 Neo4j 交互。
  3. 前后端交互
    • 用户通过浏览器访问系统,前端用 Vue.js 构建,提供友好的用户界面和交互。
    • 前端向 Flask 后端发送请求,获取歌曲信息或推荐歌曲。
  4. 推荐算法:后端在接收请求后,利用 Neo4j 图数据库中的数据和关系进行处理(如推荐计算),并使用 py2neo 库与 Neo4j 交互获取数据结果。
  5. 数据返回与展示:后端将计算结果返回给前端进行展示,通过 Vue.js 的图表库(如 Echarts)进行数据可视化,让用户得到直观的推荐结果和分析信息。

小结

这套系统通过整合爬虫、关系型数据库、图数据库,以及前后端的协调配合,实现了数据的高效采集、存储、处理、推荐和展示。从用户体验的角度,系统能够提供高度个性化的推荐,并通过图形化的方式呈现数据分析结果。

功能介绍

0 图谱构建

利用python读取数据并且构建图谱到neo4j中

1 系统主页,统计页面

动态统计卡片

2 知识图谱

支持可视化

支持模糊搜索,比如搜索特定关键词【林俊杰】

3 推荐算法

没有登录无法推荐
两种协同过滤推荐算法推荐

第一种推荐算法

第二种推荐算法

点击可以播放可以播放歌曲

4 可视化分析

分为4个页面

歌手分析

专辑、热评分析等

歌词词云分析

评论词云分析

5 数据查询

数据关键词可以进行歌曲的查询:

6 登录与注册

支持登录与注册

相关推荐
冻咸鱼5 小时前
MySQL的配置
mysql·配置
闲蛋小超人笑嘻嘻6 小时前
树形结构渲染 + 选择(Vue3 + ElementPlus)
前端·javascript·vue.js
勤源科技6 小时前
运维知识图谱的构建与应用
运维·人工智能·知识图谱
焚 城7 小时前
UniApp 实现双语功能
javascript·vue.js·uni-app
虚行7 小时前
Mysql 数据同步中间件 对比
数据库·mysql·中间件
奥尔特星云大使7 小时前
mysql读写分离中间件Atlas安装部署及使用
数据库·mysql·中间件·读写分离·atlas
会写代码的饭桶7 小时前
Jenkins 实现 Vue 项目自动化构建与远程服务器部署
vue.js·自动化·jenkins
被巨款砸中7 小时前
前端 20 个零依赖浏览器原生 API 实战清单
前端·javascript·vue.js·web
牛马baby7 小时前
【mysql】in 用到索引了吗?
数据库·mysql·in
-Xie-8 小时前
Mysql杂志(三十)——索引失效情况
数据库·mysql