电影推荐系统的设计与实现2.doc

上传人:温桑 文档编号:67368269 上传时间:2022-12-24 格式:DOC 页数:41 大小:1.82MB
返回 下载 相关 举报
电影推荐系统的设计与实现2.doc_第1页
第1页 / 共41页
电影推荐系统的设计与实现2.doc_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《电影推荐系统的设计与实现2.doc》由会员分享,可在线阅读,更多相关《电影推荐系统的设计与实现2.doc(41页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、电影推荐系统的设计与实现摘 要伴随着信息技术飞速发展,人们的生活方式产生了巨大的改变。人们更加致力于信息娱乐活动的发展,其中电影属于信息娱乐中比较重要的一类。而设计一个电影推荐系统用于整合各类电影信息,可以有效地解决目前在线电影资料冗杂的状况,从而给人们一个更加规范而且简易的电影浏览体验。本文针对这一需求进行电影推荐系统开发。本系统采用MVC框架,利用JSP技术实现网站的动态效果,使用MYSQL数据库。本系统共由两部分组成,包括前台展示部分与后台管理部分。系统前台主要功能有电影的查看和推荐。系统后台主要功能有客户管理、电影管理、分类管理和点击量管理。系统目前使用状况良好,方便用户挑选自己喜爱的

2、电影。关键词:电影推荐系统 电影推荐 推荐系统 Design and Implementation of Movie Recommendation SystemAbstractWith the rapid development of information technology, peoples way of life has been greatly changed. People are more committed to the development of information and entertainment activities, which belong to an imp

3、ortant category of information and entertainment. Designing a movie recommender system for all kinds of films and information integration, can effectively solve the current situation of the online film jumbled, so as to give people a more standardized and simple movie browsing experience. In this pa

4、per, the development of movie recommendation system is based on customers requirement. The system is designed by the MVC framework, and useing JSP technology to achieve the dynamic effect of the site.At last, the MYSQL is used as database. The system consists of two parts, including the front displa

5、y part and the background management part. The main function of the system is to view and recommend the film. The system background functions consist of customer management, film management, classification management and click volume management. At present, the system is in good condition, which is

6、convenient for users to choose their favorite movies.Key Words: Movie Recommendation System; Movie Recommendation; Recommendation SystemI 目 录摘 要IAbstractII目录图清单表清单VI1 绪论11.1 背景11.2 系统开发意义11.3系统开发方法11.4本文的主要内容和组织结构11.5本章小结22技术介绍32.1 系统的运行环境32.2 网站开发工具JSP介绍32.3 系统开发语言32.4 MySQL介绍42.5 MVC模式42.6 Spring框

7、架42.7本章小结53需求分析63.1系统角色分析63.2系统功能需求73.3性能需求73.4总体数据流图73.6本章小结84 总体设计94.1设计原则94.2 系统功能模块图94.3 系统E-R图104.4 系统表结构114.5 本章小结145 系统实现155.1网站前台主界面155.2 用户注册登录175.3 电影详情195.4 网站后台205.5本章小结266 系统测试276.1 系统测试276.2 测试的主要内容276.3 本章小结327结论33参考文献34致谢35图清单图序号图名称页码图2-1MVC关系图4图2-2Spring的7大模块图5图3-1网站用户用例图6图3-2前台用户用例

8、图6图3-3系统总体数据流图8图4-1模块结构图10图4-2系统E-R图10图4-3管理员实体属性图11图4-4电影实体属性图11图4-5电影分类实体属性图11图5-1新片精品页面15图5-2热门电影页面16图5-3猜你喜欢页面16图5-4登录注册页面18图5-5电影详情页面20图5-6后台登录界面21图5-7电影分类管理页面22图5-8客户管理页面22图5-9电影分类管理页面23图5-10电影列表页面24图5-11电影信息修改页面25图5-12电影点击量页面25图6-1性能测试流程图30IV表清单表序号表名称页码表4-1管理员信息表12表4-2电影类型表12表4-3用户信息表13表4-4用户

9、喜好表13表4-5电影点击量表14表6-1 系统登录测试用例表14表6-2系统登录测试用例表27表6-3网站用例测试结果28表6-4安全性测试用例29表6-5兼容性测试用例31V1 绪论1.1 背景随着互联网技术的迅猛发展,网络电影不断增加,在线观看电影已经成为了网民们每天的必修功课。信息技术的发展在带来了便捷的同时也带来了大量数据的重复冗杂。就目前线上电影娱乐而言,不同的电影平台有着不同的规范标准,而这些网站的推荐质量包括平台水平参差不齐,用户很难在琳琅满目的平台中间找到真正适合自已爱好的电影。所以建立一个真正完全能针对用户爱好的高质量电影推荐平台十分紧迫而且重要。1.2 系统开发意义当今的

10、互联网具备了快捷性和专业性的特点,而本系统的开发意义就在于构造一个快捷专业的电影推荐系统,让人们能够尽情在缤纷多彩的互联网世界中体会信息技术带来的美妙享受。此系统能很大程度上满足人们在线上电影浏览的需求,用户使用之后,不需要刻意地手动查找电影,系统能够根据用户浏览习惯向该用户推荐出符合用户喜好的电影,从而更加主动地满足用户的需求。1.3系统开发方法本系统的实现依赖于JSP技术以及MySQL数据库的运用,在自身所学知识的基础上,学习并研究其他相关的技术,以用户的需求为中心的设计理念,从而开发出系统实现的流程与系统的功能;在基本完成系统的整体开发后,按照一定专业标准对系统进行调试和运行,记录下相关

11、的调试与运行的结果。良好的框架可以减轻重新建立解决复杂问题方案的负担和精力,本系统架构主要以MVC模式进行架构。部署系统环境方面采用JDK加Tomcat的方式,系统的开发平台则使用Dreamweaver和MyEclipse,使用的是JSP动态语言来编写系统后台。1.4本文的主要内容和组织结构本系统能有效地给用户推荐电影,推荐的依据主要从三个维度出发,目前系统内电影的新颖程度、电影的点击量以及其他跟用户有相同爱好的用户喜欢的电影。当一个用户注册系统的时候,他会选择一个自己最喜好的电影类型,这就相当于给该用户增加了一个标签,登入系统后他会看到按新颖程度排序的“新片精品”页面,按点击量排名的“热门电

12、影”页面,以及跟他有相同爱好的其他用户浏览过的电影“猜你喜欢”页面。管理员登录系统后可以分别对当前用户的信息、电影类型、电影详细信息进行增删改查,以及可以查看当前每部电影的点击量情况。本文的章节内容安排如下:第一章 :绪论。主要介绍了系统的开发意义、开发方法。第二章 :技术介绍。主要介绍了本系统的开发运行环境、开发工具与开发语言、所使用的数据库类型和开发使用的框架模式。第三章 :需求分析。对系统的角色进行分析,系统的功能需求以及系统的性能需求,最后介绍了系统的总体数据流图。第四章 :总体设计。介绍了系统的总体设计原则,画出了系统的功能模块图、系统的E-R图,列出了系统的表结构。第五章 :系统实

13、现。用图文的形式介绍了系统每个功能页面并附上了该页面的主要功能代码。第六章 :系统测试。从功能、性能、安全性三个方面对系统进行了测试。第七章 :结论1.5本章小结本章主要介绍了本系统的背景、开发意义、具体的开发方法以及本文的主要内容合组织结构。2技术介绍2.1 系统的运行环境开发环境1)开发语言:Java(JDK 1.6)2)操作系统:Windows 83)开发工具:My Eclipse 104)Web服务器:TOMCAT 7.05)数据库:MySQL 5.5版本运行环境1)JDK:JDK 1.62)操作系统:Windows 83)Web服务器:TOMCAT 7.04)数据库:MySQL2.2

