基于用户的协同过滤个性化音乐推荐系统

摘    要

互联网发展到如今已经完完全全的改变了的生活方式,融入了日常生活,包括交流,出行,消费,娱乐等。与此同时,音乐数据也在与日俱增的变化着。用户在访问一个音乐网站时,如何能快速的找到自己想要享受的歌曲呢?个性化音乐推荐系统可以做到。

课题做了个性化推荐系统,后端使用个性化推荐算法构造,前端使用spring+ssm框架搭建了个性化音乐推荐系统。系统数据库使用了关系型数据库MySQL和大数据数据库。前端收集过用户行为数据后传到后端使用基于用户的协同过滤算法来推荐出用户可能喜欢的音乐。设计主要完成了从网易云音乐门户网站上爬取数据(音乐信息,歌手信息等),并在获取数据后对数据进行清洗过滤等操作后保证了数据的有效性,将爬取到的六千多条数据保存到数据库后,采用基于用户的协同过滤算法推荐用户可能喜欢的音乐。

人们的需求随着数据量的不断增大在不断的增加,而且人们对音乐的追求也随着也随着这些不断的增多。个性化推荐系统的产生顺从了时代的发展,在不远的将来,个性化推荐系统必能大放异彩。

关键词:音乐推荐;基于用户的协同过滤;数据爬取;数据处理;推荐系统。

Personalized music recommendation system

Abstract

The development of the Internet has now completely changed the way of life, integrated into daily life, including communication, travel, consumption, entertainment and so on. At the same time, music data is changing day by day. When users visit a music website, how can they quickly find the song they want to enjoy? Personalized music recommendation system can do it.

The subject made a personalized recommendation system, the back-end was constructed using a personalized recommendation algorithm, and the front-end used the spring+ssm framework to build a personalized music recommendation system. The system database uses the relational database MySQL and the big data database. The front-end collects user behavior data and transmits it to the back-end to use the user-based collaborative filtering algorithm to recommend music that the user may like. The design mainly completed the crawling of data (music information, singer information, etc.) from the Netease cloud music portal website, and after the data was obtained, the data was cleaned and filtered to ensure the validity of the data. After multiple pieces of data are saved to the database, a user-based collaborative filtering algorithm is used to recommend music that the user may like.

People's needs are increasing with the increasing amount of data, and people's pursuit of music is also increasing with these. The generation of personalized recommendation system is in line with the development of the times. In the near future, the personalized recommendation system will definitely shine.

Keywords: music recommendation; user-based collaborative filtering; data crawling; data processing; recommendation system.

目录

引言 - 1 -

第1章 概述 - 2 -

1.1 研究背景 - 2 -

1.2 研究现状 - 2 -

1.3 发展趋势 - 2 -

第2章 相关技术介绍 - 4 -

2.1 大数据环境 - 4 -

2.2 数据获取与处理 - 4 -

2.3 前端 - 5 -

第3章 数据采集 - 6 -

3.1 数据源确定 - 6 -

3.2 爬虫数据库设计 - 6 -

3.3 数据爬取 - 7 -

第4章 系统分析 - 13 -

4.1 业务分析 - 13 -

4.2  系统功能分析 - 13 -

4.3 系统可行性分析 - 14 -

4.4 数据字典 - 14 -

第5章 系统设计 - 18 -

5.1 系统总体模块结构设计 - 18 -

5.2 局部模块设计 - 18 -

5.3 系统角色功能设计 - 23 -

5.4 推荐系统数据库设计 - 23 -

5.5 大数据平台搭建设计 - 27 -

5.6 推荐算法设计 - 30 -

第6章 系统实现 - 35 -

6.1 用户界面 - 35 -

6.2 管理员界面 - 40 -

结论与展望 - 44 -

致谢 - 45 -

参考文献 - 46 -

插图清单

图3-1 QQ音乐robots协议 - 7 -

图3-2 网易云音乐robots协议 - 7 -

图3-3 浏览器cookie信息 - 8 -

图3-4程序中header内的信息 - 8 -

图3-5 网易云音乐歌手标签 - 8 -

图3-6 网页处理代码 - 9 -

图3-7 数据保存在mysql中的截图 - 9 -

图3-8 网页中歌手专辑标签 - 10 -

