基于内容的电子图书推荐系统_B10040101毕设论文_第1页
基于内容的电子图书推荐系统_B10040101毕设论文_第2页
基于内容的电子图书推荐系统_B10040101毕设论文_第3页
基于内容的电子图书推荐系统_B10040101毕设论文_第4页
基于内容的电子图书推荐系统_B10040101毕设论文_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

南京邮电大学 毕 业 设 计(论 文)题 目基于内容的电子图书推荐系统专 业计算机科学与技术学生姓名王欣源班级学号B10040101指导教师许棣华指导单位计算机学院、软件学院 日期: 2014 年 03月10 日至 2014 年 06 月10 日毕业设计(论文)原创性声明本人郑重声明:所提交的毕业设计(论文),是本人在导师指导下,独立进行研究工作所取得的成果。除文中已注明引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写过的作品成果。对本研究做出过重要贡献的个人和集体,均已在文中以明确方式标明并表示了谢意。 论文作者签名: 日期: 年 月 日摘 要随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代步入了信息过载的时代。面对信息过载,推荐系统应运而生。本文是实现基于内容的电子图书推荐系统,帮助人们快速找到自己需要的图书。本文首先阐述了推荐系统产生的背景,并分析比较了几种推荐系统算法,重点阐述了基于内容的推荐算法的优缺点。然后对本系统的功能进行了模块划分,分为管理员实现的功能模块、用户实现功能模块和系统向用户推荐图书模块。 推荐图书模块采用基于内容的推荐算法,它使用关键词代表图书的内容特征向量,根据用户对图书的操作行为计算出用户的配置文件,并通过采用Jaccard算法计算出与用户配置文件相似性较大的图书推荐给用户。最后通过采用Myeclipse8.5开发平台和MySql数据库,编码实现了本系统。关键词:基于内容;信息过载;推荐系统;电子商务;电子图书推荐ABSTRACT With the development of information technology and the Internet, people gradually fall from a lack of information era into the era of information overload. Facing the problem of information overload, recommender system came into being.We realized a contents-based electronic book recommender system,helping people quickly find the book that they need. Firstly,the background of the recommender system is described in this paper .Meanwhile we analysis several recommendation algorithms and focus on the advantages and the disadvantages of the content-based recommendation algorithm in this paper.Then according to the functions , this system is divided into three parts,such as the users function module, the administrators function module and the recommendation module. Content-based recommendation algorithm is adopted in the recommendation module, which uses the key words to represent the feature vector of the books content, and form the users profiles based on the users operate behavior on books. The similarity between the books and the users profile is calculated by Jaccard algorithm. After that,the most similar books are recommender to the user. Finally, this system is implemented on the platform of Myeclipse8.5.Key words:content-based;information overload; recommender system; electronic business;e-book recommendation目 录第一章 绪论- 1 -1.1课题产生的背景及意义- 1 -1.2推荐系统研究现状- 1 -1.3推荐系统研究内容及论文组织结构- 3 -第二章 相关理论技术及工具- 5 -2.1推荐系统算法及比较- 5 -2.2基于内容的推荐算法- 7 -2.3实现使用的环境工具及技术- 10 -2.4本章小结- 11 -第三章 系统设计- 12 -3.1系统概述- 12 -3.1.1系统目标设计- 12 -3.1.2系统设计思想- 12 -3.1.3系统总体设计图- 13 -3.2需求分析- 13 -3.2.1系统总体功能图- 13 -3.2.2用例图- 14 -3.3数据库设计- 15 -3.3.1数据库需求分析- 15 -3.3.2数据库逻辑设计- 15 -3.3.3 E-R图- 16 -3.4本章小结- 18 -第四章 详细设计- 19 -4.1数据库和JAVA Web的连接- 19 -4.2实现登录功能- 20 -4.3管理员实现对电子图书的编辑- 22 -4.4管理员实现对用户信息操作- 25 -4.5用户实现查询图书- 26 -4.6用户对图书的操作- 27 -4.7系统对用户推荐图书- 28 -4.8本章小结- 32 -第五章 总结和展望- 33 -5.1系统的测试- 33 -5.1.1测试目的- 33 -5.1.2测试方法- 33 -5.1.3 测试实例- 33 -5.2对系统改进的思考- 40 -结束语- 42 -致 谢- 43 -参考文献- 44 -南京邮电大学2014届本科生毕业设计(论文)第一章 绪论1.1课题产生的背景及意义 一课题产生的背景近年来,随着信息技术和网络的快速发展与崛起,互联网已逐渐成为人们搜集和提供信息的常用渠道,并逐步渗透到各个领域包括传统的流通领域。这一变化促成了电子商务的形成,越来越多的商家在网上建立在线店铺,向消费者展示自己的产品信息,消费者也逐渐习惯于网上查询自己需要产品的信息。这种全新的生活理念标志着人类进入了一个崭新的时代。然而问题随之产生,信息过载的时代不同于以往,对于信息消费者言而,在众多信息中找到自己需要的信息是一件非常困难的事情;对于信息生产者而言,让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。面对产品信息的“海洋”,显而易见,消费者快速并且有效的挑选出自己所需要所感兴趣的产品是十分困难的,此时推荐系统应运而生。电子商务推荐系统通过识别消费者的消费偏好,模拟导购人员向客户提供建议,帮助客户完成了购买,从而使消费者尽量避免信息过多所带来的麻烦,同时也为自己产品营销带来了利润,更重要的是为自己的电子商务系统保留住了一定的客户源。二课题的目的及意义推荐系统的任务就是在用户和信息之间建立一个桥梁,一方面帮助了消费者发现对自己有价值是自己感兴趣和需要的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。其实质就是在海量数据挖掘基础上建立的一种高级商务智能平台,以帮助电子商务网站为其用户提供智能的、个性化的决策支持和信息服务,从而避免用户在海量数据前无所适从。1.2推荐系统研究现状从上世纪90年代中期提出推荐系统的概念,直到现在,蓬勃兴起的网上交易、电子商务等,伴随着信息技术的进步,为推荐系统提供了良好的契机和发展的平台,推荐系统得到了飞速的发展。急需并且巨大的应用需求,为推荐系统带来了广泛的关注。不仅很多国内外学者都在研究推荐系统,ACM 也屡次把推荐系统作为研讨主题,甚至众多国内外期刊也纷纷将推荐系统作为专题报道。一国外推荐系统研究现状在用户模型方面,常用的用户建模技术有向量空间模型、用户评价矩阵,以及机器学习技术。国外的研究提出了使用智能代理技术来分析顾客的需求,建立用户模型,并据此提供推荐服务。也有人提出了一个利用神经网络和遗传K-means 算法来获取用户偏好的方法。通常系统中应用的推荐算法最多的是协同过滤的技术,针对协同过滤的改进提出了使用分解技术减少特征向量的维数,来提高最近邻居的搜索速度,并且对用户最近邻居项采用赋值权重的方法来优化算法,提高推荐质量。由于传统的协同过滤技术仅仅根据用户显式评分产生推荐结果,很多研究者提出通过web 挖掘技术获取用户隐式评分,因此,各种数据挖掘技术也开始应用到推荐系统中,以提高推荐系统的精度。学者们也关注了推荐系统的可移植性和信任的问题。基于对等网络环境,通过在客户端对用户信息进行控制,使得用户即使在离线时也能进行推荐。另外推荐系统的实时性,算法的可伸缩性,用户的信任等等融合了信息获取,数据挖掘,人机交互,自然语言处理,心理学,社会行为研究等相关领域都是最近研究的热点。下面给出一些研究型推荐系统实例:(1)GroupLens:用于推荐新闻信息组的自动协同过滤推荐系统。该系统通过自动搜索与用户评分信息最邻近的用户,然后根据最接近的评分信息产生最终的推荐结果,支持用户数量大的情况。(2)MovieLens:用于推荐电影的研究型自动协同过滤推荐系统。与GroupLens 不同,MovieLens 是一个基于web 的推荐,系统通过浏览器进行用户评分数据的收集与推荐结果显示。(3)FAB:用于推荐web 页面的基于内容的过滤和协同过滤混合的推荐系统。其特点是综合了基于内容过滤的推荐和过滤推荐的优点,同时支持两种类型的推荐服务。 (4)Ringo:用于提供音乐推荐服务的研究型协同过滤推荐系统。Ringo 系统可以向用户推荐他们喜欢的音乐,预测用户不喜欢的音乐,也可以预测用户对特定音乐的评分。表1.1 一些采用推荐技术的网站系统推荐内容类型网址MovieF电影/Movielens电影/R电影http://A图书/Phoaks网站/Yenta寻友/Lauch音乐/CD NCD唱片GrouplensUsenet 新闻/Internet Watcher网页/Jester笑话幽默/humor除了研究型推荐系统之外,推荐在电子商务领域也运用的如火如荼。推荐的应用领域包括推荐电子图书、电影、CD、新闻、旅游等。表1.1列出了一些应用了推荐技术的网站以及他们推荐的主要内容。二国内推荐系统研究现状目前国内的研究多集中在推荐系统的理论和技术方面,并取得了丰硕的成果。针对协同过滤中评价矩阵的稀疏性,提出了一种优化算法和一种基于项目评分预测的协同过滤推荐算法,并且在计算目标用户的最近邻居时采用一种新相似性计算方法。针对算法的可扩充性,又提出了基于项目聚类的协同过滤推荐算法,这些都显著地提高推荐系统的推荐质量。以上各类推荐技术都有各自的优点和缺点,因此许多研究者提出结合多种过滤技术,以克服各自的缺点。例如基于内容和合作模式的信息推荐机制,基于语义相似性的资源协同过滤技术。同时也对稀疏问题和冷启动问题做了研究,将推荐系统的应用领域扩展到了数字图书馆。在应用方面,国内在个性化推荐方面做的比较好的网站有淘宝网,当当网,京东,易迅,豆瓣,土豆,优酷,人人等。三基于内容的推荐系统的研究进展历史上,最初的基于内容的推荐(content-based recommendation) 是协同过滤技术的延续与发展,它不需要依据用户对项目的评价意见,而是依据用户已经选择的产品信息,进而进行相应的推荐。随着机器学习技术的发展,目前基于内容的推荐系统可以对用户建立配置文件和对产品建立特征向量,通过分析已经购买(或收藏)过的内容,建立或更新用户的配置文件。系统可以比较用户配置文件与产品特征向量之间的相似度,并直接向用户推荐与其配置文件具有相似性最大的产品。基于内容的推荐算法的根本在于信息的获取与信息的过滤,而在文本信息在这两方面研究的较为成熟,现有很多基于内容的推荐系统都是通过分析产品的文本信息进行推荐。然而现在的产品不仅仅只有文本信息,当推荐系统需要推荐电影音乐图片等涉及到自动提取多媒体数据的内容特征时,基于内容的推荐系统不可避免的会有技术上的困难。并且各种领域应用推荐不仅仅是想对户已有的兴趣进行推荐,还希望能够挖掘到用户潜在的兴趣,推广更多的信息。基于如上一些原因,现在基本不存在单纯的只是基于内容的推荐算法了,它可能混合了协同过滤或者其他的一些算法,将对用户的推荐做到尽可能的完美。1.3推荐系统研究内容及论文组织结构 一推荐系统研究内容 推荐系统依据用户的兴趣爱好或需求(即记录用户的历史行为)来推荐可能符合用户兴趣或需求的产品,这个过程也被称为个性化推荐。由于推荐系统可以帮助商户完成个性化营销,进而达到提升销售量,创造最大的利润的目的,很多电子商务企业开始重视并积极推广推荐系统在电子商务系统中的应用。国内外很多学者也进行了相关的研究工作,推荐系统的研究主要包括以下几个方面: 1.用户信息获取 推荐系统早期只需要简单的获得用户的信息,但随着推荐系统发展和完善,推荐系统已经不单单可以获得用户的信息,还可以实现同用户进行交互。为达到这一目的,就需要考虑到用户多方面的兴趣和用户兴趣转变的情况,并且将数据挖掘应用到用户信息获取中,还可以挖掘用户的隐性需求和爱好。 2.推荐算法的研究要想个性化推荐易于接受并且获得用户的认可,关键要设计出精确、高效的个性化推荐算法。目前的推荐算法有多种,有基于内容的推荐,基于协同过滤的推荐,基于混合的推荐和基于物品的推荐等算法。每个推荐算法有各自的优缺点,为了摒弃各自推荐的弊端,达到推荐结果的高精度和高覆盖率的目的,可以将各种推荐方法混合使用。不仅如此,信息获取、人工智能以及模糊推荐等相关领域的引入也扩宽了推荐算法的思路。3.推荐系统的评价问题为达到推荐系统为广大用户所易于接受的目的,必须给出产品被推荐的理由,同时对推荐系统作出客观综合的评价。因此,推荐的准确性和可靠性是两个很重要的方面。对推荐结果准确性的判断和把推荐结果展示给用户以及如何获取用户对推荐结果的反馈评价都是值得深入研究的热点。二论文的组织结构本文的结构安排如下:本章分析了推荐系统的产生原因,研究的内容,历史发展进程,国内外的研究现状以及基于内容的推荐系统的研究进展。第二章详细介绍基于内容的推荐系统的理论基础及相关的算法,实现这个系统会用到工具的介绍。第三章会简要说明系统概要,系统的需求分析和数据库的设计。第四章会介绍系统的详细设计。第五章是一个总结,包括了本系统的测试结果和优缺点,以及展望等。 第二章 相关理论技术及工具2.1推荐系统算法及比较推荐系统发展至今,已经提出了很多很好的算法。当今时代所用的推荐算法主要有:基于内容推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐和组合推荐。下面分别进行介绍。1. 基于内容推荐基于内容的推荐(Content-based Recommendation)是信息过滤技术的继承和发展,它不需要依据用户对项目的评价而是根据项目内容作出推荐,更多地需要用机器学习的方法从项目内容的特征向量中得到用户的兴趣爱好。在基于内容的推荐系统中,项目是通过特征向量来表示的,系统根据用户选择的项目的特征向量,学习用户兴趣的配置文件,计算出用户配置文件与待预测项目的相匹配程度。2. 协同过滤推荐协同过滤推荐(Collaborative Filtering Recommendation)技术是推荐系统中应用最早和最为成功的技术之一。它通常采用最近邻技术,利用用户的评价矩阵信息计算用户之间的距离,然后利用该用户的最近邻居用户对商品评价的加权评价值来预测目标用户对特定商品的喜好程度,系统从而根据这一喜好程度来对目标用户进行推荐。基于协同过滤的推荐系统可以说是从用户的角度来进行相应的推荐,而且是自动的,即用户获得的推荐是系统从购买模式或浏览行为等隐式获得的,不需要用户努力地找到适合自己兴趣的推荐信息,如填写一些调查表格等。协同过滤最大优点是对推荐对象没有特殊的要求,能处理非结构化的复杂对象,如音乐、电影、图片等。3. 基于关联规则的推荐基于关联规则的推荐(Association Rule-based Recommendation)是以关联规则为基础,把已购商品作为规则头,规则体为推荐对象。关联规则挖掘可以发现不同商品在销售过程中的相关性,在零售业中已经得到了成功的应用。关联规则就是在一个交易数据库中统计购买了商品X的交易中有多大比例的交易同时购买了商品Y,其直观的意义就是用户在购买某些商品的时候去购买另外一些商品的倾向性。比如购买牛奶的同时很多人会同时购买面包,还有很著名的购买纸尿片的人会购买啤酒。4. 基于效用的推荐基于效用的推荐(Utility-based Recommendation)是建立在对用户使用项目的效用情况上计算的,其核心问题是如何为用户创建效用函数。因此,用户爱好模型很大程度上是由系统所采用的效用函数决定的。基于效用推荐的好处是它能把非产品的属性,如提供商的可靠性和产品的可得性等考虑到效用计算中。5. 基于知识的推荐基于知识的推荐(Knowledge-based Recommendation)在某种程度是可以看成是一种推理技术,它不是建立在用户需要和偏好基础上推荐的。基于知识的方法因它们所用的功能知识不同而有明显区别。效用知识是一种关于一个项目如何满足某一特定用户的知识,因此能解释需要和推荐的关系。所以用户资料可以是任何能支持推理的知识结构,它可以是用户已经规范化的查询,也可以是一个详细的用户需要的表示。6. 组合推荐各种推荐方法都有优缺点,在实际中,组合推荐(Hybrid Recommendation)经常被采用。组合推荐一个最重要原则就是通过组合后要能避免或弥补各自推荐技术的弱点。研究和应用最多的是内容推荐和协同过滤推荐的组合。最简单的做法就是分别用基于内容的方法和协同过滤推荐方法去产生一个推荐预测结果,然后用某方法组合其结果。各种推荐算法都有各自的优缺点,接下来会介绍各种推荐算法的比较。由于协同过滤的推荐算法和基于内容的推荐算法是比较基础和主流的推荐算,主要比较这两种算法的好坏。协同过滤推荐系统在实际系统中得到了广泛的应用,因为有以下的优点:1.具有推荐新信息的能力, 可以发现用户潜在的但自己尚未觉察的兴趣偏好。2.能够推荐艺术品、音乐、电影等难以进行内容分析的产品。虽然协同过滤推荐系统应用广泛,但是也面临着很多问题。比如,不能对新用户进行有效的推荐(冷启动问题),打分矩阵存在稀疏问题等。同基于协同过滤的推荐系统相比,基于内容的推荐系统的优点如下:1.可以处理新产品问题(冷启动) 。由于新用户没有选择信息,新产品没有被选信息,因此协同过滤推荐系统无法处理这类问题。但是基于内容的推荐系统可以根据用户和产品的配置文件进行相应的推荐。2.实际生活中用户对产品的打分信息非常少,协同过滤系统就会由于打分稀疏性的问题,受到很大的限制。基于内容的推荐系统可以不受打分稀疏性问题的约束。3.能推荐当前非流行的产品,能够发现隐藏的“暗信息”,使一些比较冷门的信息能够推荐出来。4.通过列出推荐项目的内容特征,可以解释为什么推荐这些产品。但是基于内容的推荐系统也存在很明显的缺陷。基于内容的推荐系统不可避免地受到信息获取技术的约束,例如自动提取多媒体数据(图形、视频流、声音流等) 的内容特征具有技术上的困难,这方面的相关应用受到了很大限制。并且难以挖掘用户的潜在兴趣,只能发现和用户已有兴趣类似的资源。本推荐系统对电子图书的推荐采用的是基于内容的算法,正是考虑到了图书的内容信息是由文本信息来表示,由于基于内容的算法比较容易分析文本内容,并且容易向用户解释产生推荐的原因。表2.1还列出了一些主要推荐算法优缺点的对比。表2.1 主要推荐算法对比推荐方法优点缺点基于内容推荐推荐写过直观,容易解释;不需要领域知识;复杂属性不好处理;新用户问题;难以挖掘新兴趣;协同过滤推荐发现新兴趣;不需要领域知识;推荐个性化、自动化程度高;能处理复杂的非结构化对象;稀疏问题;新用户问题;可扩展性问题;基于规则推荐能发现新兴趣;不需要领域知识;规则抽取难,耗时;产品名统一性问题;个性化程度低;基于效用推荐无冷启动和稀疏问题;对用户偏好变化敏感;能考虑非产品特征;用户必须输入效用函数;推荐是静态的,灵活性差;属性重叠问题;基于知识推荐能把用户需求映射到产品上;能考虑非产品属性;知识难获得;推荐是静态的;2.2基于内容的推荐算法根据基于内容推荐原理,生成推荐的过程主要分为三步:1.提取特征信息。为项目提取出来一些特征向量来表示该项目。2.用户配置文件生成。由用户过去喜欢项目的特征,来推算用户的喜好特征。3.产生推荐。计算出用户配置文件和项目特征向量间的相似度,推荐相似度大的项目。一特征向量的提取 在获取信息时,最常用的方法就是TFIDF方法。该方法是找到出现次数最多的词。但如果一个词在所有的文章中出现次数的都比较多,那么这个词很大程度上不能反映这篇文章的内容;而某个词比较少见,但是在这篇文章中出现多次,那么它就很大程度上可以反映这篇文章的内容,即我们所需要的关键词。我们需要加一个调整系数,较常见词赋予较小的权重,较少见的词赋予较大的权重。这个权重叫做“逆文档频率”(IDF)。知道了“词频”(TF)和“逆文档频率”(IDF)以后,将这两个值相乘,就得到了一个词的TF-IDF值。某个词对文章的重要性越高,它的TF-IDF值就越大。实现如下: 设有N 个文本文件, 关键词ki 在ni 个文件中出现, 设f ij 为关键词k i 在文件d j 中出现的次数, 那么ki 在d j 中的词频T Fij 定义为: (2.1) 其中分母的最大值可以通过计算dj 中所有关键词k z 的频率得到。在许多文件中同时出现的关键词对于表示文件的特性, 区分文件的关联性是没有贡献的. 因此T Fij 与这个关键词在文件中出现数的逆( ID Fi ) 一起使用, ID Fi 的定义为: (2.2) 那么, 一个文件dj 可以表示为向量d j = ( w1 j ,w2 j , , wkj ) , 其中 (2.3) 二用户配置文件的建立 在学习用户喜好的配置文件时,也有多种方法。1.最近邻方法(k-Nearest Neighbor,简称kNN)。对于一个新的item,最近邻方法首先找用户u已经评判过并与此新item最相似的k个item,然后依据用户u对这k个item的喜好程度来判断其对此新item的喜好程度。 2.Rocchio算法。 Rocchio算法是信息检索中处理相关反馈(Relevance Feedback)的一个著名算法。该算法获得用户u的profile的方法为: (2.4)其中表示item j的属性,与分别表示已知的用户u喜欢与不喜欢的item集合;而与为正负反馈的权重,它们的值由系统给定。在获得后,对于某个给定的item j,我们可以使用与的相似度来代表用户u对j的喜好程度。Rocchio算法的一个好处是可以根据用户的反馈实时更新,其更新代价很小。3. 决策树算法(Decision Tree,简称DT)。当item的属性较少而且是结构化属性的时候,决策树可以产生简单直观、容易让人理解的结果。而且可以把决策树的决策过程展示给用户u,告诉他为什么这些item会被推荐。4. 线性分类算法(Linear Classifer,简称LC)。以学习用户u的分类模型为例。表示item j的属性向量,那么LC尝试在空间中找平面,使得此平面尽量分开用户u喜欢与不喜欢的item。其中的就是我们要学习的参数了。最常用的学习的方法就是梯度下降法了,其更新过程如下: (2.5) 5. 朴素贝叶斯算法(Naive Bayes,简称NB) 现在计算配置文件问题中包括两个类别:用户u喜欢的item,以及他不喜欢的item。在给定一个item的类别后,其各个属性的取值概率互相独立。我们可以利用用户u的历史喜好数据训练NB,之后再用训练好的NB对给定的item做分类。 在本系统中,我采用统计用户曾经操作过的图书的关键字,进行词频统计,统计出来的结果取前10个词来建立用户的配置文件。三相似度算法最后一步的推荐产生,如果上一步配置文件中使用的是分类模型,那么我们只要把模型预测的用户最可能感兴趣的n个item作为推荐返回给用户即可。而如果配置文件中使用的直接学习用户属性的方法(如Rocchio算法),那么只要把与用户属性最相关的n个item作为推荐返回给用户即可。如果需要计算相似度,常用的相似度的计算方法有欧氏距离,夹角余弦,汉明距离,杰卡德距离和杰卡德相似系数等。根据文献资料调研得知,在推荐系统中计算相似性一般采用余弦距离或者杰卡德系数。下面介绍两种计算方法。 1.余弦夹角 在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式为: (2.6)类似的,对于两个n维样本点a(x11,x12,x1n)和b(x21,x22,x2n),可以使用类似于夹角余弦的概念来衡量它们间的相似程度。即: (2.7)夹角余弦取值范围为-1,1。夹角余弦越大表示两个向量的夹角越小,夹角余弦越小表示两向量的夹角越大。当两个向量的方向重合时夹角余弦取最大值1,当两个向量的方向完全相反夹角余弦取最小值-1。2.杰卡德相似系数杰卡德相似系数是衡量两个集合的相似度一种指标。两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示。 (2.8) 将杰卡德相似系数用在衡量样本的相似度上时,样本A与样本B是两个n维向量,而且所有维度的取值都是0或1。例如:A(0111)和B(1011)。我们将样本看成是一个集合,1表示集合包含该元素,0表示集合不包含该元素。p :样本A与B都是1的维度的个数;q :样本A是1,样本B是0的维度的个数;r :样本A是0,样本B是1的维度的个数;s :样本A与B都是0的维度的个数。那么样本A与B的杰卡德相似系数可以表示为: (2.9)分母之所以不加s的原因在于对于杰卡德相似算法来说,它处理的都是非对称二元变量。非对称的意思是指状态的两个输出不是同等重要的,杰卡德相似度算法没有考虑向量中潜在数值的大小,而是简单的处理为0和1,不过,做了这样的处理之后,杰卡德方法的计算效率肯定是比较高的,毕竟只需要做集合操作。并且本系统对图书的内容进行分解出来的关键词很多,如果在计算相似度时采用余弦计算,那么对关键词降维是很困难的,采用杰卡德算法避免了这一麻烦。2.3实现使用的环境工具及技术一开发环境 本次实现所用到的开发环境为MyEclipse 8.5,MySql数据库,tomcat。 1.MyEclipse8.5MyEclipse(MyEclipse Enterprise Workbench ,简称MyEclipse)企业级工作平台,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,,SQL,Hibernate。同时支持AJAX,Hibernate,JSF,Struts,Spring, EJB3,JSP,JDBC,JavaServlet和数据库链接工具等多项功能。2.MySql数据库 MySql是一个快速、多线程、多用户的SQL数据库服务器。其优点有: (1)MySql的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的MySql能很容易充分利用CPU。 (2)MySql可运行在不同的操作系统下。 (3)MySql有一个非常灵活而且安全的权限和口令系统。当客户与MySql服务器连接时,他们之间所有的口令传送被加密,而且MySql支持主机认证。 (4)MySql拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性。事实上,MySql的稳定性足以应付一个超大规模的数据库。3.TomcatTomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。二 Servlet技术Servlet是用Java语言编写的程序,运行于支持Java的Web服务器或应用服务器中。Servlet先于JSP出现,提供和客户端动态交互的功能。Servlet可以处理来自客户端的HTTP请求,并生成响应返回给客户端。Servlet具有如下优点:可移植性,安全性和高效性。三JSP技术J S P是Java Server Page的缩写,是由Sun公司倡导、许多公司参与一起建立的一种应用范围广泛的动态网页技术标准,是Java语言编写的服务器端运行的页面。JSP页面由HTML代码和嵌入其中的Java代码组成,JSP可以被看作一种脚本语言,然而,作为一种脚本语言,在JSP中集合可以使用全部的Java类。支持JSP的服务器在JSP页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet是JSP技术的基础,而且许多大型的Web应用程序的开发需要Servlet和JSP配合才能完成。四JavaBean技术JavaBean是为Java语言设计的软件组建模型,具有可重复使用和跨平台的特点。可以通过JavaBean来封装业务逻辑,进行数据库操作,从而很好的实现业务逻辑和前台后台的分离。JavaBean可以分为两类,一类有用户接口,一类没有用户接口。一般在JSP中采用的是没有用户接口的,本系统也是采用此种类型的JavaBean。这类JavaBean只是简单的进行业务封装,如数据运算和处理、数据库操作等。一个标准的JavaBean应该具有如下几个特点:(1) JavaBean必须是一个公开的类,也就是类访问权限必须是public的。(2) JavaBean必须具有一个无参数的构造方法。如果在JavaBean中定义了自定义的有参构造方法,就必须添加一个无参数构造方法,否则将无法设置属性;如果没有定义的有参构造方法,则可以利用编译器自动添加的无参构造方法。(3) JavaBean一般将属性设置成私有的,通过使用getXXX()方法和setXXX()方法来进行属性的取得和设置。2.4本章小结本章介绍了基于内容的推荐系统的理论基础,介绍可以实现此推荐系统的算法都有什么,基于内容的推荐系统和基于协同过滤的推荐系统的比较以及各自的优缺点。最后还介绍到此次实现推荐系统所用到的环境工具。第三章 系统设计3.1系统概述3.1.1系统目标设计 基于内容的电子图书推荐系统目标比较明确,就是根据用户的历史行为(收藏或购买图书),在用户下一次登录的时候,向用户推荐出与用户看过的书最相似的电子书。系统可以支持管理员和用户分别登录。用户登录可以实现查询电子图书,收藏及购买电子图书;管理员登录可以实现电子图书的查询修改,删除,添加的功能,并且可以管理用户。实现系统的整体流程图如图3.1所示。开始登陆系统管理员登录推荐电子图书普通用户登录退出退出结束判断属性identity修改图书信息添加图书信息删除图书信息修改用户信息删信息除用户收藏图书查询图书加入购物车 admin visitor图3.1 整体系统流程图3.1.2系统设计思想基于内容的电子图书推荐系统工作时遵循着三层客户/服务器模式的交互过程。客户/服务器模式是一种软件体系结构,这种结构中包含了两类实体:客户机和服务器,实体的数量并没有限值,体系结构的层次也没有限制,目前实用较多的结构是两层客户/服务器结构和三层客户/服务器结构。三层客户/服务器按功能可以分成表现层、功能层和数据层三层,采用MVC的设计模式。其中Model部分有JavaBean充当,View部分由JSP充当,Controller部分由Servlet充当。三层分割明确,并在逻辑上相对独立出来。通过分层的思想使得程序执行更加清晰,各层只负责自己的功能,不会出现混乱。而且如果程序在后期需要增加功能或维护都会非常方便。3.1.3系统总体设计图本系统采用传统的三层架构包括表现层、业务逻辑层和数据模型层,在DAO层,本系统采用的是JDBC技术将数据持久化到数据库中。系统中的控制层采用Servlet做控制器,控制着系统的业务逻辑。视图层采用的是JSP页面做现实视图页面。数据库采用了MySql数据库存放数据。具体的总体架构如图3.2所示。视图页面控制层存放数据数据访问层数据持久层 JSP页面 Servlet DAO JavaBean 数据库(MySql) 表示层 业务逻辑层 数据模型层图3.2 系统总体设计图通过对以上三层客户/服务器结构,按三层客户/服务器结构进行开发的程序具有:1、功能丰富,可用性强;2、功能能越跨应用系统;3、系统能跨平台运行等优点。3.2需求分析3.2.1系统总体功能图本系统能够实现的功能分为以下几个方面:1.用户登录注册界面。 在用户登录时会进行身份验证,只有注册后的用户可以登录到系统中,享受被推荐权利。如果没有注册而登录,系统会提示注册信息。2.管理员登陆界面。管理员登录后可使用的权限为:查询修改删除用户信息,添加删除修改电子图书的相关信息。3.用户查询界面。登录后的用户根据查询条件,输入相关的信息,得到要查询的电子图书。当显示出符合条件的所有书籍后,点击详细信息查询,表明用户查询过了此电子书,并且还可以进行收藏或购买的行为。4.用户再次登陆显示推荐信息。当查询过电子图书的用户再次登录时,界面上会显示与该用户之前查询过的电子图书相似性较大的相关推荐。由此,得出系统总体功能图如图3.3所示基于内容的电子图书推荐系统管理员登录普通用户注册普通用户登录查询电子书收藏电子图书修改电子书查询电子图书购买电子图书添加电子书删除电子书修改用户信息删除用户信息推荐电子图书。图3.3 系统总体功能图3.2.2用例图 用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。根据3.2.1中描述的本系统可以实现的功能,依据其场景分析,使用StarUML图3.4 管理员用例图绘制出系统用例图。管理员的包括的功能有图书的管理和用户信息的管理,直接的行为有登录系统和查询图书,其用例图如图3.4所示。普通用户参与的活动是对图书操作的功能和系统的推荐图书的功能,其用例图如图3.5所示。图3.5 用户用例图3.3数据库设计3.3.1数据库需求分析 数据项和数据结构如下: 1.sys_book:电子图书数据库表,主要包括电子图书的id号,ISBN号,电子书名,作者,出版社,价格,摘要,关键词,封面。 2.sys_key:关键词数据库表,主要包括id,电子图书的id号,及电子图书的关键词。 3.sys_relate:用户历史行为数据库表,记录了用户收藏或者购买电子图书的信息,包括id,用户id,电子图书id和一个标记位(1表示收藏,0表示购买)。 4.sys_user:用户信息数据库表,包括id,身份证号,姓名,性别,密码,身份标识位(其中admin标记管理员visitor标记普通用户,用在登录系统时,辨别身份信息,不同的身份得到的权限不同)。3.3.2数据库逻辑设计开发应用系统重在分析需求,完成数据库中表的设计。在前面已经整理出数据库的需求,接着要根据相关内容合理的设计数据库表中涉及的内容,设定每个表的属性的类型及数据库表间的关联关系,从而完成数据库的逻辑设计。本推荐系统所使用的数据库表如下: 1.sys_book数据库表如表3.1所示。 2.sys_key数据库表如表3.2所示。 3.sys_relate数据库表如表3.3所示。4.sys_user数据库表如表3.4所示。表3.1 sys_book数据库表字段名字段类型长度允许空值主键idint11NO1bookNovarchar50YES0bookNamevarchar50YES0authorvarchar50YES0publishingvarchar50YES0pricedouble0YES0summaryvarchar1000YES0keywordvarchar1000YES0picvarchar200YES0表3.2 sys_key数据库表字段名字段类型长度允许空值主键idint11NO1book_idint11YES0s_keyvarchar100YES0表3.3 sys_relate数据库表字段名字段类型长度允许空值主键idint11NO1user_idint11YES0book_idint11YES0flagvarchar10YES0表3.4 sys_user数据库表字段名字段类型长度允许空值主键idint11NO1cardIdvarchar50YES0usernamevarchar50YES0passwordvarchar50YES0sexvarchar10YES0id

温馨提示

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

评论

0/150

提交评论