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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为云征文|部署私有云和文档管理系统 Kodcloud

华为云征文|部署私有云和文档管理系统 Kodcloud 一、Flexus云服务器X实例介绍1.1 云服务器介绍1.2 应用场景1.3 对比普通ECS 二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 Kodcloud3.1 Jellyfin 介绍3.2 Docker 环境搭建3.3 Jell…

【智能算法改进】路径规划问题的多策略改进樽海鞘群算法研究

目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】樽海鞘群算法(SSA)原理及实现 2.改进点 无标度网络策略 复杂网络在图论中可以用边和节点表示, Barabasi 等于1999年通过分析大量的数据提出了无标度网络模型. 该网络…

人像比对-人证比对-人脸身份证比对-人脸身份证实名认证-人脸三要素对比-实人认证

​ 人证比对API接口,全称为人脸身份证比对API接口,也被称为人脸实名认证API接口或实人认证API接口。这种接口服务主要用于将提供的人脸图片和对应的身份证照片、姓名、身份证号码进行比对,以此验证用户的身份。以下是关于人证比对API接口的详…

[易聊]软件项目测试报告

一、项目背景 随着互联网发展,各种各样的软件,比如游戏、短视频、购物软件中都有好友聊天功能,这是一个可在浏览器中与好友进行实时聊天的网页程序。“ 易聊 ”相对于一般的聊天软件,可以让用户免安装、随时随地的通过浏览器网页…

UDP英译汉网络词典

这里我们用UDP实现一个简单的英译汉小词典。我们还是仿照前一篇的UDP编程,将各自的组件封装起来,实现高内聚低耦合。 一. 字典翻译功能实现 首先我们将我们的字典知识库放在txt文本中。 apple: 苹果 banana: 香蕉 cat: 猫 dog: 狗 book: 书 pen: 笔 ha…

浮毛粘毛器可以彻底去除吗?独家揭秘值得入手浮毛空气净化器

有没有养猫五年以上还是单猫的铲屎官?能不能分享一下怎么才能控制住不养新猫。 从我养第一只猫开始,每次看到别人家的小幼猫,就控制不住的想养。到现在,家里已经有了7只猫,而前段时间楼下那只小三花又差点让我破例。不…

Keil5 Debug模式Watch窗口添加的监控变量被自动清除

Keil5 Debug模式Watch窗口添加的监控变量被自动清除 问题解决记录 问题描述:每次进入Debug模式时,watch窗口里面上一次调试添加的监控变量都会被全部清掉 如图: 退出Debug模式后,重新进入Debug模式: 解决方法&…

INFO:一种基于向量加权平均的高效优化算法【免费获取Matlab代码】

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2022年,I Ahmadianfar受到基于向量加权平均方法启发,提出了加权平均向量优化算法(weIghted meaN oF vectOrs, INFO)。 2.算法原理 2.1算法…

在线任务分发系统开发架构分析

在线任务分发系统的架构分析是一个综合性的过程,涉及多个技术层面和功能模块的设计。以下是对在线任务分发系统架构的详细分析: 一、系统概述 在线任务分发系统是一个集任务发布、分配、执行、监控及反馈于一体的综合平台,它通过互联网技术实…

超详细带你学习go高性能web框架----fiber

go-fiber-fast go-fiber 主要定位为一个轻量级、高性能的 Web 框架,但其灵活性使得它可以通过与其他库的集成,构建出强大而多功能的应用程序,满足不同的业务需求,和gin一样轻量级别的路由,但是性能特别是极端性能比gin好一些,都可以通过整合其…

【Gradle】window下安装gradle及idea配置

gradle安装与配置 背景基本概念下载配置环境变量idea配置构建命令配置全局的镜像仓库 背景 最近在看spring源码时,Spring5 以后都是采用 Gradle 来编译,所以构建源码前先安装 Gradle 环境。 基本概念 Gradle是一个基于Apache Ant和Apache Maven概念的…

优化农业项目流程 10款实用管理系统推荐

国内外主流的 10 款农业建设管理系统对比:PingCode、Worktile、建米农业工程项目管理系统、泛普软件的农业项目管理系统、开创云数字农业管理平台、Trimble Ag Software、Agworld、FarmLogs、Granular、Conservis。 在管理复杂的农业建设项目时,选择合适…

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

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

时序预测 | 基于VMD-SSA-LSSVM+LSTM多变量时间序列预测模型(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 旧时回忆,独此一家。基于VMD-SSA-LSSVMLSTM多变量时间序列预测模型(Matlab) ——————组合模型预测结果—————————— 预测绝对平均误差MAE LSTM VMDSSALSSVM 组合模型 …

Java项目:基于SpringBoot+mysql在线拍卖系统(含源码+数据库+答辩PPT+毕业论文)

一、项目简介 本项目是一套基于SSM框架mysql在线拍卖系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能齐全、…

基层医疗云HIS系统源码:云计算、大数据等现代信息技术研发

云HIS源码,基层云HIS系统源码,基层医疗云HIS系统 利用云计算、大数据等现代信息技术研发的基层医疗云HIS系统实现了医院信息化从局域网向互联网转型,重新定义医疗卫生信息化建设的理念、构架、功能和运维体系。实现了医院信息化由局域网向互…

分享两个方法分析python打包exe

在Python开发中,常常需要将Python脚本打包成独立的可执行文件,以便在没有Python环境的电脑上运行。你是否曾为此感到困惑,不知道该选择哪种工具来实现这一目标?其实,打包Python脚本并不难,关键在于选择合适…

C++从入门到起飞之——list模拟实现 全方位剖析!

​ ​ ​ 🌈个人主页:秋风起,再归来~🔥系列专栏:C从入门到起飞 🔖克心守己,律己则安 目录 ​ ​1、list的整体框架 2、list迭代器 >整体分析 >整体框架 >成员函数 >运…

windows安全软件之火绒杀毒的密码忘记后处理

一、问题描述 某次,想升级系统补丁,但多次尝试后都失败,排查杀毒软件影响过程中,发现火绒杀毒配置了密码保护,但因时间太久,密码已无从考证,那我们应该怎样处理这种情况呢? 二、处…

开发知识付费小程序的秘诀:从设计到上线一步到位

在移动互联网时代,知识付费小程序成为内容创作者和教育者的热门选择。它不仅降低了用户的使用门槛,还具备高效传播的优势。本文将带你一步步了解如何开发一个功能齐全的知识付费小程序,从设计规划到技术实现,最后顺利上线。 一、…