基于协同过滤算法的电影推荐系统的设计与实现(论文+源码)_kaic

news2024/11/15 23:32:20

摘  要
现在观看电影已逐渐成为人们日常生活中最常见的一种娱乐方式,人们通常会在周末或在休息、吃饭时间不由自主地在各种视频软件中搜索当前火热的影视节目。但是现在的视频软件电影推荐功能不够完善,所以需要开发出一套系统来使用户只需要简单操作就能找到喜爱的影片。针对这种情况开发一种基于协同过滤算法的电影推荐系统。
使用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 管理员用例图

​编辑

​编辑

​编辑

编辑

编辑

编辑

编辑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2088669.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何实现OpenHarmony的OTA升级

OTA简介 随着设备系统日新月异,用户如何及时获取系统的更新,体验新版本带来的新的体验,以及提升系统的稳定性和安全性成为了每个厂商都面临的严峻问题。OTA(Over the Air)提供对设备远程升级的能力。升级子系统对用户…

白嫖游戏指南,Epic喜加一:《野卡橄榄球》

前言 Epic喜加一:《野卡橄榄球》《野卡橄榄球》简介: 前言 接下来有时间会分享一些游戏相关可以白嫖的资源,包括游戏本体、游戏素材资源等等。 有需要的小伙伴可以关注这个专栏,不定期更新哦! 专栏:白嫖…

微信小程序中Towxml解析Markdown及html

一、Towxml Towxml 是一个让小程序可以解析Markdown、HTML的解析库。 二、引入 2.1 clone代码 git clone https://github.com/sbfkcel/towxml.git2.2 安装依赖 npm install2.3 打包 npm run build2.4 引入文件 将dist文件复制到微信小程序根目录,改名为towx…

简化WPF开发:CommunityToolkit.Mvvm在MVVM架构中的实践与优势

文章目录 前言一、CommunityToolkit.Mvvm1.特点2.优点3.缺点 二、WPF项目应用1.引入到 WPF 项目2.使用示例 总结 前言 CommunityToolkit.Mvvm 是 Microsoft 提供的一个社区工具包,专为 MVVM(Model-View-ViewModel)模式设计,旨在帮…

基于Virtex UltraScale+ VU13P FPGA的4路FMC接口基带信号处理平台

Virtex UltraScale系列 FPGA处理器:XCVU13P-2FHGB2104I动态存储数量:2组DDR4 SDRAM动态存储容量:每组4GByte,每个颗粒为8GBit动态存储带宽:工作时钟1000MHz,数据率2000Mbps板载6路QSFP光纤接口板载4个FMC高…

echarts 柱状图_堆叠柱状图_数据分区_常用图表配置_数据可视化

Echarts 常用各类图表模板配置 注意: 这里主要就是基于各类图表,更多的使用 Echarts 的各类配置项; 以下代码都可以复制到 Echarts 官网,直接预览; 图标模板目录 Echarts 常用各类图表模板配置一、数据分区显示二、折…

Redis入门篇 - CentOS 7下载、安装Redis实操演示

文章记录了在CentOS 7上,通过源码的形式,下载安装Redis的操作过程 进入要安装Redis的目录 cd /usr/local下载源码压缩包 wget https://download.redis.io/redis-stable.tar.gz # 不同版本可能地址不同下载完成后,使用ll命令检查,可以看到下载…

移动端视频编辑SDK,赋能开发者,共创未来视界

美摄科技,作为移动端视频编辑领域的佼佼者,再次突破技术边界,推出了全面升级的移动端视频编辑SDK解决方案,旨在为广大开发者及内容创作者提供一套强大而灵活的创意工具箱,让视频与图片编辑的每一个细节都焕发无限可能。…

51单片机——定时器

1、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: (1) 用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作 (2) 替代长时间的Delay,提高…

LuaJit分析(三)luajit字节码文件格式