14、 网站开发工具JSP介绍Java Server Pages TM (JSP)1技术在动态网页的实现上十分广泛,而且此技术在使用上十分简单快捷。同时各种Web服务器、应用服务器、浏览器和开发工具也能很好地与JSP开发出来的各种应用程序兼容。2.3 系统开发语言Java2是一种面向对象的程序设计语言。Java作为已经诞生十余年的一门成熟的程序设计语言已经被广泛运用于各种高端的企业级应用上。区别于其他开发语言的封闭性,Java 具备强大的可移植与健壮性,Java在被SUN公司推出之际就被作为一种开发性的技术,这获得了世界绝大数软件开发公司的一致赞同,同时也增加了Java的传播性与延续性。2.4 My

15、SQL介绍 MySQL3作为一个开源的关系型数据库,在2008年的时候已经被SUN公司收购,而在2009年的时候,SUN公司又被Oracle公司收购。它是一个支持多线程和多数据的数据库服务器。它拥有速度快操作简单等优点,因此从一开始就受到了很多开源软件爱好者的喜爱,特别是与JSP结合来建设网站是非常的方便。2.5 MVC模式MVC4英文全称是Model View Control,是模式视图控制器的缩写,数据、逻辑、界面的代码在MVC模式中获得了很好的分离,三个部分之间有条不紊的协调工作。程序的输入操作、程序的输出操作和处理操作被MVC很好的分开来。MVC三部分关系如图2-1所示。图2-1MVC

