基于信任的电影推荐者系统的实现.docx
- 文档编号:27867450
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:53
- 大小:842.37KB
基于信任的电影推荐者系统的实现.docx
《基于信任的电影推荐者系统的实现.docx》由会员分享,可在线阅读,更多相关《基于信任的电影推荐者系统的实现.docx(53页珍藏版)》请在冰豆网上搜索。
基于信任的电影推荐者系统的实现
本科毕业设计(论文)
基于信任的电影推荐者系统的实现
燕山大学毕业设计(论文)任务书
学院:
里仁学院系级教学单位:
电子工程系
学
号
学生
姓名
专业
班级
08计算2班
题
目
题目名称
基于信任的电影推荐者系统的实现
题目性质
1.理工类:
工程设计();工程技术实验研究型();
理论研究型();计算机软件型(√);综合型()。
2.文管类();3.外语类();4.艺术类()。
题目类型
1.毕业设计(√)2.论文()
题目来源
科研课题()生产实际()自选题目(√)
主
要
内
容
这个设计的目的是结合用户之间的信任和信任等社会信息来实现一个现实中的电影推荐系统,利用信任因素可以解决传统协同过滤推荐算法过程中出现的一些问题。
实现电影推荐的环境,设计用户的评论和评分,利用算法实现对用户实现电影的推荐。
推荐的结果可采用列表形式,推荐过后再通过用户对推荐结果的评价对设计进行改进。
基
本
要
求
环境的建立过程需要用到:
ASP.NET和SqlServer工具,输入用户的评论内容和评分,收集用户的偏好信息。
推荐的过程可以利用矩阵分解或奇异值分解两种算法来实现。
参
考
资
料
可参考现有的一些电影推荐系统,如:
Jinni、TasteKid、Nanocrowd、Criticker等。
此外还可以在图书馆查看一些关于电影推荐系统的文章。
周次
1—4周
5—8周
9—12周
13—16周
17—18周
应
完
成
的
内
容
翻阅资料,明确设计的目标,了解现有系统的功能。
搭建环境
设计推荐算法和相关数据库
以列表的形式显示电影推荐结果
测试推荐结果的准确性
指导教师:
原福永
职称:
教授2012年3月1日
系级教学单位审批:
年月日
摘要
近年来,随着电子商务及娱乐网站的扩大,各电影推荐系统也逐步应用广泛。
采用传统的用户浏览网站模式,不仅不能更好的给运营商带来利益,而且不能帮助用户更好的获得所需。
如何更好的满足用户需求,推荐给用户所需电影,建立适合本网站的电影推荐系统,已经成为影院供应商急需解决的问题之一。
首先,本文分析了电影推荐系统的业务流程,收集与管理相关的资料,明确该系统的目标和主要功能需求。
进行技术方面的探讨与比较,在系统模式上选用B/S结构,在系统技术方面,选用了SQLServer2008数据库平台,并采用ADO.NET数据库连接技术,采用C#语言编码并在.NET的运行环境下实现具体功能。
其次,根据系统要求,将该系统进行具体功能划分,主要实现了全部影片显示、分类影片显示、最新电影显示、最热搜索电影显示、影片个性化推荐、影片查找、影片新闻等功能,并进行了数据库的详细设计与编码,完成设计阶段的各项功能。
最后对系统进行相关实际应用操作,通过使用该系统,系统可以根据用户的以往信息,给用户推荐出合适的电影。
用户可以进行查看信息,观看影片,给影片评分等操作,本系统基本上完成了预期的功能。
关键词电影推荐;信任;B/S结构;.NET
Abstract
Inrecentyears,withexpansionoftheelectroniccommerceandentertainmentwebsites,thefilmrecommendersystemgraduallyappliedwidely.Thetraditionalbrowsingwebmode,itnotonlycan'tgiveoperatorsbetterinterests,butalsoitcan'thelpusersgetbetterresult.Howtobettermeetthecustomers'requirements,establishingthewebsiteforthefilmrecommendersystem,hasbecomeaproblemthatthecinemasupplierneedstoresolve.
Firstly,wemakeasurveyaboutthefilmrecommendersystem,analyzesrecommenderprocess,collectmaterialwhichisrelatedtorecommendation.Understandthefilmrecommendersystemandthemainfunctionofthetargetdemand.Accordingtothecomparisonofthetechnology,inthesystemmodelselectiononB/Sstructure,insystemtechnology,choosetheSQLServer2008databaseplatform,andusethedatabaseconnectiontechnology,usingC#andmakingoperationspecificfunctionsinenvironment.
Secondly,accordingtorequest,thesystemmakeadivision,itmainlyrealizesallfilmshows,filmclassification,latestfilm,hottestsearchfilm,personalizedfilmrecommendation,filmsearchandfilmnewsetc.atthesametime,thedetaileddesignofdatabasehasbeendonetomeetthecompleteddesignofthevariousfunctions
Finally,applythesystem,throughusingthesystem,Accordingtotheuser'severinformation,itcanrecommendthepropermovietousers,andtheusercanviewthefilminformation,watchthefilm,andgivefilmaproperscore.thesystembasicallycompletedtheexpectedfunction.
KeywordsFilmrecommendation;Trust;TheB/Sstructure;.NET
第1章绪论
1.1课题背景
从电子商务产生起,相应产品的推荐系统也就产生了,随着电子商务的飞速发展,对应的推荐系统也经历由不太专业到更准确,更专业的方向发展着。
推荐系统已经成为解决商品供应商快速占领目标客户的一个主要解决方案,而与此同时,推荐系统也为用户提供了更好的商品引导作用。
对于在线电影提供商,在线影片推荐系统的推荐效率也对公司是否能获得更多的目标客户起到了很关键的作用,对公司的发展起到了很重要的作用,著名的在线电影租赁公司NetFlix曾经花费数百万元去寻求获得更好推荐效率的推荐模型及算法。
传统的推荐方法主要是向用户推荐与用户所购买商品内容相同或相关的商品,这种方法也起到了很好的推荐作用,比如你刚看完郎咸平的某个讲座,下面就会向你推荐一系列郎咸平相关的视频,这在XX,Google里观看完视频后会经常见到的,后来过一段时间,通过研究发现这种方法并不是很好,开始有人提出了相似用户的概念,就是根据影片的用户评分的相似性来进行推荐,但这种方法存在很大的缺陷,比如很有可能存在下面这样的情况,比如两个用户虽然对某部影片的评价相同,但可能由于他们的评分标准不太一样,结果造成他们的评分差距很大,而其实这两个用户是有相同兴趣的;另外对于某些影片可能不能把用户评分的相似性作为首要的因素来进行推荐,对于研究电影艺术的某些专家,可能他更愿意接受一些与他本身具有同样专业水准的人来进行推荐才会达到更好的效果;还有一个比较重要的因素就是用户的可信度,现在网上有好多不信任的事情发生,比如虚假的评分和评论等。
因为现在有好多的在线电影租赁商可能会为了提高自己的某部影片的收视率,会雇佣某些人专门提高某部影片的评分,这也是当前的推荐算法所不能解决的问题。
1.2课题意义
因此,本文立足于前人的研究和当前影片推荐系统的的发展现状,对信任推荐进行研究,发掘多层次的影响因素,以便更加合理的考虑推荐策略;利用新的策略和算法计算和用户爱好最相似的邻居,筛选出和用户行为最相近的人来完成推荐影片更准确的功能。
Wonderful电影推荐系统一方面能够帮助在线电影租赁公司更好的吸引目标客户,来获得更高的利润,另一方面可以帮助用户更快更好的观看自己喜欢的影片。
传统方法中,人们只是点开某个电影播放网站,随便的点击网页上所列电影,然后观看,但往往播放之后才知道是否是自己喜欢的,这样浪费了很多自己的宝贵时间,并且这种情况用户没有针对性。
Wonderful电影推荐系统能够根据用户不同需求,根据不同的信任级别,根据不同的专家级别,对不同用户作出个性化推荐,极大的方便了用户的娱乐生活。
1.3课题开发环境
本文是对基于信任的电影推荐系统实现的设计说明。
该电影推荐系统是基于实际使用情况及其当前业务的业务发展状况,从其实际的需求出发,利用“先逻辑,后物理”的原则,经过详细的分析,设计出新系统的基本模型,最后通过编写程序完成基于信任模型的电影系统的实现,对于整个开发过程中的每一个阶段的工作成果都使用了明确的文字和标准化的图形、图表进行描述。
整个系统是在VisualStudio2010集成开发环境下,使用微软的SqlServer2008作为数据库管理系统,运用ASP.NET技术和数据库基本原理,后台数据处理采用的是C#代码,是一个B/S模式的电影推荐系统。
1.4本章小结
综上所述,阐述了课题研究的背景和意义,从而说明了选题的依据。
简要介绍了系统开发环境。
开发本课题系统的大概过程如下面所示。
第1章绪论。
简要介绍了本文研究工作的背景、研究意义及该电影推荐系统开发所使用的环境。
第2章开发模式及相关技术介绍。
这章主要介绍了本课题要应用到的技术,如B/S模式的介绍,开发平台的介绍,及C#语言及Asp.Net的介绍。
第3章可行性研究和需求分析。
在本章中做了业务流程分析和数据流程分析,并绘制了业务流程图及数据流图和功能结构图。
第4章系统总体设计。
对系统方案进行选择,对系统流程的分析和对数据库的设计,主要是数据库的设计和数据表的创建。
第5章系统详细设计与实现。
在本章中介绍了系统各模块的功能及实现方法,和实现结果。
最后总结了本文的主要研究工作,并对本课题的最终功能加以阐述。
第2章开发模式及相关技术介绍
2.1B/S模式简介
B/S(Browser/Server,浏览器/服务器)模式又称B/S结构。
它是随着Internet技术的兴起,对C/S模式应用的扩展。
在这种结构下,用户工作界面是通过IE浏览器来实现的。
B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据;最大的缺点是对企业外网环境依赖性太强,由于各种原因引起企业外网中断都会造成系统瘫痪。
随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即浏览器/服务器结构。
B/S模式最大特点是:
用户可以通过WWW浏览器去访问Internet上的文本、数据、图像、动画、视频点播和声音信息,这些信息都是由许许多多的Web服务器产生的,而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。
客户端除了WWW浏览器,一般无须任何用户程序,只需从Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。
在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。
而各个企业可以在此结构的基础上建立自己的Internet。
B/S架构软件的特点如下。
(1)维护和升级方式简单。
目前,软件系统的改进和升级越来越频繁,C/S系统的各部分模块中有一部分改变,就要关联到其它模块的变动,使系统升级成本比较大。
B/S与C/S处理模式相比,则大大简化了客户端,只要客户端机器能上网就可以。
对于B/S而言,开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以,这减轻了异地用户系统维护与升级的成本。
如果客户端的软件系统
升级比较频繁,那么B/S架构的产品优势明显——所有的升级操作只需要针对服务器进行,这对那些点多面广的应用是很有价值的,例如一些招聘网站就需要采用B/S模式,客户端分散,且应用简单,只需要进行简单的浏览和少量信息的录入。
(2)系统灵活,选择多。
在系统的性能方面,B/S占有优势的是其异地浏览和信息采集的灵活性。
任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。
不过,采用B/S结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。
很明显windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统,windows并没有这种绝对的统治地位,而现在的趋势是应用软件都变成B/S架构的,只安装在服务器上,所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统的情况不受影响,这就使的很多免费的操作系统如现在最流行的Linux得以快速发展,除了操作系统是免费的以外,连数据库也是免费的,这样的选择非常流行。
(3)软件商业运用上,投入成本较低,保护了原有硬件的投资,支持企业快速扩张。
B/S结构软件一般只有初期一次性投入成本。
对于集团来讲,有利于软件项目控制和避免IT黑洞。
当它应用范围扩大,系统负载上升时,B/S结构随着服务器负载的增加,可以平滑地增加服务器的个数并建立集群服务器系统,然后在各个服务器之间做负载均衡。
有效地保护了原有硬件投资。
对于成长中的企业,快速扩张是它的显著特点。
B/S结构软件,只需一次安装,以后只需设立账号、培训即可。
2.2开发平台简介
本系统中页面的开发应用VisualStudio2010,后台的数据库管理系统采用的是微软的SQLServer2008。
VisualStudio2010是微软公司推出的开发环境。
是目前最流行的Windows平台应用程序开发环境。
VisualStudio2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。
VisualStudio2010同时带来了NETFramework4.0、MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview),并且支持开发面向Windows7的应用程序。
除了MicrosoftSQLServer,它还支持IBMDB2和Oracle数据库。
SQLServer2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQLServer版本。
这篇文章详细介绍了MicrosoftSQLServer2008中的新的特性、优点和功能。
在现今数据的世界里,公司要获得成功和不断发展,他们需要定位主要的数据趋势的愿景。
微软的这个数据平台帮助公司满足这些数据爆炸和下一代数据驱动应用程序的需求。
微软将继续投入和发展以下的关键领域来支持他们的数据平台愿景:
关键任务企业数据平台、动态开发、关系数据和商业智能。
2.3ASP.Net介绍
A技术ASP.NET页框架是一种编程框架,它在Web服务器上运行以动态地生成和管理Web窗体页。
在VisualStudio中,Web窗体提供了窗体设计器、编辑器、控件和调试功能,这些功能结合在一起,将使用户能够为浏览器和Web客户端设备快速地生成基于服务器的可编程用户界面。
Web窗体页在任何浏览器或客户端设备上运行。
但是,用户可以将Web窗体页设计为以特定的浏览器(如Microsoft®InternetExplorer5)为目标,并利用特定浏览器或客户端设备的功能。
ASP.NET支持基于Web的设备(如移动电话、手持型计算机和个人数字助理(PDA))的移动控件。
ASP.NET页框架创建了传统客户端/服务器Web交互的抽象模型,使用户能够使用支持快速应用程序开发(RAD)和面向对象编程(OOP)的传统方法和工具来进行应用程序编程。
在Web窗体页中,可以使用属性、方法和事件来处理HTML元素。
ASP.NET页框架为响应在服务器上运行的代码中的客户端事件提供统一的模型,从而使开发人员不必考虑基于Web的应用程序中固有的客户端和服务器隔离的实现细节。
该框架还会在页面处理生命周期中自动维护页及该页上控件的状态。
ASP.NET页框架和Web窗体页面还支持服务器控件,这些控件将常见的UI功能封装在易于使用并且可再次使用的控件中。
2.4Code-Behind
ASP.NET中的术语。
在传统ASP中,WEB页面的UI与逻辑都是写在一个页面里而无法分开。
这种编写代码方式的最大弊端就是一旦UI或逻辑有所变动,都几乎不可避免的要对另一层进行相应改动,同时这种混合的代码编写方式暴露了程序的实现逻辑。
ASP.NET解决了这些问题。
ASP.NET中采用了页面“继承”的方式,即前台页面.aspx文件通过其页面指令@Page继承后台.cs文件,这样,不仅将页面的UI与逻辑分开,同时在程序编译后,其实现逻辑也被隐藏,以.dll文件代替。
ASP.NET中的这种程序编写方式就被叫做code-Behind技术。
在ASP.NET页面处理指令中有个AutoEventWireup属性,是指页面的事件是否自动连网。
如果启用事件自动连网,则为true否则为false。
如果页面处理指令的AutoEventWireup属性被设置为true(默认为true),该页框架将自动调用页事件。
使用code-behind技术,AutoEventWireup默认为true。
2.5C#语言简介
C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。
C#由C语言和C++派生而来,继承了其强大的性能,同时又以.NET框架类库文件作为基础,拥有类似VisualBasic的快速开发能力。
C#由安德斯·海尔斯伯格主持开发,微软在2000年发布了这种语言。
ECMA标准列出的C#设计目标:
C#旨在设计成为一种“简单、现代、通用”,以及面向对象的程序设计语言。
此种语言的实现,应提供对于以下软件工程要素的支持:
强类型检查、数组维度检查、未初始化的变量引用检测、自动垃圾收集(GarbageCollection,指一种自动内存释放技术)。
软件必须做到强大、持久,并具有较强的编程生产力。
它的优势在于:
(1)此种语言为在分布式环境中的开发提供适用的组件开发应用。
(2)为使程序员容易迁移到这种语言,源代码的可移植性十分重要,尤其是对于那些已熟悉C和C++的程序员而言。
(3)对于国际化做了很好的支持。
(4)C#适合为独立和嵌入式的系统编写程序,从使用复杂操作系统的大型系统到特定应用的小型系统均适用。
2.6三层架构体系结构
所谓的三层架构就是将整个业务应用划分为表示层-业务逻辑层―数据访问层-数据库等,有的还要细一些,明确地将客户端的表示层、业务逻辑访问、和数据访问及数据库访问划分出来,十分有利于系统的开发,维护、部署和扩展。
软件要分层,其实总结一句话,是为了实现“高内聚、低耦合”。
采用“分而治之”的思想,把问题划分开来各个解决,易于控制,易于延展,易于分配资源。
如图2-1所示。
图2-1三层架构图
表示层:
负责直接跟用户进行交互,一般也就是指我们的前台,用于数据录入,数据显示等。
它不应该做太多的工作。
表示嘛,也就意味着只做与外观显示相关的工作。
不属于他的工作他不用管也不该管。
业务逻辑层:
用于做一些有效性验证的工作。
以更好的保证程序运行的健壮性。
如数据的有效性判断。
不允许为的地方是否输入了空字符串,该输入Email的,格式是否正确等,数据类型的合法性判断,该是整型的地方当然不能接受字符串了,数据库操作是否合法,如字段长度的有效性判断。
sql防注入的问题,用户的权限的合法性判断等,通过以上的诸多判断以决定是否将操作继续向后传递。
尽量保证程序的正常运行
数据访问层:
顾名思义,就是用于专门跟数据库进行交互。
对数据的添加,删除,修改,显示等。
需要强调的是所有的数据对象只在这一层被引用,如System.Data、SqlClient等,除了数据层之外的任何地方都不应该出现这样的应用。
ASP.NET可以使用.NET平台快速方便的部署三层架构。
ASP.NET革命性的变化是在网页中也使用基于事件的处理,可以指定处理的后台代码文件,可以使用C#,VB,J#作为后台代码的语言。
.NET中可以方便的实现组件的装配,后台代码通过命名控件可以方便的使用自己定义的组件。
显示层放在ASPX页面中,数据库操作和逻辑层都用组件来实现,这样就很方便的实现了三层架构。
从开发角度和应用角度来看,三层架构比双层或单层结构都有更大的优势。
三层结构适合群体开发,每人可以有不同的分工,协同工作使效率倍增。
开发双层或单层应用时,每个开发人员都应对系统有较深的理解,能力要求很高,开发三层应用时,则可以结合多方面的人才,只需少数人对系统全面了解,从一定程度上降低了开发的难度。
三层架构属于“瘦客户”的模式,用户端只需一个较小的硬盘、较小的内存、较慢的CPU就可以获得不错的性能。
相比之下,单层或“胖客户”对机器的要求太高。
三层架构的另一个优点在于可以更好的支持分布式计算环境。
逻辑层的应用程序可以有多个机器上运行,充分利用网络的计算功能。
分布式计算的潜力巨大,远比升级CPU有效。
三层架构的最大优点是它的安全性。
用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了。
另外三层架构还可以支持如下功能:
RemoteAccess(远程访问资料),例如可透过Internet存取远程数据库;HighPerformance(提升运算效率)解决集中式运算(Centralize)及主从式架构(Client-Server)中,数据库主机的运算负担,降低数据库主机的ConnectionLoad,并可增加AppServer处理众多的数据处理要求,这一点跟前面讲到的分布式计算提高运算能力是一个道理;Client端发出Request(工作要求)后,便可离线,交由AppServer和DataBaseServer共同把工作完成,减少Client端的等待时间,从理论上是成立的。
Web应用是当今分布式应用最广泛的应用形式。
基于.N
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 信任 电影 推荐者 系统 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)