基于用户的协同过滤个性化音乐推荐系统
摘 要
互联网发展到如今已经完完全全的改变了的生活方式,融入了日常生活,包括交流,出行,消费,娱乐等。与此同时,音乐数据也在与日俱增的变化着。用户在访问一个音乐网站时,如何能快速的找到自己想要享受的歌曲呢?个性化音乐推荐系统可以做到。
课题做了个性化推荐系统,后端使用个性化推荐算法构造,前端使用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 -