16、关系图2.6 Spring框架Spring5框架一共由7大模块组成,这七个模块既可以协同使用也可以单独使用,因此,Spring框架开发项目会显得灵活而且简洁。Spring框架的7大模块如图2-2所示。图2-2 Spring的7大模块2.7本章小结本章主要介绍了本系统的开发环境、开发的语言、具体的开发技术以及后台的数据库类型。3需求分析3.1系统角色分析本系统主要包含的系统角色为:管理员和普通用户。普通用户拥有浏览电影信息的权限。系统管理员拥有最高权限,主要负责系统中的电影的类型与电影详细信息的增删改查以及查看每部电影点击量。管理员用例图如图3-1所示。图3-1 管理员用例图 普通用户用例图如图

17、3-2所示。图3-2 普通用户用例图3.2系统功能需求本系统由三个独立的模块构成,三个模块能够进行内部的链接交互,每个具体功能模块描述如下:1)电影推荐系统首页根据当前电影的新颖程度、热度和用户喜好显示相关类型的电影。2)登录注册页面普通用户拥有注册登录功能,管理员的登录功能。3)后台管理管理员对电影信息进行的增删改查功能。3.3性能需求由于定位的用户群体规模较大,所以本系统对性能以及兼容性要求比较严格:1)满足大量用户同时登录系统并能成功地运行。2)简单人性化的操作页面,易于用户操作,也便于后期维护。3)因为系统对数据库依赖性较强,所以数据库需要具备相当高的稳定性和高效性。3.4总体数据流图

18、本系统的总体数据流图如图3-3所示。图3-3 系统总体数据流图3.6本章小结本章主要介绍了系统的主要需求分析,包括系统内的角色分析、功能需求、性能需求、运行环境需求,最后介绍了系统的总体数据流图。4 总体设计4.1设计原则4.1.1 实用性原则任何项目的开发都应该是按照实际实用性来执行的,既要考虑到开发的成本,也要保证项目最后的成果。过多的开发成本,虽然完成了项目需求,但是浪费了大量人力物力以及其他资源。所以按照具体的业务水平、管理能力、以及数据的处理方面来保证项目的实用性是十分重要的。4.1.2 可扩展性与可维护性原则一个系统开发出来之后,并不是一层不变的,系统需要随着时间而不断地需要扩展和

19、维护来满足增长的需求。所以在设计软件的时候要最大程度上模块化设计,灵活运用组件,这样在未来需要扩展系统的时候不至于将系统全盘翻新,而是一个模块地进行扩展,这样既节约了资源也更容易调整。4.1.3 安全可靠性原则系统的开发都需要涉及到安全性问题,系统对不正当访问的限制以及系统开发过程中对数据库数据的及时备份都是十分重要的。4.1.4 用户界面设计原则主要还是考虑到用户的使用体验,系统的界面应该简洁、易于操作,这样既能让用户乐于使用系统,也节省了开发人员在界面设计上花费的资源。4.1.5 数据库设计原则 数据库设计体现需要体现以下四个原则:设计的一致性、数据库的完整性、数据库的安全保障性、数据库的

20、可伸缩性和设计的规范化。4.2 系统功能模块图本系统主要功能模块如图4-1所示。图4-1系统功能模块图4.3 系统E-R图按照数据组织模型来组织显示信息的过程需要花费大量的资源,另外设计的工作也是很烦乱,这样造成了工作效率的低下。而E-R方法4就很容易来解决这种问题,实体-关系方法简称为E-R方法,此方法所使用的工具为E-R图,实体、实体属性以及实体间关系就组成了E-R图。本系统E-R图如图4-2所示。图4-2 系统E-R图其中每个实体的属性图如下所示。管理员实体属性图如图4-3所示。图 4-3 管理员实体属性图电影实体属性图如图4-4所示。图 4-4 电影实体属性图电影分类实体属性图如图4-

21、5所示。图 4-5 电影分类实体属性图4.4 系统表结构本系统的运行十分依赖于与数据库的交互,所以数据库的建立必须是整洁有条理而且规范的。而系统所运用到的协同过滤也是以相当规模的数据集为基础,包括后期的推荐结果测试也同样是需要反复与数据库进行交互。系统后台管理员表如表4-1所示。表4-1管理员信息表列名数据类型默认是否允许为空说明Id(PRI)IntNullNo管理员编号为主键UsernameVarcharNullYes管理员名PasswordVarcharNullYes密码电影类型表如表4-2所示。该表用于记录电影类型,而用户注册时会相应地添加自己喜欢的类型,用于后期给用户推荐其他相同类型的

