【《基于协同过滤算法的电影系统设计》12000字】_第1页
【《基于协同过滤算法的电影系统设计》12000字】_第2页
【《基于协同过滤算法的电影系统设计》12000字】_第3页
【《基于协同过滤算法的电影系统设计》12000字】_第4页
【《基于协同过滤算法的电影系统设计》12000字】_第5页
已阅读5页,还剩33页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录图3.2所示:图3.SEQ图\*ARABIC2电影播放流程图基于协同过滤算法的电影推荐系统的设计3.2.1设计概述该电影推荐系统开发过程中首先以响应性能为主,要求可快速响应用户提交的请求。此外本系统还需要兼顾可靠性,用户的种种操作必须是安全的,不会对系统进行破坏。最后系统的结构应该简单明了,方便各年龄段用户对系统进行操作,提高用户体验。其功能模块图如REF_Ref2214\h图3.3所示:图SEQ图\*ARABIC3.3功能模块图用户部分,用户需要先注册才能实现电影推荐系统的全部功能,注册主要目的是增加用户数量,累积数据使未来的推荐更加精准。注册过的用户登录后可通过可视化的系统界面实现查看新闻、电影推荐、电影评论等功能。管理员部分,管理员通过用户端的管理员入口进入后台管理模块。进入管理员后台后可对用户和电影等信息进行增、删、查、改的操作,并可在后台对电影进行分类。为保障用户友好交流,管理员还需要对电影评价和意见反馈、留言交流进行管理,杜绝恶意评价和刷好评等违规行为。3.2.2数据库设计本论文利用E-R图来展示电影推荐系统的数据库之间实体类的关系。通过E-R图可大大加快建立数据库的进程,帮助人们直观收集数据。用户实体类如REF_Ref4608\h图3.4所示,其中用户编号为主键值,通过统计用户的注册日期、出生日期、性别等属性可以在有纪念意义的日子里给用户带来特殊推荐服务。图3.SEQ图\*ARABIC4用户实体类管理员实体类如REF_Ref5849\h图3.5所示,其中管理员编号是主键值,作为区分不同管理员的唯一凭证,其他属性为管理员的常规特征。图3.SEQ图\*ARABIC5管理员实体类电影实体类如REF_Ref7001\h图3.6所示,其中电影编号是主键值。播放量作为区分电影热度的重要指标,将播放量高的设置为热门电影推荐给未注册用户。其他为电影基本属性,主要用于在用户前台界面展示给用户该电影的相关信息。图3.SEQ图\*ARABIC6电影实体类电影类型实体类如REF_Ref7707\h图3.7所示,其中类型编号为主键值,并含有电影类型名、类型描述等信息。图3.SEQ图\*ARABIC7电影类型实体类新闻公告实体类如REF_Ref8422\h图3.8所示,其中新闻编号是主键值,并含有新闻标题、内容等关键信息。图3.SEQ图\*ARABIC8新闻公告实体类留言板实体类如REF_Ref10179\h图3.9所示,留言编号为主键值。留言板目前支持按时间和点击量排序,留言用户编号记录每个留言来自于哪一个用户,以后如果留言存在问题可根据留言用户编号与用户进行联系。图3.SEQ图\*ARABIC9留言板实体类留言回复类如REF_Ref10940\h图3.10所示,回复编号为主键值,留言板编号记录该回复来自于哪一个留言,回复用户编号用户确定属于哪一个用户,之后回复存在问题时可据此删除留言或联系用户快速解决。图3.SEQ图\*ARABIC10留言回复类电影评价类如REF_Ref11789\h图3.11所示,评价编号为主键值,评分是判断两个用户相似度的重要指标,评价用户编号、评价电影编号用于记录该评价来自哪一个用户、电影,评价栏里的评价内容按照评价时间进行排序。图3.SEQ图\*ARABIC11电影评价类各实体类的关系图示如REF_Ref12089\h图3.12所示:图3.SEQ图\*ARABIC12各实体类之间关系图3.3.3注册、登录模块设计本系统首先设计在首页右上角点击用户注册可跳转到注册界面。用户填写用户名、密码、性别、年龄等信息后系统会将这些信息存到数据库中,未来可实现基于性别或者年龄对用户进行个性化推荐,使用户的体验更加良好。注册成功后会跳转到登录界面提示用户进行登录。而管理员注册界面需要比用户注册界面更安全更严格,所以本论文的设计思路是必须以管理员身份进入后台管理系统后才可以进行新的管理员注册。管理员注册流程如REF_Ref17877\h图3.13所示。图3.SEQ图\*ARABIC13管理员注册流程登录功能主要设计了用户登录和管理员登录。根据用户或管理员输入的用户名和密码与MySQL数据库中的信息进行核对,完全匹配后即可登录成功。登录后用户若长时间未操作会自动退出。本论文设计的登录流程如REF_Ref17985\h图3.14所示:图3.SEQ图\*ARABIC14登录流程3.3.4电影推荐模块设计用户感兴趣的电影往往以类别的形式出现,并且常规的协同过滤算法面对像用户-电影这样稀疏的二维矩阵处理能力较弱,因此本论文实现了基于矩阵分解的隐语义模型。先对所有的电影进行分类,给用户推荐感兴趣分类中的电影可以收到更好的效果。先初始化一个用户-隐性特征矩阵和一个隐性特征-电影矩阵,里面的值都是随机产生的,随后即可利用这两个矩阵行列相乘产生一个猜测值。根据公式(2.8)将用户-电影矩阵的真实值减去猜测值求出差值,并将差值进行完全平方加上正则化项来计算损失函数。随后根据公式(2.11)和公式(2.12)利用随机梯度下降算法不断优化参数直至收敛得到最后的用户-隐性特征矩阵和隐性特征-电影矩阵。最后利用公式(2.7)计算当前用户对电影的好感度后选取好感度最高的n个电影作为推荐结果给用户。推荐流程如REF_Ref18220\h图3.15所示。图3.SEQ图\*ARABIC15隐语义模型实现流程3.3.5精准查询与模糊查询设计当用户需要根据某些电影名或者用户名等信息来查询电影或者用户时,需要系统实现搜索功能。精准查询将用户输入的电影信息与数据库中的电影信息进行匹配,如果出现匹配项则将该电影的信息进行输出。但是用户可能对某些信息记忆并不是非常准确,需要借助模糊查询来帮助他们找到自己需要的电影。模糊查询是利用sql语句中的like来进行匹配,例如wheremovienamelike‘%我%’的条件是搜寻电影名中含有“我”的电影名。3.3.6添加电影功能设计添加电影有两种方法操作:管理员人工模式、系统自动模式。管理员人工模式是管理员从网上搜集电影信息并将影片名、主演、导演、封面等信息在后台管理系统中的新增电影信息管理写入这些数据。数据会作为参数通过JDBC传递到数据库的电影表中,下次管理员对电影信息进行增删查改时将会从数据库表中读取。系统自动模式较为方便,通过调用douban-imdb-api数据api接口自动获取电影信息。该接口以豆瓣的电影id为依据,返回该电影推荐系统所需要的json格式电影信息。随后可将json格式数据进行解析存到数据库电影表中。例如查询id=1302425的豆瓣电影,该电影在豆瓣的界面如REF_Ref21923\h图3.16所示。图3.SEQ图\*ARABIC16id为1302425的电影通过GET请求访问/api?id=1302425会返回该电影的json格式的信息,结果如REF_Ref22217\h图3.17所示:图3.SEQ图\*ARABIC17id为1302425电影的json格式数据将该电影的json数据解析后从中过滤提取可以得到电影表的各项属性,将这些信息存到数据库的电影表中,之后就可以使用。第四章基于协同过滤算法的电影推荐系统的实现基于协同过滤算法的电影推荐系统的实现数据库的实现管理员信息表的数据库设计如REF_Ref20451\h图4.1所示,adminid作为区分不同管理员的唯一标识,是该表的主键。图4.SEQ图4.\*ARABIC1管理员信息用户信息表的数据库设计如REF_Ref20669\h图4.2所示,userid是用户表的主键,其余属性为用户常规属性。图4.SEQ图4.\*ARABIC2用户信息电影类型信息表的数据库设计如REF_Ref20790\h图4.3所示,cateid是电影类型表的主键,catename记录电影类型名。图4.SEQ图4.\*ARABIC3电影类型信息电影信息表的数据库设计如REF_Ref20911\h图4.4所示,filmid是电影表的主键,cateid是电影表的外键,用于记录电影的类型信息,其他均为电影的常规属性。图4.SEQ图4.\*ARABIC4电影信息新闻信息表的数据库设计如REF_Ref21012\h图4.5所示,articleid是新闻信息的主键,并将新闻的题目、图片、内容、点击量等信息一起存到数据库中。图4.SEQ图4.\*ARABIC5新闻信息留言信息表的数据库设计如REF_Ref21127\h图4.6所示,bbsid是留言信息表的主键,userid是留言信息表的外键,记录留言的用户编号。图4.SEQ图4.\*ARABIC6留言信息留言回复信息表的数据库设计如REF_Ref21241\h图4.7所示,rebbsid是回复表的主键,userid是留言板回复信息表的外键,记录留言的用户信息。bbsid同样是留言板回复信息表的外键,用于记录该回复属于哪一条留言。图4.SEQ图4.\*ARABIC7留言回复信息电影评价信息表的数据库设计如REF_Ref21326\h图4.8所示,topicid是评价信息表的主键,uesrid、filmid是评价信息表的外键,分别用于记录评价的用户编号以及被评价的电影编号。图4.SEQ图4.\*ARABIC8电影评价信息第二节系统首页的实现本论文实现的电影推荐系统的首页右上角为用户登录和用户注册模块,用户点击即可进行相应的操作。最下方为管理员入口。搜索栏可以通过输入电影名等信息通过模糊查询功能来寻找电影。菜单栏为不同的功能展示,点击新闻公告按钮可查看本系统的最新新闻,点击留言板可发表留言,点击动漫、喜剧等可查看该类型的所有电影,点击全部电影按钮可查看本系统的全部电影。本系统选取部分热门的电影通过大屏幕滚动展示。下方则根据电影的类型展示该类型热度较高的电影,点击更多可跳转到该电影类型界面下展示该类型的所有电影。系统首页如REF_Ref21581\h图4.9所示:图4.SEQ图4.\*ARABIC9系统首页第三节用户中心模块的实现用户在注册完账号后可能过一段时间想修改自己的个人信息、密码,这时本系统需要实现用户中心功能满足用户在这方面的需求。用户中心有三大功能:用户信息、修改密码、我的收藏。用户信息展示用户当前的个人信息,其效果如REF_Ref21839\h图4.10所示。用户将要修改的信息修改完成后点击确认修改按钮,数据库和管理员后台会对用户信息进行更新。图4.SEQ图4.\*ARABIC10用户信息修改密码为了增加安全性首先要输入用户当前密码,该密码与数据库后台的用户密码正确匹配后,再两次输入相同的新密码完成修改密码操作。其效果如REF_Ref21874\h图4.11所示。图4.SEQ图4.\*ARABIC11修改密码我的收藏功能帮助用户在浏览系统发现不错的电影时将影片收藏,方便日后在我的收藏界面直接打开电影进行观看。其效果如REF_Ref21907\h图4.12所示,如果观看完成后可以从我的收藏中删除该电影。图4.SEQ图4.\*ARABIC12我的收藏第四节电影推荐模块的实现本论文是利用用户对电影进行评分的评分数据为基础来实现基于协同过滤算法的电影推荐系统。本论文利用Movielens-1M数据集来计算得出与当前用户最近邻的用户、给当前用户推荐的电影。如果为一个用户提供推荐结果,首先利用相似度计算公式来计算当前用户与所有用户的相似度,相似度高的说明用户间的行为一致,会产生不错的推荐结果。找到与当前用户相似高的用户集合后,找到该用户没观看但可能感兴趣的电影按好感高低依次推荐给该用户。本论文首先根据公式(2.3)复现了基于Cosine相似度的协同过滤算法。得到的结果如REF_Ref22505\h图4.13所示:图4.SEQ图4.\*ARABIC13余弦计算相似度然后本论文根据公式(2.4)复现了基于皮尔逊相关系数相似度的协同过滤算法。得到的结果如REF_Ref22737\h图4.14所示:图4.SEQ图4.\*ARABIC14皮尔逊相关系数计算相似度最后本论文根据公式(2.5)复现了基于Jaccard相似度的协同过滤算法。得到的结果如REF_Ref18851\hREF_Ref22769\h图4.15所示:图4.SEQ图4.\*ARABIC15Jaccard计算相似度实现了常规的协同过滤算法后发现这些算法在面对稀疏矩阵时处理能力较弱,因此该电影推荐系统实现了隐语义模型的推荐算法并针对不同状态的用户提供不同的推荐服务。如果是未登录的用户进入该系统,该系统识别出该用户为未登录状态后调用get_Hot_Movies()方法默认将数据库中点击量高的电影推荐给用户。如果是新注册的用户,因为没有用户初始数据而存在冷启动问题,同样调用get_Hot_Movies()方法将数据库中点击量高的电影作为初始推荐呈现给用户。未登录用户看到的推荐界面如REF_Ref30198\h图4.16所示:图4.SEQ图4.\*ARABIC16未登录用户的推荐结果但如果是已经有评分数据记录在数据库中的用户登录系统,则利用该用户在电影评价表中的评分数据调用recommend_Movie()方法使用协同过滤算法的隐语义模型自动给用户推荐可能喜欢的电影。之前存在用户行为的推荐页面如REF_Ref30678\h图4.17所示:图4.SEQ图4.\*ARABIC17已登录用户的推荐结果第五节后台管理模块的实现管理员通过管理员登录入口后进入管理系统,其初始界面如REF_Ref30861\h图4.18所示。点击相应的下拉菜单可执行相应的功能操作(下文以电影信息管理为例)。图4.SEQ图4.\*ARABIC18初始管理界面电影信息管理中的电影信息列表可展示本系统的所有电影,并可对电影修改、删除操作。点击下一页可展示下一页的电影信息,其效果如REF_Ref31018\h图4.19所示。管理员如果需要添加电影可通过点击新增电影信息按钮进入界面,输入新电影的相关信息即可添加新电影,其效果如REF_Ref31237\h图4.20所示。如果管理员想要更快的查到电影,可以通过电影信息查询功能利用电影关键字来进行查询,目前可按照电影名、导演、点击量等多种方式进行模糊查询,查询结果见REF_Ref31492\h图4.21。图4.SEQ图4.\*ARABIC19电影信息列表图4.SEQ图4.\*ARABIC20添加电影界面图4.SEQ图4.\*ARABIC21查询结果该后台管理系统除了可对电影信息进行添加、查询、修改、删除操作外,还可对用户、管理员、电影类型、新闻、留言、电影评价等进行类似操作。第六节留言板模块的实现为方便用户直接对电影的内容进行交流和沟通,系统设计了留言板功能,以此提高系统的热度,提升用户体验。用户发布留言时必须填写留言的标题,没有标题的留言将视为错误操作。为增加趣味性,用户在留言内容部分可以上传图片、网址等更加吸引人的信息。留言板如REF_Ref31727\h图4.22所示:图4.SEQ图4.\*ARABIC22留言板除了可以发布留言外,用户还可以针对某一留言进行回复。用户在回复内容部分同样可以上传图片、网址等更加吸引人的信息。回复留言中含有回复内容和回复时间等信息,默认按时间排序。其效果如REF_Ref32014\h图4.23所示:图4.SEQ图4.\*ARABIC23留言回复第七节图片和文件上传模块的实现电影推荐系统在用户注册、编辑电影信息、发布帖子新闻时需要上传文件或图片,因此需要实现上传文件或图片功能。该功能的实现思路主要是将上传的图片或文件拷贝到一个固定路径的文件夹中,并将该文件或图片的位置信息存到数据库中。当使用图片或文件时,从数据库中读取图片或文件的位置并将其显示。上传的结果如REF_Ref32174\h图4.24所示,此时点击确定按钮即可上传成功。图4.SEQ图4.\*ARABIC24上传结果第六章总结与展望第五章基于协同过滤算法的电影推荐系统的测试电影推荐系统的功能实现后需要进行软件测试,以此尽可能减少系统bug,提升用户体验。对于该电影推荐系统,选择黑盒测试的方法,设计不同的数据来对系统进行测试。首先检查用户和管理员能否正常登录和注册。然后对该系统进行电影推荐测试。检查能否实现从电影数据库中选出用户可能喜欢的电影作为推荐结果。最后对该系统进行集成测试,整体测试系统的性能,检测页面间跳转是否正常,前后端数据是否匹配。登录测试表SEQ表\*ARABIC1登录测试表测试编号测试名称操作步骤测试期望结果实际结果Login001未注册用户登录输入用户名和密码提示“该用户未注册”并跳转到注册界面提示“该用户未注册”并跳转到注册界面已注册用户登录输入错误的用户名和密码提示“该用户未注册”并跳转到注册界面提示“该用户未注册”并跳转到注册界面已注册用户登录输入正确的用户名和错误的密码提示“输入密码错误,请重新输入密码”提示“输入密码错误,请重新输入密码”已注册用户登录输入正确的用户名和密码提示“登陆成功”提示“登陆成功”推荐测试表SEQ表\*ARABIC2推荐测试表测试编号测试名称操作步骤测试期望结果实际结果Recommend001未登录用户电影推荐查看热门电影界面得到最近播放量最高的电影《复仇者联盟3》《毛毛虫波萝》《德鲁大叔》等得到最近播放量最高的电影《复仇者联盟3》《毛毛虫波萝》《德鲁大叔》等新注册用户电影推荐查看热门电影界面得到最近播放量最高的电影《复仇者联盟3》《毛毛虫波萝》《德鲁大叔》等得到最近播放量最高的电影《复仇者联盟3》《毛毛虫波萝》《德鲁大叔》等老用户123123电影推荐查看热门电影界面通过协同过滤算法的隐语义模型得到适合用户特征的电影《金刚狼3》《毒液》《完美陌生人》通过协同过滤算法的隐语义模型得到适合用户特征的电影《金刚狼3》《毒液》《完美陌生人》电影评价测试表SEQ表\*ARABIC3电影评价测试表测试编号测试名称操作步骤测试期望结果实际结果Topic001未登录用户评价未登录用户进入电影信息界面并输入评分和评价内容提示“请先登录”并跳转到登录界面提示“请先登录”并跳转到登录界面已登录用户评价已登录用户进入电影信息界面并输入评价内容提示“请输入评分”提示“请输入评分”已登录用户评价已登录用户进入电影信息界面并输入评分提示“请输入评价内容”提示“请输入评价内容”已登录用户评价已登录用户进入电影信息界面并输入评分和评价内容提示“评论成功”,数据库评价表出现新的评价信息提示“评论成功”,数据库评价表出现新的评价信息经过对多组测试后确定已经成功地实现了电影推荐系统。用户使用本系统的具体流程为首先注册成为该电影推荐系统的会员,可根据首页菜单实现留言、观看电影、查找电影等功能,推荐系统将该用户对电影的评分数据传给后台利用协同过滤算法进行分析得到该用户的电影推荐结果。用户再次登录时可通过查看热门电影界面得到自己感兴趣的电影。管理员可以通过后台管理系统及时对系统出现的问题进行改正,并对电影、评价等数据进行可视化操作。经过长时间的测试与改正,该系统内容结构清晰,界面简洁友好,内容可靠,用户体验感较好;推荐功能模块针对用户评分所推荐的电影具有较高的可靠性;权限设计合理,可以成为一个合格的电影推荐系统。第六章总结与展望整体来说,本论文实现的电影推荐系统完整的实现了电影推荐、后台管理、电影查找、留言板、用户管理员注册及用户管理员登录等方面的功能。通过今后的努力学习,相信能更好地优化该电影推荐系统,让用户获得更好的体验。通过这次毕业设计,我深入掌握JSP的相关知识、数据库的相关知识、网站的流程化制作、软件工程的相关知识以及相关推荐算法的具体实现,编程能力和编程理解也有所提升。通过阅读推荐领域的论文,了解到推荐系统领域前沿知识,让自己的知识得到丰富,对计算机的兴趣有所提高。在此次毕业设计过程中指导老师和同学给予我莫大的指导、帮助,极大提高了我的沟通、协作能力。但是目前电影推荐系统还存在一些缺点和不足,比如存在没有实现或者实现不完整的功能。今后设想可以以用户年龄、性别为关键特征进行电影推荐,使同一年龄段、同一性别的用户得到相似的推荐。目前本系统的新闻、留言信息较少,没有推荐价值,希望未来可通过移植大量新闻、留言到推荐系统数据库中,做一个类似于今日头条的新闻推荐和类似于豆瓣的留言推荐,丰富系统的功能,让用户在这一个系统获得多种体验。此外新闻、留言板的功能模块都是按时间进行排序,存在不合理的地方。面对热门帖子、新闻,如果发布时间较早,则会因后续帖子过多产生用户不方便搜索的弊端。今后可在按时间排序的基础上再实现按点击量排序,这样可保证热门的帖子、新闻会一直在前列。推荐系统多种多样,自己了解的只是冰山一角,如果想深入了解推荐系统,还需要实现更多的推荐算法,了解各算法的优点与不足,希望未来可以根据所学知识改进一些推荐算法使其性能更优秀。除此之外,该系统还存在界面较为简单的问题,与优秀的系统界面还有一段差距。希望今后努力学习这方面的知识来解决这些问题。致谢参考文献李章威,陈丽,曹子谞.大数据环境下智能推荐系统中协同过滤算法研究[J].电脑编程技巧与维护,2016(21):78-79+85.张雪文.智能推荐系统中协同过滤算法的研究[D].上海交通大学,2008.王伟.基于资源特征的协同过滤推荐算法研究[D].中南大学,2012.曾方健.基于协同过滤的电影推荐系统的设计与实现[D].华中科技大学,2019.吴建帆,曾昭平,郑亮等.基于用户的协同过滤推荐算法研究[J].现代计算机,2020(19):27-29+67.彭晋.基于模范用户的协同过滤算法研究[D].重庆大学,2010.王婵.一种基于加权因子的混合协同过滤算法[J].电脑知识与技术,2018,14(09):14-16.YangYanetal.Acollaborativefilteringrecommendationalgorithmbasedonuserclusteringwithpreferencetypes[J].JournalofPhysics:ConferenceSeries,2021,1848(1)YanLiuandJunTa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论