图3-9 歌手专辑信息保存在mysql中的截图 - 10 -

图3-10 网页中专辑内歌曲标签截图 - 11 -

图3-11 歌曲信息保存至MySQL中的截图 - 11 -

图4-1 业务流程图 - 13 -

图5-1 系统总体模块设计图 - 18 -

图5-2 登录注册模块图 - 19 -

图5-3 热门推荐模块图 - 19 -

图5-4 新歌上架模块图 - 20 -

图5-5 个性化音乐推荐模块图 - 20 -

图5-6 用户中心模块图 - 21 -

图5-7 音乐管理模块图 - 21 -

图5-8 用户管理模块图 - 22 -

图5-9 评论管理模块图 - 22 -

图5-10 角色用例图 - 23 -

图5-11 用户实体属性图 - 23 -

图5-12 管理员实体属性图 - 24 -

图5-13 歌曲实体属性图 - 24 -

图5-14 歌曲上传实体属性图 - 25 -

图5-15 个性化音乐推荐系统实体属性图 - 25 -

图5-16 Java配置 - 27 -

图5-17 Java环境检验 - 27 -

图5-18 Javac环境检验 - 28 -

图5-19 core-site.xml配置 - 28 -

图5-20 Hdfs-core.xml配置 - 29 -

图5-21 Hadoop安装检验 - 29 -

图5-22 Spark测试 - 30 -

图5-23 听众行为 - 30 -

图5-24 生成用户音乐评分表 - 31 -

图5-25 用户兴趣相似度计算 - 32 -

图5-26 设置堆存储相似度最高的用户id - 32 -

图5-27 计算用户对物品的相似度 - 33 -

图5-28 设置音乐推荐算法开启时间 - 33 -

图5-29 开启冷启动 - 34 -

图6-1 系统主页 - 36 -

图6-2 用户登录 - 36 -

图6-3 用户注册 - 37 -

图6-4 网易邮箱SMTP设置 - 37 -

图6-5 程序中邮件发送设置 - 38 -

图6-6 用户登录界面 - 38 -

图6-7 热门推荐 - 39 -

图6-8 歌曲详情 - 39 -

图6-9 音乐评论界面 - 40 -

图6-10 个性化推荐 - 40 -

图6-11 用户的音乐收藏记录 - 41 -

图6-12 用户的音乐最近播放记录 - 41 -

图6-13 管理员登录界面 - 42 -

图6-14 音乐管理界面 - 42 -

图6-15 添加音乐 - 43 -

图6-16 评论管理 - 43 -

图6-17 用户管理 - 44 -

表格清单

表3-1 歌手信息表 - 6 -

表3-2 歌手的专辑信息表 - 6 -

表3-3 歌手专辑内的歌曲信息表 - 6 -

表5- 1音乐信息表song - 26 -

表5-2 用户信息表user - 26 -

表5-3 用户角色表userrole - 26 -

表5-4 系统角色表role - 26 -

表5-5 用户喜欢表 liking - 26 -

表5-6 用户播放表 play - 26 -

表5-7 用户下载表 download - 26 -

表5-8 用户收藏表 liking - 27 -

表5-9 用户评论表 review - 27 -

