个性化音乐推荐系统——需求分析

红拂与我奔 2021-12-25 20:45:59

个性化音乐推荐系统需求分析

 

1. 项目概述

随着互联网设备的普及及文化产业的蓬勃发展,从唱片、磁带、到如今的数字媒体,人们聆听音乐的方式一直在随着技术的发展而改变,各式各样的线上音乐系统也逐渐成为了人们聆听音乐的主流渠道,成为了代替唱片店的重要文化产业。

但由于人们版权意识的增加,资本介入,产业竞争等多种问题的出现,现存音乐系统的内卷现象严重,在自身资源素质并未得到良好解决的情况下,盲目拓展直播、购物、社交等功能,使应用本身臃肿、商业化。除此之外,众多音乐系统为盲目迎合听众,弱化专辑、歌手、风格的重要性,使歌曲本身分散、独立,在很大程度上削弱了其欣赏价值。对于其推荐功能,多数音乐软件推荐歌曲与商业相关,非常缺乏专业性

本系统目标设计一个界面简明易懂、专业性大于娱乐性的音乐系统,且具有以下功能:

(1)设置用户端和后台管理端,界面简洁大方,信息直观易懂,主次分明,功能按钮人性化。

(2)设置用户登录推荐、搜索、收藏等基本功能,功能少而精,满足用户基本需求的同时放大专辑音乐本身的欣赏价值。

(3)在推荐功能内,部署基于关联规则、内容、专业评分数据的音乐推荐算法,平衡热度、专业性、个性化。

2. 系统需求分析

音乐推荐系统有两个基本角色,一个是普通用户,另一个角色是系统管理员。

用户角色分析

首先,我们为普通用户提供了基本的登录、注册以及个人信息修改功能。除此之外,应该满足其搜索音乐、查看热门榜单、分类搜索歌曲、查看音乐详情、音乐评论以及收藏的需求。根据用户在系统中的行为,产生用户偏好数据库,由推荐引擎生成推荐数据。

对于用户模块,需要完成的功能如下:

  1. 登录与注册:实现基础的用户注册、用户登录等动作。 为了实现个性化推荐,需对不同用户的行为数据进行收集。用户在使用过程中产生的行为数据绑定与标识其的唯一ID。

  2. 个人信息管理:供用户修改诸如用户名、邮箱、出生年月、故乡、性别、现住地、听歌喜好等个人信息。

  3. 热门音乐榜单: 将音乐列表按播放量、受喜爱程度、购买量等不同维度产生榜单视图展示给用户,供用户选择。

  4. 音乐搜索:完成用户对相应乐曲的查找,可以选择模糊搜索(输入歌曲名的一部分对歌曲进行查找)或者分类搜索(根据曲风查找音乐)

  5. 查看音乐详情;点击歌曲海报或者歌曲名称,即可进入歌曲详情界面(播放,查看作者、曲风、音乐评论等)

  6. 歌曲留言与评论:用户可以对歌曲进行评论与查看其他用户对于该歌曲的评论

  7. 个性化音乐推荐:根据用户使用过程中产生的数据,采用标签和兴趣迁移的协同过滤推荐算法进行分析运算,生成相应的音乐推荐结果。

  8. 音乐收藏管理:用户在使用过程中可以收藏(喜爱)心仪的音乐,收藏的音乐会放到对应的收藏夹中,便于用户对其进行管理

管理员需要对两个方面的数据进行管理(完成基本的增删改查):用户数据和歌曲数据。

对于管理员模块,需要完成的功能如下:

  1. 歌曲管理:管理员可以对音乐资料库进行管理,可以实现歌曲的增加、删除、查找和信

    息修改的功能。

  2. 用户数据管理:管理员可以对用户数据管理可以实现用户信息的增加、删除、查找和信息修改的功能。

功能性需求分析

