基于协同过滤的音乐推荐系统(源码+lw+部署文档+讲解),源码可白嫖!
摘要
技术的成熟和普及,势必会给人们的生活方式带来不同程度的改变。越来越多的经营模式中都少不了线上运营,互联网正强力推动着社会和经济发展。国人对民族文化的自信和不同文化的包容,再加上音乐行业的发展,如此繁荣吸引了越多越多的人。一套完备的基于协同过滤的音乐推荐系统可以实现让用户又快又准找到自己喜欢的音乐,同时也是从侧面促使音乐经济的稳定发展。 本论文主要完成不同用户的权限划分,不同用户具有不同权限的操作功能,在用户模块,主要有用户进行注册和登录,用户可以实现对歌手信息、歌单信息、音乐信息、音乐资讯、留言板、修改个人信息等;在管理员模块,管理员可以对个人中心、用户管理、歌单类型管理、音乐分类管理、歌手信息管理、歌单信息管理、音乐信息管理、留言板、系统管理等进行相应的操作。
概 述
1.1研究背景 信息技术的集成化和信息网络化的不断发展,人类开始步入信息化时代,信息技术作为一种资源成为音乐战略不可分割的一部分,在当今社会,人们的生活节奏逐渐加快,人们对经济的要求逐渐降低,越来越多的人开始追求简单、快捷的方式。以现在计算机的技术的应用,使计算机成为人们使用现代发达技术的桥梁[1]。计算机可以有效的解决信息,十分方便的获取信息,从而提高工作的效率。
1.2 研究意义 现如今科技的卓越发展,时代环境的大变革。人们生活变得越来越多元化,这种多元化很大程度上由互联网科技发展引起,日新月异的互联网让我们实现了众多的不可能。利用网络进行信息管理改革已经成为了人们追捧的一种趋势[2]。“音乐推荐系统”是运用java语言,Spring Boot框架,以Mysql数据库为基础而来发出来的。为保证我国经济的持续性发展,必须要让互联网信息时代在我国日益壮大,蓬勃发展,一个好的音乐推荐系统,将帮助音乐从琐碎冗杂的日常管理事务中解放出来,更专心投入在音乐推荐职责上,因而能更好的履行它自身的社会责任,这个音乐推荐系统也就间接地为美好社会的创建出了一份力[3]。所以音乐推荐系统的设计和实现是必要的也是很有意义的。
1.3国内外研究现状 如今,因为无线网相关技术的快速,尤其是在网上进行资源的上传下载、搜索查询等技术,以及信息处理和语言开发技术的进步,同时编程语言、建模技术的不断发展,促使诸多的平台系统架构由C/S(客户端/服务器)更多的转变为采用B/S(浏览器/服务器)的架构,从而让程序平台网络端的系统架构迎来了一个新的阶段。 并且,在对国外音乐推荐系统发展现状的了解中,发现国外音乐推荐系统一大多是一种门户的建设,除日常的办公业务外,与物流和资金流关系紧密的许多业务也都被设计为功能模块加入系统中[4]。在这一点上,我国完全没有落后,通过采用集成了这些功能的系统,帮助音乐各项业务的工作效率都得到了极大提高,从而持续地为音乐带来更多经济收益。
1.4本文组织结构 本论文将详细阐述音乐推荐系统的开发背景、应用可行性以及系统实现所具有的现实意义,在对音乐推荐系统进行详细的需求分析后,会根据需求分析的结果再结合实际情况为系统的实现选取合适的技术和架构,之后在上述分析论述的基础上进行系统设计,最后完成系统实现和测试。
本文共分为七章,分别是: 第一章绪论,在这一章中对音乐推荐系统的研究背景和意义进行介绍,同时浅述了信息管理系统的发展,明确了音乐推荐系统的实现的目的和方向[5]。 第二章技术介绍,在本章中列举介绍了系统实现采用到的所有技术,包括一些主流的框架技术。 第三章需求分析,这一章对音乐推荐系统的需求进行了全面详细的分析,从系统实现的应用可行性、技术可行性,再到系统的功能、性能、安全性需求都做了说明分析,最后描述了系统的业务流程对需求分析进行补充。 第四章系统设计,这一章中包含了系统实现选取的架构模式,以及组成系统的各个功能模块。 第五章系统实现,本章是在经过前面几章的分析后,将音乐推荐系统开发实现,章节内容包括系统开发环境、运行环境和具体的功能模块实现。 第六章系统测试,模拟系统的实际应用环境,对编写完成的程序进行测试。在本章中列举了测试用例和测试结果。 第七章总结,对音乐推荐系统的整个设计和实现过程进行总结[6]。
1.5 基于协同过滤的推荐算法 基于协同过滤的推荐算法是现今各个电子商务领域中运用最为广泛的推荐算法,它对电子商务的发展起到了至关重要的作用。基于协同过滤的推荐算法是一种通过群体偏好的方式,来帮助个体来找到其共性,给该用户推荐相似的偏好物品。协同过滤算法的基本思路是通过分析各用户的历史的购物情况以及评论情况等用户行为,如评论、购买记录等,得到他们的偏好物品,将喜好不同物品的用户进行分组。之后对不同分组的用户进行分析,通过推荐算法预测出该用户的感兴趣的物品。该方法的具体操作可简述为向推荐算法中输入用户和商品的关系矩阵,输出用户对不同物品的兴趣值。 通常来说,基于协同过滤的推荐算法可分为基于内存的协同过滤和基于模型的协同过滤推荐算法,基于内存的推荐算法还包括基于用户和基于物品的协同[6]过滤推荐算法。基于用户的推荐算法是最早被提出的推荐算法,始于1991年,主要思路为在大量的用户相关数据中研究出用户对物品的偏好程度,之后通过推荐算法的算法推算出相似度较高的用户,然后将其相似用户所喜爱的物品通过推荐算法推荐给其他用户。基于物品的推荐算法是目前使用最为广泛的算法,它通过提取所有用户对不同物品的评价,探究不同物品之间的相似度,然后根据用户之前所购买或有较高评价的商品推荐与其相似度较高的商品。基于模型的推荐算法可以运用于数据量小的场景里,当数据规模较大时,此方法不够精准,推荐效率较为低下。
基于用户的协同过滤推荐算法对比基于内容的推荐算法来说,最大的优点就是对于物品的结构没有特殊要求,可以有效地处理图片视频等结构化数据。另外,随着用户的使用次数增多,历史记录不断增加,该推荐算法将会更加精准,效率也会提高。然而,对于当下的基于协同过滤的推荐算法来说,该推荐方法仍然存在一些弊端致使推荐的效率较低,如稀疏性问题和扩展性问题,另外,对于新用户,由于这些用户缺少历史数据,往往会出现推荐不精准的问题,该问题称为新用户的冷启动问题。
技术介绍
在这一章中,主要是罗列出实现系统将采用的java语言并对其做简单介绍。本论文中的音乐推荐系统使用当下主流的Spring Boot作为后台开发框架,系统的底层数据库选用了关系型数据库MySQL。 2.1 Spring Boot框架介绍 Spring Boot是近几年最为流行的后台开发框架,它的诞生一改过去Spring框架开发中繁琐的配置,极大地简化了Spring应用的搭建和开发。Spring Boot框架不仅保有了Spring框架中的所有优秀特性,还通过使用特定的配置方式,在底层帮助开发人员在工程创建是就预先做了很多配置,这样在开发时就不再需要开发人员过多进行繁琐的配置了。另外在Spring Boot中集成了大量框架,这就使得开发人员不再需要到处寻找在导入开发中需要依赖的jar包,同时也解决了依赖包版本冲突问题,从而提高了依赖包引用的稳定性,从而实现了对Spring应用搭建和开发过程的简化。
2.2 Java语言 Java是一种在Web应用开发中得到广泛使用的脚本语言,经常被用来对用户的相关行为做出反应。它还具有面向对象的设计能力,使设计开发过程更加直观和模块化,并在HTML基础上进行交互Web页面的开发。这种脚本语言的问世,使用户与页面之间的实时、动态交互成为现实,丰富了页面的内容,增强了页面的活力。另外,Java技术也被广泛地运用于该系统,比如对用户输入的数据进行检测,以保证其有效性。Java技术可以在不依赖Web服务程序的基础上在本地客户机上运行。从而有效地解决了因网络速度所带来的迟缓问题,使用户能够更加顺畅、快捷地进行访问。一些功能,比如用户的数据输入,可以通过JavaScript这样的客户语言来完成。该系统采用Java客户机进行用户身份认证,确保了系统的安全性和可靠性。
2.3 Mysql的特点 Mysql 可以处理拥有上千万条记录的大型数据,支持常见的SQL语句规范,可移植性高,安装简单小巧,良好的运行效率,有丰富信息的网络支持,相对其他大型数据库而言,调试、管理,优化简单;使用客户端工具操作效率高,安全性高,使用WEB方式简单方便,不受限制。
2.4 B/S架构 Web程序设计技术是一项用于网页制造方面的专业技术,主要实现了网页的动态交互功能,通过此项技术语言(如PHP、CGI、ASP等)所设计的相关网页可以对用户所发出的及时操作以及需求进展相应的相应,从而到达实现即时动态交互的目的。 B/S构造(Browser/Server,浏览器/效劳器模式),其是一种分布式的计算机网络系统,用户通过浏览器向上一级的网站程序传递相关的参数和请求,然后效劳器上的程序再将这些请求和参数进展处理,最后将结果通过反响回用户浏览器反映出来。
2.5本章小结 在本章中,详细介绍了本论文中实现的音乐推荐系统所采用的技术,包括后台开发中所使用的Spring Boot框架,对上述技术的研究和应用,可以为程序后续的顺利开发提供帮助,在简化程序开发的同时提高开发效率和质量[8]。
系统总体模块设计图
系统前台界面图
歌手信息详情界面图
歌单信息界面图
个人中心界面图
后台登录界面图
管理员功能界面图
部分数据库表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
avatarurl | longtext | 4294967295 | 头像 | ||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
avatarurl | longtext | 4294967295 | 头像 | ||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
avatarurl | longtext | 4294967295 | 头像 | ||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
结论
本文对音乐推荐系统的实现进行了分析设计,并给予分析设计的内容实现了音乐推荐系统。在论文开端,通过对现实背景的分析论述,证明了音乐推荐系统的应用可行性和现实意义。之后我们对系统实现所采用的技术进行研究说明,然后结合音乐推荐日常管理工作的实际情况,提出了系统实现要满足的需求,并详细叙述了这些需求的具体内容以及将要应用系统的不同使用者的业务流程,这些是音乐推荐系统能够正确实现功能的基本前提和依据,后续的设计与实现都将围绕需求中的内容展开。接着开始进行系统设计,首先进行系统架构设计,采用了当下主流的B/S结构,并在表现层使用了MVC设计模式,将整个系统分层,方便了系统的开发,降低了系统功能扩充的维护成本。然后,对数据库进行设计,将所有数据表列出。最后,我们将音乐推荐系统实现,并进行测试。 在整个系统的设计与实现过程中,除了应用在学校中学到的知识外还学习了新的技术,使我在整合已有知识的同时,拓宽了自己的知识面,增加了自己的技能点。这个过程必然不是一帆风顺的,其中有许多同学和老师的帮助,所以这次毕业设计是十分愉快的一次经历。