需求设计
一款好的音乐推荐系统其目的是为用户进行合理的音乐推荐,普通的用户在登录到系统之后,能够通过搜索的方式获取与输入内容相关的音乐推荐,而以管理员登录到系统之后,则可以进行徐昂管的数据管理等内容操作。此次的需求主要有以下的一些方面:
(1)用户的登录过程实现,要实现为用户的个性化推荐,需要以登录的方式来方便用户使用该系统,通过系统的登录来实现搜索和推荐的功能实现;
(2)对音乐的标签设定,通过给音乐添加标签的方式来方便同类型的音乐推荐的功能实现;
(3)歌曲的推荐功能,通过用户输入歌名或者是关键词来展示与歌名和关键词相似度高的歌曲的推荐,形成歌曲的推荐;
(4)在歌曲的推荐中,通过系统的推荐算法来形成歌曲的推荐排名,从而向用户推荐相关性高的前十大歌曲。
系统的整体设计
本次的设计中,通过三层架构的方式来进行系统的整体开发,通过三层架构的方式开发的目的是降低音乐推荐系统中所存在的耦合情况,并且能够更好的实现扩展能力的提升。本次的架构通过表示层的开发来打造音乐推荐系统的服务界面,在服务层的设计上主要集中在数据的服务设计,通过数据的交互设计来将数据信息存储在数据库中。
整体的设计和推荐过程实现的步骤如下:
- 第一步,通过对用户的历史行为数据进行筛选,构建出一个标准的能够反映出用户和音乐之间的关系,形成一个矩阵,并且能够通过隐语的模型设计来完成用户的偏好特征以及音乐的偏好特征的关系表象;
- 第二步,通过对原始音乐进行标签的划定,来提取音乐的特征;
- 第三步,通过卷积神经模型来进行进行以频谱图为基础的网络模型的设计,通过KNN模型的加入来实现机器的深度学习以及训练,从而能够输出模型的基本真值;
- 第四步,在用户进行搜索的过程中,通过KNNbaseline来进行兴趣度的排列,从而进行特征的准确预测,实现相似度高的歌曲排名,为用户提供排名前十的相似歌曲推荐。
整体设计的模块图如下所示:
数据库的设计
数据库的设计上首先是对数据库E-R模型的设计,此次设计的E-R模型图有以下一些方面:
(1)用户E-R模型:
(2)推荐E-R模型:
(3)系统管理员E-R模型
本次所设计的数据库表格主要有以下的一些内容:
(1)歌曲信息表:
(2)推荐歌曲表:
系统的实现
系统的首页
此次设计的深度学习的音乐推荐系统的首页展示如下:
音乐播放界面的实现
当点击一首歌之后,可以进入到音乐的播放界面中,在该界面中能够看到有歌名、作者、演唱者、流派以及歌词等内容,并且可以进行歌曲下载,点评以及收藏。如下所示:
音乐推荐功能的实现
在音乐推荐功能的使用中,在文本框中通过输入歌名,点击提交会推荐与之相关的一些歌曲,如下图所示:
后台管理系统的实现
在后台的管理界面中,管理员能够对网站内的歌曲信息进行相应的管理,如下图所示:
获取源码
源码经过测试验证,功能可用