目标用户为线上的音乐用户,主要收集用户使用过程中所表现出的行为特征,通过对获取到的用户行为特征的数据进行分析,生成用户可能感兴趣的播放列表,方便用户探索自己感兴趣的音乐。本系统需要具备的功能如下:

  1. 推荐对象信息维护

    推存在于系统中的对象包括用户、歌手、歌曲等。这些信息既是推荐的依据,也是信息展示的重要数据来源。这些信息有些是在用户端产生的,例如用户的个人信息、用户的注册时间等,又或者是在管理员端产生的(歌曲信息等)。

  2. 用户自定义信息设置

    用户在使用该系统的过程中,可以根据自己的喜好收藏喜欢的音乐或者屏蔽不喜欢的音乐,并且可以对自己的收藏列表进行调整。根据用户设置的音乐偏好信息,本系统可以为其推荐感兴趣的歌曲,并且减少其不喜欢的歌曲出现在其播放列表中的频次。

  3. 用户行为管理

    这部分主要完成收集并存储用户的在线行为数据。用户在线行为指的是用户收听新的歌曲、跳歌或收藏歌曲等行为数据。把对应的数据保存到数据库中,对数据库中的信息进行分析可以得出得出用户的喜好。同时用户可随时查看自己的收听记录。

  4. 推荐产生

    本系统的核心功能。通过收集上述信息来建立用户——歌曲模型,挖掘出用户的偏好,以此寻求向用户推荐对象所具备的行为特征(标签),并为在线的音乐用户计算出其感兴趣的歌曲,最终为用户生成个性化的音乐推荐列表。

非功能性需求分析

  1. 准确性和安全性。确保系统相关数据能够完整、准确保存,系统的数据不会丢失和非法篡改,用户的信息能得到有效的安全防护,系统各个功能能够正常运行,能依据用户习惯合理推荐

  2. 稳定性。系统稳定性和兼容性良好,系统在不同环境下,能够稳定运行和推荐资源

  3. 扩展性。在系统运行和系统版本更新过程中,系统功能、系统数据会逐渐增加,导致系统负载增大,导致系统的性能降低等问题,系统需要具备可扩展性来为解决这些问题

  4. 及时性。系统需要依据用户信息设立推荐优先级,及时响应用户的推荐当推荐列表都不被用户接受时,系统能快速更行用户的推荐列表。

系统概要设计

将系统划分为用户管理、音乐管理和搜索和播放音乐模块等四个子模块。

  1. 用户管理模块 用户登录和注册的实现是这个部分主要的实现功能。对用户的权限进行设置、管理员可以对普通用户进行管理,普通用户只只能对其个人信息进行简易修改。等操作。

  2. 音乐管理模块 在这个模块中管理员可以执行对音乐信息的增删改查(歌手、发行时间、风格等)

  3. 用户-音乐交互管理模块 该模块的功能是将用户对音乐的操作记录下来(收藏、播放)来形成供推荐引擎决策的用户行为数据。

  4. 音乐评论管理

    该模块的功能是支持用户对音乐进行评论、删除自己的评论、查看和评论别人的评论等操作。

  5. 音乐搜索模块 该模块是支持用户对歌曲进行模糊搜索和分类搜索,使得用户可以更好地得到自己想要的结果。

  6. 音乐推荐模块 使用协调过滤算法分析用户的行为及个人信息,从而分析获取到的用户相似度和基因偏好,产生个性化推送给用户的推荐音乐列表。推荐的准确率是用户收听、收藏歌曲的数量呈正相关。

系统功能结构如图所示:

image.png

用例图

用户用例图

image.png

管理员用例图

image.png

系统模块需求分析

系统数据层需求

本系统需要收集部署三类数据:音乐数据、用户数据、用户-音乐交互数据,并在此数据基础上通过推荐算法处理获得第四类数据——推荐数据。这四类数据的采集获得方式如下:

(1)音乐数据:为通过爬虫程序爬取的pitchfork网站上的专辑数据,在预处理后保留专辑姓名、年代、音乐人、风格、封面、等关键信息后,存入mysql数据库中。

