基于Java(JSP)+MySQL实现深度学习的音乐推荐系统

基于深度学习的音乐推荐系统简述

本文简要介绍我做的基于深度学习的音乐推荐系统。主要从需求分析与设计实现的角度来进行介绍。

需求分析

基于深度学习的音乐推荐系统旨在以个性化音乐推荐模型为基础,使用B/S架构的形式实现。个性化推荐模型使用了 随机梯度下降(SGD)、 K近邻分类算法(KNN)、协同过滤等传统机器学习领域算法进行音乐推荐的,同时使用了类似于Word2vec的词袋模型和词向量模型来对歌词进行文本处理,构建了异构文本网络,来标识用户的歌曲偏好,然后在此基础上引入了一个Java方面深度学习库deepLearning4j来实现对音乐特征提取,对音乐进行标签化,分为古典、流行等类别。可参考来进行混合推荐的。

在本系统中,用户可以浏览音乐,还可以收藏音乐,同时还能为所喜爱的音乐点赞,同时还可以进行登录和注册。管理员除了可以实现普通用户所实现的功能外,还可以进行音乐、评论、用户的管理。系统通过隐式收集用户操作记录向用户推荐个性化的音乐,与此同时,该系统还具有排行榜、热歌推荐等普通音乐网站所具有的功能,其中排行榜分为日榜和月榜,热歌推荐是根据当天用户点击量最高的50首歌曲进行推荐给用户的。

|-------|---------------------------------------------------------------------------|
| 模块名 | 功能描述 |
| 用户管理 | 用户注册、登录,收藏、评论、点赞,浏览历史记录,搜索音乐,播放控制音乐,下载 |
| 管理员管理 | 对用户的查找、删除;对音乐的上传,对评论的查询、删除;对歌曲的查询、删除; |
| 个性化推荐 | 通过协同过滤推荐算法对用户进行操作数据的收集,从而对用户进行音乐推荐;通过用户播放歌曲的歌词作为分析数据结合深度学习领域相关算法对用户进行歌曲推荐 |
| 排行榜 | 分为日榜和月榜,分别为当日和当月播放量最高的歌曲推荐 |
| 热歌推荐 | 对播放量、用户评论量等数据进行综合分析,得出一些热门歌曲推荐给用户 |

概要设计

系统架构

本系统采用MVC模式作为架构,其中使用了MyBatis来作为数据持久化框架,进行数据库数据的映射。同时前端采用了JSP、JavaScript、CSS来进行开发,后端采用SSM框架来进行开发,该框架为当前企业中较为流行的一种框架。

系统总体设计图

数据库设计

数据库方面我主要设计了11个表,分别是歌曲收藏表、歌曲下载记录表、用户点赞表、音乐播放记录表、歌曲推荐表a、歌曲推荐表b、歌曲评论表、用户角色表、音乐详情表、用户信息表、用户角色表。下面是数据库关系图。

详细设计

所用技术

|---------|----------------------------------------------------|
| 开发 | 具体实现所用技术 |
| 数据库 | MYSQL、Navicat for MySql |
| 前端 | Bootstrap、jsp |
| 后端 | IDEA、SSM框架 |
| 个性化推荐模型 | 传统机器学习算法(KNN等)、词向量模型、java_tensorflow_music深度学习开源模型 |
| 需求、概要设计 | processOn、xmind |
| 架构 | b/s架构 |
| 设计模式 | mvc |
| 软件测试 | Junit、apache-jmeter-3.2 |
| 应用服务器 | tomcat7.0 |

具体模块设计

(1)用户注册模块

(2)用户登录模块

(3)管理员管理模块

(4)音乐播放模块

(5)歌曲排行榜模块

(6)个性化音乐推荐模块模块

相关推荐
点云SLAM2 小时前
PyTorch 中.backward() 详解使用
人工智能·pytorch·python·深度学习·算法·机器学习·机器人
only-qi2 小时前
146. LRU 缓存
java·算法·缓存
Learn Beyond Limits3 小时前
Transfer Learning|迁移学习
人工智能·python·深度学习·神经网络·机器学习·ai·吴恩达
程序员三明治3 小时前
三、神经网络
人工智能·深度学习·神经网络
且行志悠3 小时前
Mysql的使用
mysql
xuxie133 小时前
SpringBoot文件下载(多文件以zip形式,单文件格式不变)
java·spring boot·后端
白鹭3 小时前
MySQL源码部署(rhel7)
数据库·mysql
重生成为编程大王4 小时前
Java中的多态有什么用?
java·后端
666和7774 小时前
Struts2 工作总结
java·数据库
中草药z4 小时前
【Stream API】高效简化集合处理
java·前端·javascript·stream·parallelstream·并行流