22、电影。表4-2电影类型表列名数据类型默认是否允许为空说明Id(PRI)IntNullNo电影类型的编号为主键TypesVarcharNullYes类型名电影信息表如表4-3所示。该表主要用于记录电影的基本信息,并将信息提交给前端显示。表4-3电影信息表列名数据类型默认是否允许为空说明Id(PRI)IntNullNo管理员编号为主键MovienameVarcharNullYes电影名ActorVarcharNullYes主演DirectorVarcharNullYes导演TypesVarcharNullYes类型AreaVarcharNullYes地区YearsVarcharNullYes年代A

23、bstractVarcharNullYes简介ClicknumIntNullYes点击数用户信息表如表4-4所示用于记录用户基本信息,用于登录与注册。表4-4用户信息表列名数据类型默认是否允许为空说明Id(PRI)IntNullNo编号为主键UsernameVarcharNullYes用户昵称PasswordVarcharNullYes密码MobileVarcharNullYes手机NameVarcharNullYes用户姓名用户喜好表如表4-5所示该表记录用户注册系统时添加的所喜好电影的类型,从而作为后期给用户推荐相同类型电影以及跟用户有相同喜好的其他用户喜爱的电影的依据。表4-5用户喜好表

24、列名数据类型默认是否允许为空说明Id(PRI)IntNullNo编号为主键TypenameVarcharNullYes类型名cidIntNullYes点击量表id电影点击量表如图4-6所示电影点击量表会记录下每一部电影的点击次数,以及点击者的id,从而作为后期推荐给该点击者其他可能感兴趣的电影的依据。表4-6电影点击量表列名数据类型默认是否允许为空说明Id(PRI)IntNullNo编号为主键FidIntNullYes电影编号CidIntNullYes点击量编号insertdateDatetimeNullYes点击时间4.5 本章小结本章从系统的总体设计角度介绍了系统的设计原则,包括实用性原则

25、、可扩展性原则、可维护性原则、安全可靠性原则、用户界面设计原则与数据库设计原则。然后介绍了系统的功能模块、系统的E-R图以及系统的具体表结构。5 系统实现5.1网站前台主界面“新片精品”页面如图5-1所示,该部分显示的是后台增加的最新电影,页面显示的电影顺序则是根据后台添加电影的顺序来排放的,具体顺序为时间从早到晚。图5-1新片精品页面“热门电影”页面如图5-2所示显示的是根据点击量排名的电影,拥有最多点击量的电影安排在首位,然后递减。图5-2热门电影页面“猜你喜欢”页面如图5-3所示,显示的内容为:(1)当用户未登录时,显示的最新添加的四部电影。(2)当用户登录之后,显示的是其他拥有相同爱好

26、的用户喜欢的电影。图5-3猜你喜欢页面“猜你喜欢”页面的主要代码如下:public class FrontController extends MyController equestMapping(value = /index)public String index(Model model, HttpServletRequest request,String types)throws Exception /查询分类String sql=select * from t_types order by id desc;List typesList = db.queryForList(sql);mod