(2)用户数据:为根据系统需求设计得到的数据集合,在前端用户注册的过程中增加数据。

(3)用户-音乐交互数据:为根据系统需求设计后,在前端用户对专辑进行操作后中获得的数据集。

(4)推荐数据:为推荐算法根据数据库内已有的用户数据、音乐数据、用户-音乐交互数据,通过计算获得。

以上数据的交互信息如图:

image.png

系统界面层需求

界面层作为底层与用户直接交互的媒介,我们在设计的时候需要充分考虑用户的使用体验,为规避前文中提到的系统冗余、臃肿的情况,本系统在界面设计上秉持简介大方的准则,色彩统一,字体舒适。同时还应该充分考虑系统的实用性,在按钮形状、位置的设计上要人性化,充分考虑用户在使用本系统时会遇到的困扰,优化用户体验。

系统算法实体需求

推荐算法作为本系统需实现的首要功能,我们不仅要完成基于关联规则的推荐也需要考虑到关联规则的局限性,以及我们设计本系统的初衷。确定本系统推荐功能实现中,其算法需求如下:

(1)实现基于关联规则的热度推荐:关联规则是在已有数据集上通过算法挖掘数据,得到数据实体之间的关联关系的算法,在本系统内我们需要通过设计算法,分析系统内已有的用户-音乐交互数据、音乐数据等,得到用户行为数据的关联规则,并以此结果作为推荐的标准。

(2)实现基于内容的个性化推荐:由于关联规则是基于已有数据集的数据挖掘方法,其冷启动问题就成为了关联规则算法的弊端,这里引入基于内容的推荐算法在用户还未产生或产生较少行为数据导致无法获取足够推荐结果时,使用基于内容的推荐算法以弥补。

(3)实现基于专业评分数据的专业推荐:为避免出现前文提到的商业化、个性化过重导致的推荐音乐艺术性、可欣赏性不佳的情况,这里引入了专业乐评网站的评分数据,为我们的推荐结果把关,特别是在基于内容的推荐中,加入专业评分数据作为依据可以获得更优质的推荐。

具体算法实体内容如图:

image.png

开发技术栈

前端技术栈

技术

类型

Vue

前端框架

Vue-Router

前端路由

Axios

HTTP库

Vuex

前端状态管理

Element-ui

Vue组件

后端技术栈

技术

类型

Springboot

前端框架

Mybatis-Starter

ORM框架

Maven

项目构建

开发工具

本系统的前端开发使用Visual Studio Code,测试浏览器使用谷歌浏览器,后端开发使用InteliJ IDEA,数据库方面使用MySQL,并使用Navicat对其进行管理操作。

系统架构设计以及设计模式

根据系统需求分析,可以设计得到系统的结构框架,如下图所示:

本系统设计过程采用前后端分离的模式开发,前后端交互采用RESTFul API规范,通过Http以Json格式请求数据,前端后端分开设计,互不干扰,耦合性低。底层数据库使用MySQL,当前系统的体量较小,产生的业务活动数据较小,可以选择和后端都部署在同一服务器上。用过滤器设计模式,进行权限检查,增加系统安全性。使用单例模式封装数据库,使用适配器模式封装接口。项目整体采用中介者模式

本系统的开发中用到了VUE+ spring boot+ Mybatis的J2E框架实现系统的MVVM模式。每一应用层都完成相应的任务,各层之间既独立又统一。为了实现音乐推荐系统,我们在每层采用不同的子框架,表现层用VUE实现;业务层使用 Springboot;而 Mybatis则应用于持久层(数据获取层采用python);贯穿于前三层的是域对象层。通过这些框架层次搭建的系统有着松散耦合的特征,使得用户在使用系统时,可以完全忽略底层技术。

 

 


作者:555

...全文
7320 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
红拂与我奔 2022-06-06
  • 打赏
  • 举报
回复
这种项目GitHub gitee上多得是,请自行查找。再来要源码拉黑
qq_51481265 2022-06-06
  • 打赏
  • 举报
