摘 要
现在观看电影已逐渐成为人们日常生活中最常见的一种娱乐方式,人们通常会在周末或在休息、吃饭时间不由自主地在各种视频软件中搜索当前火热的影视节目。但是现在的视频软件电影推荐功能不够完善,所以需要开发出一套系统来使用户只需要简单操作就能找到喜爱的影片。针对这种情况开发一种基于协同过滤算法的电影推荐系统。
使用Java语言、SpringBoot框架、Idea平台、Mysql数据库开发了基于协同过滤算法的电影推荐系统。主要实现用户管理,电影分类管理,电影信息管理,热门电影推荐管理,电影分类推荐管理,个性电影推荐管理等功能。通过对系统功能测试,证明功能完好,有利于人们更好的找到自己喜欢的电影观看,减少搜索电影的时间,提升人们的观看体验,增加效益,轻松实现各方共赢。
关键词:电影推荐系统;Mysql数据库;Java语言
ABSTRACT
Now watching movies has gradually become one of the most common forms of entertainment in our daily lives, and people usually search for the current hot movies and TV shows in various video software during the week or during breaks and meals. But now the video software movie recommendation function is not perfect enough. Therefore, a system needs to be developed so that users can find their favorite movies with simple operation. In response to this situation, we developed a movie recommendation system based on collaborative filtering algorithm.
Using Java language, SpringBoot framework, Idea platform, and Mysql database to develop a movie recommendation system based on collaborative filtering algorithm. It mainly realizes user management, movie classification management, movie information management, popular movie recommendation management, movie classification recommendation management, personalized movie recommendation management and other functions. Through the system function test, it is proved that the function is intact, which is conducive to people better find their favorite movies to watch, reduce the time of searching for movies, improve people's viewing experience, increase benefits, and easily achieve a win-win situation for all parties.
Key words:Film Recommendation System; Mysql; Java
目 录
第1章 绪论
1.1 研究背景
1.1.1 选题背景
1.1.2研究目的和意义
1.2国内外研究现状
1.3研究内容
1.4论文组织架构
第2章 相关理论和技术
2.1 Java简介
2.2 MySQL数据库
2.3 B/S模式
2.4 Vue技术
2.5 MVC框架
2.6 Idea开发工具
第3章 系统分析
3.1可行性分析
3.1.1技术可行性
3.1.2经济可行性
3.1.3操作可行性
3.1.4 法律可行性
3.2 功能需求分析
3.3 用户用例分析
第4章 系统设计
4.1 功能模块设计
4.2 数据库设计
4.2.1 数据库需求分析
4.2.2 数据库概念结构设计
4.2.3 数据库逻辑结构设计
第5章 系统实现
5.1 实现环境
5.2 注册登录
5.3 个人信息管理
5.4 用户管理
5.5 电影分类管理
5.6 热门电影推荐管理
5.7 个性电影推荐管理
5.8 投诉建议管理
5.9 交流论坛管理
5.10 电影信息管理
第6章 系统测试
6.1 测试目的
6.2 测试过程
6.2.1 登录测试
6.2.2 热门电影推荐管理测试
6.2.3 个性电影推荐管理测试
6.2.4 电影分类推荐管理测试
6.3 测试结论
结论
参考文献
致 谢
第1章 绪论
1.1 研究背景
1.1.1 选题背景
如今看电影已经渐渐成了人们日常生活中最为普遍的娱乐方式之一,人们通常会在周未或是休息、吃饭时间不由自主地在各种视频软件中搜索当前火热的影视节目。但是现在的视频软件电影推荐功能不够完善。所以需要开发出一套系统来使用户只需简单操作就能发现想看的影片。针对这种情况,开发了基于协同过滤算法的电影推荐系统。通过过滤用户信息并计算用户的相似程度,根据用户要求推荐电影。系统可以对各种影片进行筛选,从而发现用户所喜爱的影片。
1.1.2 研究目的和意义
现在是大数据时代,自1969年互联网出世到现在,网络已经几乎完全渗进人们的生活电影的数量也在以加速的形式增加,电影推荐系统能否供给高效率和精良的服务在电影公司管理方面属于重中之重,使用一个健全完善的电影推荐系统,电影公司的电影服务行业会有一个飞跃发展的时期。电影推荐正在慢慢成为现在社会不可缺少的需求,然而现在的电影推荐多多少少存在页面普遍化不新颖、操作困难复杂、功能不完全等问题,严重影响了电影和公司的发展。经过对电影推荐系统进行合理可行性的分析,根据电影推荐的现状,并结合新的策略和新的理念,对电影推荐系统进行设计与实现。系统完成后,有利于人们更好的找到喜欢的电影观看,减少搜索电影的时间,提高用户观看电影的体验、感受与推荐精准性,轻松达成多方共赢。
1.2 国内外研究现状
近年来,通过研究表明传统的协同过滤算法虽然能在某些方面取得预计的推荐成果,可是真实数据量大、形态各异、数据稀少等特性使得在处理多元异构数据的性能方面传统协同过滤仍有待改进。2021年张泽文在《基于知识图谱的电影推荐系统的研究与实现》文中构建了基于知识表示学习框架提出了改进后的Trans HNK模型,通过聚类算法将实体集合分成多个簇,并在不同的簇中进行负例三元组采样。通过知识表示学习框架得到电影语义相似度,再通过电影评分矩阵得到电影评分相似度,将两种相似度进行融合得到相似度表达式[1]。2020年张志军在《基于协同过滤算法和强化学习的电影推荐系统》文章中提出了一种全新的电影推荐框架叫做CF-DQN推荐框架,它是基于协同过滤算法的改进的强化学习的电影推荐框架,用于实时的电影推荐。解决的是电影推荐领域中由于电影推荐的数据的稀疏度很高以及兼顾到推荐的准确性和电影类型的多样性的原因采用混合算法来进行电影的推荐[2]。2019年张玉叶在《基于协同过滤的电影推荐系统的设计与实现》文章中提到基于物品的协同过滤算法是电影推荐系统中最常用的推荐算法,该算法的关键是计算物品的相似度及推荐评分,相似度矩阵是一稀疏矩阵,已有的一些电影推荐系统中通常采用二维数组来存放相似度矩阵,利用第三方扩展库Numpy来计算推荐评分,时间空间效率相对较低[3]。
在国外,Netflix作为一个视频服务提供商,筹备了一场为提高推荐系统性能的比赛,其获得优厚的奖励的条件是把Netflix本身算法的精确率升高1%以上,这引起了一大批优秀的人加入竞争,这一过程中出现多种多样的推荐算法,并推动推荐系统不断向前。2021年Jayaraman Parthasarathy等人在《An effective content boosted collaborative filtering for movie recommendation systems using density based clustering with artificial flora optimization algorithm》中提到利用基于密度的聚类( DBC )与人工植物区系( AF )相结合的方法,开发一种称为DBC-AF技术的电影RS。此外,为了摆脱稀疏性问题,本文提出的基于DBC-AF的电影RS采用内容提升协同过滤技术。提出的模型在计算项目相似度的同时考虑了电影的内容信息。提出的DBC - AF技术提高了电影预测精度,并结合Movie Lens数据集的客户评分建立了预测过程的集成模型[16]。2023年,S. Sridhar,D. Dhanasekaran,G. Charlyn Pushpa Latha.在《Content-Based Movie Recommendation System Using MBO with DBN》中提出了一种基于内容的电影推荐模型,该模型基于Facebook平台的用户画像进行电影推荐。该推荐系统是由一个混合模型构建的,该模型结合了帝王蝶优化( MBO )和深度信念网络( DBN ),通过与模糊C均值蝙蝠算法( FCM-BAT )、基于k - NN的协同过滤和归一化折扣累积增益方法( CF-kNN + NDCG )、基于用户画像相关性的-相似度算法( UPCSim )和深度自编码器( Deep Autoencoder )等先进算法的对比实验,验证了所提方法在MAE、RMSE、Precision和Recall指标上的优势[17]。
1.3 研究内容
本课题将设计一个基于协同过滤算法的电影推荐系统,所设计的模块有用户管理,电影分类管理,电影信息管理,热门电影推荐管理,电影分类推荐管理,个性电影推荐管理。
1.4 论文组织架构
本文的结构安排如下:
第一章:说明论文的背景和意义、国内外研究现状以及本文的结构。
第二章:程序开发环境和所用技术。
第三章:对系统进行可行性分析和需求分析。
第四章:对系统作出相应设计,包括功能模块设计和数据库设计。
第五章:实现系统的各个功能模块。
第六章:对系统的主要功能模块进行测试,并展示测试结果。
第七章:对系统进行总结,并预测今后的发展。
第2章 相关理论和技术
2.1 Java简介
Java是一种可以跨平台应用程序的面向对象的编程语言。当Sun将Java作为一种开放技术引入时,Java编程语言具有很好的通用性,安全性和高效率性。
Java战狼班最初被称为Oak,一开始是被用于解决控制电视,冰箱等家电的通讯问题,但当时的市场对智能家电的需求不高,就在Oak快失败时,互联网突然兴起,Sun发现了Oak发展的前景,于是改造了,由此Java诞生。Java与一般的编译运行计算机语言和解析运行的计算机编程语言并不相同,其第一步先把源代码编译成byecode,接着再通过多个不同的虚拟器实现解释执行字节码,实现跨平台特性只需要一次编译就能四处执行。1995年Oka改名Java,并且重新设计了互联网应用程序的开发。HotJava浏览器(支持JavaApplet)Java实现体现了Java具有跨平台、动态Web、Internet计算的特性。2010年Oracle公司收购了Sun MicroSystems。
2.2 MySQL特点
Mysql被称为关系型数据库。作用是用来储存数据,同时具有可拓展性,高效性等特性。Mysql数据库可以支持各种操作系统下的运行,主要有Solaris,MacOS,FreeBSD以及Windows,Linux等。实体之间的关系可以通过关系型数据库看的更加直接清楚。关系型数据库并不能决定系统性能,在构建需求较大的框架应用时,需要根据相关的性能和需求去组建。从而来抉择适合的关系型数据库。Mysql是一种可靠的,安稳的基于SQL的数据管理系统。
2.3 B/S模式
这里的B/S模型是一个新的MIS系统平台,依赖于网络关系并与用户层重叠的管理平台形成的。从理论上讲,B/S模型是一个三层系统管理平台,简化了客户的工作,这样即解决了电脑超负荷的问题,而且使得操作变得简单,同时也减少了对系统进行维护和升级的工作量与成本。
2.4 Vue技术
Vue为JavaScript框架,建立用户界面。一套声明式和软件化编程被提供给开发人员来协助进行有效开发。不同于其他框架,Vue使用了从下到上递增的设计,如同堆积木。如果将系统页面分成好几个不一样的部分,每一个部分都能成为组件且每一个组件都能成为一个独立的Vue,这样能进行分别管理。如果每个组件都是隔离的,Vue易于管理并且不会相互影响,如果其他页面也需要就会方便许多,直接引入。
2.5 MVC框架
MVC由M(业务模型),V(界面),C(控制器)三部分组成,每一部分都有各自的责任和功能使用。核心组件是M(业务模型)职责是解决数据和业务逻辑。与其他两个组件相互独立。V(界面)主要是用来给用户展示用户界面和数据,一般情况下,界面都是根据数据形成的,也可根据不同的需求进行修改。C(控制器)的职责主要是调节M与V之间的交互,并且解决用户的操作,通过接受用户的需求完成新的模型和界面,然后把结果反馈给用户。
MVC是三个独立的组件,不相互依赖,使得应用程序具有较高的根据需求变化从而提供的拓展能力;也因为相互独立,使得其每一个组件都可以被别的程序重复使用,为代码提供了简便性,MVC中每一个组件都有各自的任务责任,让程序更容易被维护。
2.6 Idea开发工具
IDEA的全称是IntelliJ IDEA。目前是大多数人的最佳选择,因为它将编码、分析、编译和调试等功能集成到开发软件中。可以把繁杂的任务简化,可以帮助程序员快速找到错误并定位到相应的位置,甚至修复。对于程序调试,控制台登录功能有助于确保多行程序正在运行。Idea多被用于开发软件或者设计网页,原因是Idea可以自动生成许多项任务,这样一个集各种功能为一体的软件很大的方便了用户的使用,即节省时间又节省精力。
第3章 系统分析
3.1 可行性分析
3.1.1 技术可行性
技术可行性是通过用户给出的一些约束条件,从技术方面判断其系统实现的可能性,本次开发的是电影推荐系统,使用的语言是 Java,Idea作为Java语言的开发环境是大多数人的最佳选择,在开发过程中主要基于SpringBoot框架,并且整个开发思路采用MVC设计模式,增强代码稳定性。
3.1.2 经济可行性
系统构建的过程符合以前计划的发展预算,也符合发展过程的要求。系统构建成功后,电影推荐系统发展的前景一片广阔,具有较高的经济价值。所以认为设计开发电影推荐系统在经济上是可行的。
3.1.3 操作可行性
当用户使用系统时,容易操作,容易上手,大部分的功能使用图文结合简单易懂,数据输入完整灵活,管理员和用户都能检测各自的信息,具有安全性。所以具有可操作性。
3.1.4 法律可行性
从法律的角度来讲,开发工作有以下特性:
1、开发系统使用的资料都是合法的到的;
2、知识产权问题在此次开发中没有涉及到;
3、开发过程没有抄袭任何网站,没有侵犯版权
4、开发过程都是亲历亲为,不涉及承担法律责任。
3.2 功能需求分析
在协同过滤算法的电影推荐系统中,有两个角色分别是管理员和用户,系统管理员主要对电影信息,用户信息,热门电影信息,个性电影信息,电影类别信息等进行增删改查妥善管理。用户则既能根据协同过滤算法的智能优先推荐即用户对电影的浏览点击次数,记录记忆用户的偏好推荐热门电影,又能根据协同过滤算法按用户收藏的电影类型,向用户推荐同种或相似类型的电影,并通过论坛实现用户和用户之间的交流,通过投诉建议架起用户与管理员沟通的桥梁,实现管理员与用户之间高效的交流,帮助用户快速了解个人观影计划。
3.3用户用例分析
用户的功能主要有注册登录,查看热门电影,查看个性电影,用户交流,用户投诉,查看电影信息,查看用户信息等用户的用例图如图3.1所示:
图3.1 用户用例图
管理员的功能主要有登录,用户管理,个性电影管理,热门电影管理,电影分类管理,修改个人信息,查看投诉建议,查看交流论坛等管理员的用例图如图3.2所示:
图3.2 管理员用例图
编辑
编辑
编辑
编辑
编辑
编辑
编辑