基于用户的协同过滤个性化音乐推荐系统毕业设计相关推荐

  1. 基于用户的协同过滤来构建推荐系统(附代码)

    导读:协同过滤技术在推荐系统中应用的比较广泛,它是一个快速发展的研究领域.它比较常用的两种方法是基于内存 ( Memory-Based ) 和基于模型 ( Model-Based ). 基于内存:主要 ...

  2. 基于用户的协同过滤算法详解

    0. 前言 基于领域的推荐算法是推荐系统中最基本的算法,此类算法不仅在学术界得到了深入研究,而且在工业界也得到了广泛地应用.基于领域的推荐算法主要分为两大类:一类是基于用户的协同过滤算法(User B ...

  3. Java+Jsp+Mysql实现简单在线图书推荐系统 个性化图书推荐系 java实现基于用户的协同过滤推荐算法 源代码下载 算法实现 Spring+Struts+Hibernate(SSH)开发框架

    Java+Jsp+Mysql实现简单在线图书推荐系统 个性化图书推荐系统(基于用户的协同过滤推荐算法) 一.项目简介 1.开发工具和实现技术 MyEclipse10,jdk1.7,mysql5.5,t ...

  4. 如何使用Java+SSM(Spring+SpringMVC+Mybatis)开发个性化新闻推荐系统 在线新闻推荐系统 基于用户项目协同过滤、内容、聚类、关联规则推荐算法实现WebNewsRSMEx

    如何使用Java+SSM(Spring+SpringMVC+Mybatis)开发个性化新闻推荐系统 在线新闻推荐系统 基于用户项目协同过滤.内容.聚类.关联规则推荐算法实现WebNewsRSMEx 一 ...

  5. mysql数据推荐算法_Java+Mysql实现简单在线电影、音乐、图书推荐系统 基于用户的协同过滤推荐算法实现 源代码下载...

    # Java+Mysql实现简单在线电影.音乐.图书等推荐系统(基于用户的协同过滤推荐算法) 一.项目简介 1.开发工具和实现技术 MyEclipse10,jdk1.7,mysql5.5,tomca ...

  6. 推荐系统--基于用户的协同过滤算法

    1.         概述 和搜索引擎一样,推荐系统是为了帮助人们更快速的获得对自己有用的信息. 和搜索引擎不同,推荐系统是人们被动的获取,由系统根据用户行为或其他的信息推荐给用户的,儿搜索引擎是用户 ...

  7. 【推荐系统】基于用户的协同过滤算法

    基于用户的协同过滤算法 基础算法 在一个在线个性化推荐系统中,当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的.而用户A没有听说过的物品推荐给A.这种方法称为基于 ...

  8. 【推荐系统】{1} —— 基于用户的协同过滤算法

    协同过滤(英语:Collaborative Filtering,简称CF),简单来说是利用某兴趣相投.拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人透过合作的机制给予信息相当程度的回应(如评分) ...

  9. 推荐系统实践(一)----基于用户的协同过滤算法(UserCF)

      随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载的时代.在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:如何从大量信息中找到自己感兴趣的信息是一件非常困难的事情,这 ...

  10. Python实现基于用户的协同过滤推荐算法构建电影推荐系统

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 基于用户的协同过滤推荐(User-based CF)的原理假设: ...

最新文章

  1. 数组拷贝问题,实际上是指针指向发生变化
  2. Html5 Video 节点
  3. 【转】Asp.net的生命周期应用之IHttpModule和IHttpHandler
  4. 使用 Syslog 连接 Sentinel
  5. RabbitMq 发布订阅 Publish/Subscribe fanout/direct
  6. java的接口语法_JAVA接口的基本语法
  7. 2021-2025年中国电动门锁行业市场供需与战略研究报告
  8. PHP文件操作【其一】文件路径
  9. python 移动文件,将一个文件夹里面的文件移动到另一个文件夹
  10. 写c++好的软件_族谱家谱制作怎么写?专业的家谱族谱编辑制作软件哪个好
  11. 计算机可以关闭家庭组,win10系统禁用(关闭)家庭组功能的具体方法
  12. 安卓APP的字体大小设置不受系统字体大小的影响
  13. OpenCV——将图片转换成视频
  14. [Math]常见矩阵分解及复杂度 Cholesky QR LU
  15. 被掰弯的线性函数,海王一样的logstic
  16. 我的开源项目从0到1024的过程
  17. linux查看电源状态命令,Linux下查看电池损耗等信息
  18. 2022年下半年软件评测师考试真题一些回忆
  19. argc和argv的定义和用法
  20. abp vnext没有生成动态代理js代码

热门文章

  1. node.js 知识分享网站源码【毕业设计】
  2. 找了好久的数据库mysql中文乱码问题终于解决
  3. SQL Server数据库入门
  4. python爬取音乐源码_Python爬虫教程,爬取网易云的音乐
  5. 如果计算机正执行屏幕保护程序 当用户,计算机一级考试考参试题(含答案)章节一.doc...
  6. 数据库 SQL 学习(入门篇)
  7. mac 安装 SwitchHosts,链接都不好使了
  8. jQuery 文档操作方法大全(也适用于 XML 文档和 HTML 文档)
  9. 暨南大学锐捷校园网路由器教程
  10. Web Server的启动过程