回复

您好,可以分享一下源码吗

qq_44803630 2022-05-26
  • 打赏
  • 举报
回复

可以分享一下源码吗 1836191213@qq.com

  • 打赏
  • 举报
回复

能分享一下源码嘛??

qq_44766185 2022-04-10
  • 打赏
  • 举报
回复

您好,可以分享一下源码么 604320314@qq.com

luckyiiiii 2022-03-02
  • 打赏
  • 举报
回复
有源码吗
红拂与我奔 2022-03-15
  • 举报
回复
@luckyiiiii 当然有呢
luckyiiiii 2022-03-30
  • 举报
回复
@红拂与我奔 怎么联系
Dolorespsq 2022-04-03
  • 举报
回复
@luckyiiiii 您好,可以看看源码吗
1条回复
《MATLAB 神经网络43个案例分析》目录 第1章 BP神经网络的数据分类——语音特征信号分类 第2章 BP神经网络的非线性系统建模——非线性函数拟合 第3章 遗传算法优化BP神经网络——非线性函数拟合 第4章 神经网络遗传算法函数极值寻优——非线性函数极值寻优 第5章 基于BP_Adaboost的强分类器设计——公司财务预警建模 第6章 PID神经元网络解耦控制算法——多变量系统控制 第7章 RBF网络的回归--非线性函数回归的实现 第8章 GRNN网络的预测----基于广义回归神经网络的货运量预测 第9章 离散Hopfield神经网络的联想记忆——数字识别 第10章 离散Hopfield神经网络的分类——高校科研能力评价 第11章 连续Hopfield神经网络的优化——旅行商问题优化计算 第12章 初始SVM分类与回归 第13章 LIBSVM参数实例详解 第14章 基于SVM的数据分类预测——意大利葡萄酒种类识别 第15章 SVM的参数优化——如何更好的提升分类器的性能 第16章 基于SVM的回归预测分析——上证指数开盘指数预测. 第17章 基于SVM的信息粒化时序回归预测——上证指数开盘指数变化趋势和变化空间预测 第18章 基于SVM的图像分割-真彩色图像分割 第19章 基于SVM的手写字体识别 第20章 LIBSVM-FarutoUltimate工具箱及GUI版本介绍与使用 第21章 自组织竞争网络在模式分类中的应用—患者癌症发病预测 第22章 SOM神经网络的数据分类--柴油机故障诊断 第23章 Elman神经网络的数据预测----电力负荷预测模型研究 第24章 概率神经网络的分类预测--基于PNN的变压器故障诊断 第25章 基于MIV的神经网络变量筛选----基于BP神经网络的变量筛选 第26章 LVQ神经网络的分类——乳腺肿瘤诊断 第27章 LVQ神经网络的预测——人脸朝向识别 第28章 决策树分类器的应用研究——乳腺癌诊断 第29章 极限学习机在回归拟合及分类问题中的应用研究——对比实验 第30章 基于随机森林思想的组合分类器设计——乳腺癌诊断 第31章 思维进化算法优化BP神经网络——非线性函数拟合 第32章 小波神经网络的时间序列预测——短时交通流量预测 第33章 模糊神经网络的预测算法——嘉陵江水质评价 第34章 广义神经网络的聚类算法——网络入侵聚类 第35章 粒子群优化算法的寻优算法——非线性函数极值寻优 第36章 遗传算法优化计算——建模自变量降维 第37章 基于灰色神经网络的预测算法研究——订单需求预测 第38章 基于Kohonen网络的聚类算法——网络入侵聚类 第39章 神经网络GUI的实现——基于GUI的神经网络拟合、模式识别、聚类 第40章 动态神经网络时间序列预测研究——基于MATLAB的NARX实现 第41章 定制神经网络的实现——神经网络的个性化建模与仿真 第42章 并行运算与神经网络——基于CPU/GPU的并行神经网络运算 第43章 神经网络高效编程技巧——基于MATLAB R2012b新版本特性的探讨

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