目 录
1文献综述
1.1 引言
1.2 技术发展状况
2课题背景及开展研究的意义
2.1课题背景
2.1.1图书推荐系统发展背景
2.1.2开发语言框架发展背景
2.2开展研究的意义
1文献综述
1.1 引言
如今,推荐系统无处不在。在网上逛商城,购物,在音乐网站听歌,在社交网站发表自己的感受以及分享照片,网站服务提供商都会收集用户的访问记录以及用户的喜好,对用户的行为进行分析并且根据用户喜好以及用户群体统计信息,给用户提供相似物品的推荐以及定点广告投放,进而促进商家的销量,提高网站质量以及起到更佳的广告效果。
一般认为,推荐系统这个研究领域源于协同过滤算法的提出。从它的诞生到现在20多年中,很多学者和公司对推荐系统的发展做出了重要的贡献。随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载的时代。[1]而图书出版物等作为一个传统的信息载体,在人类发展的过程中不断增多,而一些大的互联网公司与网络图书销售商,比如谷歌、亚马逊等,一直在为图书的数字化做着贡献。从2004年谷歌宣布他的图书搜索服务之后,到2012年,共有两千万本图书扫描、经由光学字符识别并存储于数字化数据库中作为搜索数据。[2]这些数据为图书推荐提供了丰富的基础。
本平台采用BS结构,对数据库中的图书推荐系统的内容进行查询、处理,对相似度最高的查询结果进行展示,并且提供用户注册登录,采集用户行为的功能。在服务器端采用Spring MVC框架与对象持久化技术对图书信息进行查询与处理,在客户端使用浏览器网页以及脚本技术对数据进行展示与交互,最终达到图书推荐系统通过WEB平台展示与相关图书搜索的目的。
1.2 技术发展状况
Spring核心开发者Rod Johnson的文章“Introduction to the Spring Framework”中第一节的标题就是“Yet another framework”。[3]自从1999年,SUN发布了第一个Java企业框架,到2003年,Spring框架发布,这期间出现了许多官方的和第三方的Java EE框架,其中也有许多优秀的,比如Structs。而自从一发布,Spring Framework便以其独特的魅力吸引了大量的Java EE开发者。
Spring Framework通过合并最佳实践方法和简化开发,明显改善了人们设计和实现业务应用程序的方式。它为Java平台带来了一致性,我们可以利用Spring的这种一致性来使我们的应用程序变得更加一致。正是Spring给开发人员带来了在适当的地方应用相同的设计和编码模式所展现出来的这种API一致性,让开发人员能够更加专注于应用程序的业务逻辑而不是各种框架本身的语义,API的一致性引领并促进着开发的简单性,提高了开发的效率。
Hibernate是一种新的ORM映射工具,提供了从Java类到数据表之间的映射。其本质上是一个将数据库结构封装提供数据库服务的中间件。采用了XML、Java reflection技术,利用数据库以及一些如hibernate、properties、XML Mapping等配置文件来为应用程序提供数据持久化服务的。程序员可以像使用普通对象一样调用数据库的相关接口来实现相关操作,从而可以把重点放到业务逻辑的实现上。[4]
Maven提供了一整套软件项目管理的综合性方案,无论是编译,发布,文档还是团队协作,Maven提供了必要的抽象,它鼓励重用,并做了除了软件构建以外的许多工作。Maven的主要目标是使开发人员在最短的时间里有效地理解整个开发过程,它使项目构建过程更加容易,提供了统一的项目构建系统,提供有效地项目信息,并且为最佳开发实践提供准则。[5]
版本控制贯穿于整个软件开发的过程之中,它跟踪记录整个软件开发的过程,包括软件的每次修改与相关的文档更新。在空间上可以保证完成集中统一的管理,在时间上全程记录开发过程的每次更改细节。[6]控制版本、分支,对软件修改进行管理与分析,方便的进行回滚、分工统计以及软件开发进度、工作量统计,方便软件开发团队对工程的监督与控制。
2课题背景及开展研究的意义
2.1课题背景
2.1.1图书推荐系统发展背景
随着互联网的快速发展,网络中的图书信息量迅速增长,图书种类也日趋繁多,用户通过互联网要获得自己感兴趣的图书文章需要花费越来越多的时间。由此催生了图书推荐系统。图书推荐系统的基本作用是依据用户的访问记录,特定行为,分析用户的喜好,主动向用户推荐可能喜欢的图书与文献给用户,供用户参考。[7]推荐系统满足了用户个性化的需求,节省了用户搜寻信息的时间,获得和用户喜好相关的最热门最新的图书。在许多商务网站,社交网站中,都使用推荐系统来向用户推荐商品。
在线售卖领域,亚马逊拥有最好的图书推荐系统。在过去的十多年里,亚马逊投入了大量的精力去建立一个包含大众推荐和个人记录的高效个人推荐系统,其最显著特点就是所有的推荐都建立在对顾客以往的浏览记录和购买记录之上。[8]
亚马逊可以向用户精确的投放畅销书以及经典书推荐信息,每月有评有畅销书排行榜,通过简洁美观的介绍与醒目的导航,引导读者阅读与购买。另外,在畅销书的介绍中,还有本书在相关的分类栏目中的排名,并且有链接指向此分类的畅销排行榜,读者可以方便的查询同类书中最畅销的书籍。在书籍介绍底端还有购买过此书的人还购买了的书籍,购买的比例,以及同类书籍的推荐信息。在首页还有促销书的推荐,用于吸引没有明确目的,而想要以优惠的价格购书的消费者。在经典书方面,亚马逊推出年度畅销图书排行,年度编辑推荐100本畅销书等手段,依据惯性定律,进一步推动图书的销售。其中排序规则还根据用户的评价,人气、出版日期等,迎合不同人的喜好。
2.1.2开发语言框架发展背景
在“J2EE”这个缩略词被第一次介绍给世人的时刻,也许没有几个人可以预料出它在日后的奇特历程。那是在1999年6月的JavaOne年会上,时任Sun公司Java企业开发部门主管的Mala Chandra兴奋地预告了Java世界的这位新成员。
对于开发者,J2EE是一套现成的解决方案,采用这个方案,企业应用开发中的很多技术难题(包括跨平台移植、事务处理、安全性等等)就会迎刃而解,“信息像一条不间断的河流,经过各种各样的平台和设备,从企业应用系统的这一端流向那一端”。[9]
大部分的软件项目都与数据库有关,而一个复杂的数据库会消耗程序员大量的精力来管理,传统的使用JDBC API直接访问数据库会将数据库访问混入业务逻辑之中,这样会造成数据库的难于管理与代码的结构混乱。由此,人们寻找一种可以将数据库与业务逻辑分开在不同层次的方法,这样,就不需要了解数据库的结构,在业务逻辑中也不需要写SQL脚本。Hibernate这样的对象关系映射方案就应用而生,程序员只需要集中精力解决业务相关代码[10],而数据库操作变得像操作Java类一样统一简洁。
2.2开展研究的意义
图书推荐系统web平台对于图书推荐系统内容的获取,图书推荐效果的展示都有重要的意义。如果没有此平台,那么图书推荐系统就无法收集用户行为,统计用户喜好,展示推荐结果以及实现推荐系统的原有意义。[11]任何一个推荐系统都需要网络或者客户端平台来展示。[12]而正是由于互联网,服务器以及浏览器客户端,这些从网络发展之初便形成的结构,一起构成了网络的繁荣。
而基于Java的Spring MVC轻量级企业应用开发框架,为WEB平台的开发提供了统一的标准,降低了开发优秀企业应用的门槛,开发者可以以更少的投入,构建出结构完善,易于维护,扩展性能高的应用。[13]
数据持久化技术作为相对Spring框架来说比较小的一个部分,优化了WEB开发的结构,将数据库层与业务逻辑分开,同样对开发的便捷性与代码的可读性和易于维护性做出了巨大的贡献。[14]
项目管理工具对于软件工程的构建、管理与维护,提高工程开发效率,管理能力,以及对未来的预期与项目的分工协作,都起到了促进作用。
这些成熟的企业应用框架工具的研究,为构建图书推荐系统提供了方法,提高了生产率,进一步促进了图书推荐系统的研究,促进了网络推荐领域的研究进展,为商家、社区以及科研机构起到了积极的作用。[15][16]