27、el.addAttribute(typesList, typesList);/查询出电影的前4部sql=select * from t_film where 1=1 ;if(types!=null&!.equals(types)sql+= and v4 =+types+;List filmList = db.queryForList(sql);System.out.println(filmList);System.out.println(sql);model.addAttribute(filmList, filmList);sql=select * from t_film order by c

28、lickNum desc limit 4;List maxList = db.queryForList(sql);model.addAttribute(maxList, maxList);/判定如果用户未登陆 和用户相同爱好的是不知道的,所以默认展示 最新的4部,如果登陆了查询出4部最相关的Map customer = getCustomer(request);if(customer=null|customer.size()=0)sql=select * from t_film order by id desc limit 4;List mineList = db.queryForList(s

29、ql);model.addAttribute(mineList, mineList);else/首先,查询当前和当前用偏爱相同的人的IdList mineList = null;sql=select group_concat(cId) cIds from t_customer_like a +where a.typeName in (select b.typeName from t_customer_like b where b.cId=+customer.get(id)+);List l1 = db.queryForList(sql);if(l1!=null&l1.size()0)Strin

30、g aa= l1.get(0).get(cIds).toString();System.out.println(aa);/安访问量的最大从小到大排序sql=select group_concat(fId) fIds from t_click where cId in (+aa+) +group by fId order by count(1) desc;List l2 = db.queryForList(sql);if(l2!=null&l2.size()0)/最后查询出相关的电影tring bb = l2.get(0).get(fIds).toString();mineList = db.q

31、ueryForList(select * from t_film where id in(+bb+) limit 10);model.addAttribute(mineList, mineList);return /front/index;5.2 用户注册登录在网站用户可以通过注册来登录系统,用户注册的时候选择自己感兴趣的电影类别,系统就会给用户推荐相关电影。用户登录注册页面如图5-4所示。图5-4登录注册页面“登录注册”主要代码如下:1)登陆板块/系统登录板块,账号密码的验证功能function loginSave() var loginName = $(#loginName).val();

32、if(loginName=)alert(请填帐号);return false;var loginPassword = $(#loginPassword).val();if(loginPassword=)alert(请填密码);return false;$.post(loginSave.html,username:loginName,password:loginPassword, function(result) result = eval(+result+); if(result.status = true | result.status = true) alert(登录成功); window

33、.location.href=index.html; else alert(登录失败,账户名或者密码错误,请重试); );2) 注册版块代码如下:function create() var username = $(#username).val();if(username=)alert(请填帐号);return false;var mobile = $(#mobile).val();if(mobile=)alert(请填手机号);return false;var name = $(#name).val();if(name=)alert(请填姓名);return false;var passwo

34、rd = $(#password).val();if(password=)alert(请填密码);return false;var repassword = $(#repassword).val();if(repassword=)alert(请填确认密码);return false;if(repassword!=password)alert(两次密码输入不一致);return false;var aa = $(inputname=likes:checked);if(aa.length=0)alert(至少选择一个电影类型);return false;5.3 电影详情 当用户点击一部电影的时候,

35、进入电影详情页面,如图5-5所示。图5-5 电影详情页面“电影详情页面”主要代码如下:$filmBean.v1 演员: $filmBean.v2 导演: $filmBean.v3 类型: $filmBean.v4 年代: $filmBean.v5 地区: $filmBean.v6 点击量: $filmBean.clickNum 5.4 网站后台当系统登陆后台时,首先出现的是一个登陆的界面如图5-6所示, 权限设置主要是维护系统的安全性和完整性。输入正确的用户名和密码进入到网站后台管理中。图5-6 后台登录界面功能实现:1用户登录时,验证用户输入的信息是否完整,如果缺少信息,则提示用户信息不完整

36、。2验证用户输入信息完整后,系统会对数据库进行访问,来完成对用户名和密码的验证,如果出现错误,则提示用户名或密码错误。3当用户验证成功后,判断用户的身份,决定用户验证成功后进入系统能进行哪些操作。具体的验证账号密码功能代码如下:function loginCheck()var username = $(#username).val();var password = $(#password).val();if(username=|password=)alert(用户名和密码必须填写);return false;var params = username:username,password:pas

37、sword;$.ajax( type: POST, async:false, / 设置同步方式 cache:false, url: save.html,data:params,success:function(result)result = eval(+result+);if(result.status=true|result.status=true)if(result.msg=1)alert(登录成功);window.location.href=$ctx/admin/index.html;else if(result.msg=0)alert(密码或用户名错误); );管理员通过验证之后显示登

38、陆成功,进入到后台管理页面,如图5-7所示。图5-7 后台管理页面 后台共拥有四个功能:客户管理、电影分类管理、电影列表、电影点击量列表。 客户管理页面如图5-8所示。该页面显示用户的注册信息,包括用户编号、账号、密码、姓名与电话,并提供增删改查功能功能。图5-8客户管理页面“客户管理页面”主要功能代码如下:public ResponseEntity editSave(Model model,HttpServletRequest request,Long id,String username,String password,String name,String mobile) throws E

39、xceptionint result = 0;if(id!=null)String sql=update t_customer set username=?,password=?,name=?,mobile=? where id=?;result = db.update(sql, new Objectusername,password,name,mobile,id);elseString sql=insert into t_customer(username,password,name,mobile) values(?,?,?,?);result = db.update(sql, new Ob

40、jectusername,password,name,mobile);if(result=1)return renderData(true,操作成功,null);elsereturn renderData(false,操作失败,null);/在数据库插入用户信息表的详细信息public String edit(Model model, HttpServletRequest request,Long id)throws Exception if(id!=null)/修改String sql=select * from t_customer where id=?;Map map = db.queryForMap(sql,new Objectid);model.addAttribute(map, map);return /admin/customer/edit;电影分类管理页面如图5-9所示。图5-9电影分类管理页面“电影分类管理”功能代码如下:该页面主要显示当前系统包含的电影类型以及对应的编号,并提供增删改查功能。该页面功

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com