首页 > 其他 > 详细

音乐推荐系统的软件设计方案

时间:2020-12-29 23:12:49      阅读:56      评论:0      收藏:0      [点我收藏+]

一 项目介绍

本系统旨在构建基于音乐特征值的个性化音乐推荐系统,通过提取音乐中的 DNA 特征进行聚类,生成音乐曲库,并采取协同过滤的方式记录积累用户的偏好,对其进行加权处理,向用户推荐个性化的音乐服务内容。

个性化音乐推荐系统主要解决两方面的问题:

  • 基于音乐的特征属性,设计一个音乐 DNA 库,发现音乐间的关联关系,为系统提供给个性化推荐提供支持。
  • 建立个性化音乐推荐引擎,采用协同过滤的方式为用户进行个性化音乐推荐,提升用户对产品的满意度。

二 设计模式

2.1 项目架构

本项目设计实现一个个性化音乐推荐系统, 经过慎重考虑最终决定做一个网站, 采用 B/S 模式,其中网页的设计中采用了 JSP 技术,在数据库的选择上,考虑到 MySQL 的可移植性较高,故选择 MySQL 数据库,系统本体选用 SpringMVC 架构。

技术分享图片

 

MVC 项目架构图

 

 

  • 模型(Model) 用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“ Model ”有对数据直接访问的权力,例如对数据库的访问。“Model”不依赖“View”和“Controller”,也就是说, Model 不关心它会被如何显示或是如何被操作。但是 Model 中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此 Model 的 View 必须事先在此 Model 上注册,从而,View 可以了解在数据 Model 上发生的改变。
  • 视图(View)能够实现数据有目的的显示(理论上,这不是必需的)。在 View 中一般没有程序上的逻辑。为了实现 View 上的刷新功能,View 需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。
  • 控制器(Controller)起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据 Model 上的改变。

 

2.2 系统功能结构

技术分享图片

 

系统功能结构图

 

2.3 分解视图

技术分享图片

 

 

 2.4 执行视图

 

 

 

 技术分享图片

 

 

 

 

 2.5 实现试图

技术分享图片

 技术分享图片

 

 

 三 数据库设计

3.1 user_library_song 表

列名 类型 长度 是否为空 说明
id int 20 id
song_id int 20 歌曲 id
album_id int 20 专辑 id
play_count int 11 播放量
add_time datetime   添加时间
delete_flag int 4 是否删除

 

3.2 song 表

 列名  类型  长度  是否为空  注释
 id  int  20  否  歌曲 id
 name  varchar  255  否  歌曲名
 artlist_name  varchar  255  否  演唱者
 album_name  varchar  255  是  专辑名称
 author  varchar  255  否  作者

 

3.3 album 表

列名 类型 长度 是否为空 注释
id int 20 id
name char 255 专辑名称
cover int 255 艺术家 id
artlist_id char 20 艺术家名称

 

3.4 topic_song 表

列名 类型 长度 是否为空 注释
id int 20 id
topic_id int 20 主题 id
song_id int 20 歌曲 id
description char 255 描述
song_play_count int 20 播放量

五 工作机制

用户登录系统之后,通过浏览相关歌曲或在开始页面添加歌曲口味,可以进行添加新的音乐和删除音乐等操作。

系统根据用户浏览痕迹(包括歌曲播放量、对歌曲的点赞、点踩、歌曲的评论等)推荐相关的音乐。

管理员主要是对歌曲和用户进行增删改查等操作。

音乐推荐系统的软件设计方案

原文:https://www.cnblogs.com/carlosliu/p/14204979.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!