Luajit字节码文件格式的完整信息如上图所示,包括文件头Header和原型Proto,一个原型可以对应lua源码中的一个函数或源文件。一、文件头文件标志:占用三个字节,始终是0x1B4C4A,表示这是一个luajit文件版本:占…

006-Sleuth(Micrometer)+ZipKin分布式链路追踪

这里写目录标题 1 分布式链路追踪概述1.1 为什么会出现这个技术?需要解决哪些问题?1.2 在分布式与微服务场景下需要解决的问题 2 新一代Spring Cloud Sleuth:Micrometer2.1 官网重要提示2.1.1 新一代Sleuth2.1.2 官网2.1.3 说明2.1.3.1 老项目…

性能测试计划怎么写?

一.简介 简介部分就不用过多描述了,无非是项目的背景,进行此次性能测试的原因,以及性能测试覆盖的范围等等,几乎所有项目文档都在开端对项目进行简单的阐述。 二.性能测试需求 寻找的被测试对象和压力点…

SD-WAN 跨国专线主要应用在哪些地方?

随着企业需求的不断变化和发展,传统的WAN技术已无法完全满足现代企业的需求。因此,SD-WAN跨国专线逐渐成为企业连接全球业务的重要选择。SD-WAN跨国专线通过SD-WAN技术,实现跨国业务的高效专线连接,极大地提升了企业的全球运营能力…

泡泡玛特2024半年报发布:收入利润高增长 各项指标超预期

泡泡玛特发布2024上半年业绩报告。报告显示,2024年上半年泡泡玛特国际集团实现营收45.6亿元(人民币,下同),同比增长62.0%,经调整后净利10.2亿元,同比增长90.1%。国内地市场差异化渠道定位及精细化运营驱动其业务实现营…

分类预测|基于Transformer-LSTM的数据分类预测Matlab程序 多特征输入多类别输出

分类预测|基于Transformer-LSTM的数据分类预测Matlab程序 多特征输入多类别输出 文章目录 一、Transformer-LSTM基本原理1. 模型原理TransformerLSTM 2. 流程步骤1. 数据预处理2. Transformer编码器3. LSTM层4. 分类层5. 模型训练与评估 3. 优势与应用 二、实验结果三、核心代码…

【原创教程】电气电工14:电磁阀知识一篇搞定

电气电工这些知识点,我们描述的比较细,虽然看起来比较简单,但是它是后面我们技能提升的基础,如果我们后面学电气工程师相关知识,这些都属于基本功。 接着我们来看一下电磁阀。 电磁阀是一种利用电磁原理控制流体介质方向、流量、压力等参数的控制元件。它是将电信号转化…

安装Ubuntu

1.看到如下直接回车(安装) 2.选择语言 3.有的版本会叫你更新(1.更新2.不用继续安装3.返回) 4.键盘选择(一般默认即可回车) 5.Ubuntu版本选择 6.网路配置 7.代理服务器配置(不懂回车即可&#xf…

C语言教程-13_1-初识指针

title: C语言教程-13_1-初识指针 tags: [C] categories: C语言教程 description: 接触C语言的灵魂-指针 概要: 简要讲解内存地址与内存模型简单介绍C语言的指针这一数据类型掌握指针相关最基本的两种互逆运算 前置知识: 理解能力和想象能力耐心和实验精神数组与函数的知识 …

ES(Elasticsearch)可视化界面-浏览器插件

安装 支持Micrsoft Edge、谷歌、火狐浏览器 此处我以IE为例 使用 extension://aonamamifdfigcflbeokdndfappnmogo/es-client/index.html?td_channelidchrome#/more/about 输入相关连接信息即可 rest client语法 和kibana的开发者工具查询方式一致,可以参考我另一篇文章Kiba…

Python生成指定数量的随机XML文件

我的需求是随机生成18位数字的XML文件名,其中前12位数字是随机数,后6位是时间信息 其中XML中写入CSN的tag值,代码如下 import os import random import time import xml.etree.ElementTree as ETdef generate_random_filename():random_part…