摘 要
网络信息技术的高速发展,使得高校图书馆的服务空间日益扩大,依据个人特点的针对性服务逐渐成为新服务模式的主导趋势。对于大多数用户而言,很难在大量的学术图书馆中快速找到他们想要的材料。另外,随着时代的不断发展,越来越多的新兴学科,学科的融合更是普遍。各种专业知识的爆炸性增长使大学图书馆必须扩大书籍的储存量,这是为建立和实施图书馆定制推荐系统提供了基本条件。个性化图书推荐服务改变传统图书馆被动服务方式,能根据用户的兴趣偏好主动地向用户推荐图书。
本文的重点是依据用户的多样需求追踪图书的最近资源,且及时告知用户,实现个性化的服务,且提高资源的使用效果,改变图书馆的服务模式。从被动到主动。协同过滤推荐算法的实现,可以让大学的师生们更方便快捷,且准确的得到自己需要的书目。从而避免了搜索时间造成的浪费。本文所做的工作主要包括以下几点:
(1)本文提出了对冷启动问题的优化、对数据稀疏性问题的完善、对缺失数据的处理操作。
(2)本文既说明了涉及的相关技术,同时进行了可行性和准确性评估,并讨论了个人定制书籍推荐中使用的推荐算法和混合算法。
(3)本文结合推荐系统的实际需求程度,基于SpringBoot的图书推荐系统的研究与实现。
Abstract
With the rapid development of network information technology, the service space of university library is expanding day by day, and personalized service has gradually become the mainstream of new service mode. For most users, it is difficult to find the information they need in the large collection of university library. In addition, with the continuous development of the times, there are more and more new majors, and the professional integration is becoming stronger and stronger. The expansion of all kinds of professional knowledge makes university libraries have to expand their own knowledge storage, which also provides the basic conditions for the construction and implementation of library personalized recommendation system. Personalized book recommendation service has changed the passive service mode of traditional library, which can actively recommend books to users according to their interests.
The problem to be solved in this paper is to track the latest library resources according to the different needs of users, inform users at the first time, realize the optimization of personalized service and resource utilization, and change the library service mode from passive to active. Collaborative filtering recommendation algorithm enables college teachers and students to find the knowledge books they need more accurately and faster, reduces the search pressure of the library and saves a lot of time. The work of this paper mainly includes the following points.
(1) In this paper, the optimization of cold start, the improvement of data sparsity and the processing of missing data are proposed.
(2) This paper discusses the technology involved, analyzes its feasibility and accuracy, and discusses the personalized book recommendation algorithm and hybrid algorithm.
- Combined with the actual demand level of book recommendation system, this paper studies and implements a Book Recommendation System Based on springboot.
Key words: SpringBoot, recommendation algorithm, LFM
目 录
摘 要
Abstract
目 录
图目录
表目录
第一章 绪论
1.1 选题背景及意义
1.2 国内外研究现状分析
1.2.1 图书管理系统的研究现状
1.2.2 推荐系统的研究现状
1.2.3 研究综述
1.3 研究目标及研究内容
1.3.1 研究目标
1.3.2 研究内容
1.4 本文组织结构
第二章 系统需求分析
2.1 系统可行性分析
2.1.1 经济可行性
2.1.2 操作可行性
2.1.3 技术可行性
2.2 系统角色需求分析
2.3 系统功能需求分析
2.3.1 图书借阅需求分析
2.3.2 图书归还需求分析
2.3.3 图书推荐需求分析
2.3.4 系统管理需求分析
2.4 系统非功能性需求分析
第三章 关键技术与难点分析
3.1 推荐系统简介
3.2 相关推荐算法
3.2.1 基于用户推荐
3.2.2 基于项目推荐
3.2.3 混合推荐
3.2.4 LFM算法
3.3 系统关键问题及解决方案
3.3.1 冷启动问题
3.3.2 数据稀疏性问题
3.3.3 数据缺失问题
第四章 系统总体设计
4.1 系统设计目标
4.2 系统总体架构设计
4.3 系统总体功能结构设计
4.4 系统网络架构设计
4.5 系统数据库设计
4.5.1 MySQL数据库
4.5.2 实体E-R图设计
4.5.3 数据库表结构设计
4.6 系统数据备份及恢复设计
4.7 系统接口设计
第五章 系统详细设计与实现
5.1 系统开发工具及环境
5.1.1 开发工具
5.1.2 开发环境
5.2 系统设计原则
5.3 系统功能模块详细设计与实现
5.3.1 图书借阅详细设计与实现
5.3.2 图书归还详细设计与实现
5.3.3 图书推荐详细设计与实现
5.3.4 系统管理详细设计与实现
第六章 系统测试
6.1 系统部署
6.2 系统测试方案
6.3 系统功能测试
6.4 系统性能测试
6.5 系统测试结果
第七章 总结与展望
参考文献
附录
致谢
图目录
图1 管理员用例图
图2 读者用例图
图3 图书借阅业务流程图
图4 图书归还业务流程图
图5 图书推荐业务流程图
图6 系统管理业务流程图
图7 推荐系统模块之间的关系
图8 推荐系统的推荐流程
图9 用户-项目图
图10 形成邻居集的过程
图11 项目-用户图
图12 混合推荐技术的组合方式
图13 LFM模型
图14 系统总体架构图
图15 系统总体功能结构
图16 系统网络拓扑结构图
图17 图书属性图
图18 读者属性图
图19 借阅属性图
图20 处罚属性图
图21 管理员属性图
图22 图书借阅功能结构图
图23 图书借阅类图
图24 查询借阅情况时序图
图25 图书借阅流程图
图26 图书归还功能结构图
图27 图书归还时序图
图28 系统管理功能结构图
图29 读者添加时序图
图30 Tomcat服务器结构
图31 图书借阅实现界面
表目录
表1 用户-图书表
表2 项目-用户表
表3 图书信息表
表4 读者信息表
表5 借阅信息表
表6 处罚信息表
表7 管理员信息表
表8 磁带库指标特性
表9 用户登录功能测试结果
表10 用户登录功能测试结果
表11 并发用户数与事务执行情况
表12 系统响应时间
第一章 绪论
1.1 选题背景及意义
随着信息技术的更新和科技的高速发展,我们逐渐地从信息匮乏的阶段过渡到大数据的时代,在互联网的大潮中,人们很容易地就能获取到更多、更全面的信息,但是从哲学的角度来看,可以知道事物具有两面性,当我们获取信息的方式日益快捷的同时,我们需要从这些大量的信息中获得自己真正感兴趣的信息,那么对于信息消费者而言,如何识别并选择出高质量的信息就成为了一项巨大的挑战。另外,对于互联网公司、网络信息提供商来说,如何让自己的信息从海量的数据中脱颖而出,并获得认可,需要投入大量的人力物力支持。正是由于上述矛盾,推荐系统产生了。推荐系统从最初的研究发展到现在,一直都是电子商务系统里的一个极为重要的角色,它的任务就是在用户和信息之间建立一个桥梁,不仅可以方便用户获得自己需要的信息,还能够确保项目的信息被推送给可能对它感兴趣的用户,从而实现信息生产者和信息消费者的双赢。
书籍在人类社会发展的阶梯,传承了一代又一代人的智慧精华,拥有至关重要的地位。人类社会总是向前不断发展,文明程度越来越高,人们对知识的需求和追求欲望愈发强烈,书是知识的主要表达形式,而图书馆作保存着大量的知识,犹如一个仓库,人们想要学习知识,普离不开图书馆,因为图书馆书籍浩如烟海,想要在图书馆迅速找到自己需要的书籍不是件容易事,提高图书馆的效率已成为人们迫切希望的问题。就目前来看,很多图书借阅系统还是存在很多问题,如界面繁杂、操作不便、不能实时推荐等,因此建设一个界面友好、操作简便的具有实时推荐的图书馆管理系统非常重要。图书馆传统的管理方法难以满足于当前时代发展的现实需要,在图书馆当中引进信管系统,能够有效地改善对应的管理基本过程,为管理者和读者带来相当大的方便。优秀的信管系统可以增强图书馆内部管理,避免内部图书资源的流失,优化读者借阅的基本体验,切实地提升检索效率,并且带来个性化的图书推荐功能,由此为所有用户带来具有针对性的体验。因此本论文开展对图书推荐系统进行研究具有较高的现实意义。
1.2 国内外研究现状分析
1.2.1 图书管理系统的研究现状
20世纪50年代初,最早的国外图书馆管理系统起源于美国。而图书馆管理系统的真正发展是在1964年LC提出了著名的“马尔克计划”,即以机器可读形式地记录图书馆的书目纪录。到了1970年以后,自动化系统逐渐成形,还开始出现联机编目协作网。直到1990年以后,图书馆的局域网发展到了与Internet相连接目前,在国外,像一些比较先进的国家,如美国和澳大利亚等,有几个比较大的软件公司已开发出比较著名的图书馆管理系统,如Aleph500系统和Horizon系统等。Aleph500系统的智能化程度较高,它所采用的关系数据库很大程度上提高了系统的安全性能和稳定性能,它还釆用了两种结构:多层客户机服务体系结构和分布式逻辑结构。当下位列世界领先的水平的Horizon系统,其自动化程度较高。它是一个全面开放的系统,它的产生基于互联网,需要采用UI界面和B/S结构的相关体系结构,可用于多重标准平台上。
随着科技的发展,大多数以前依赖纯人工管理模式的图书馆正逐渐通过使用计算机来实现对图书馆管理,管理及服务逐步实现自助化及自动化,随着电子书的普及,图书馆内的文献资源也将逐步实现电子化、数字化,届时读者只需在图书馆借阅自己所需书籍即可。图书馆在社会中的角色非常重要,负责图书采购、编目整顿和推动文化传播等各项工作,有力地保障了人们的学习和研究,为他们提供借阅、参考资料文献的服务。
在图书馆管理系统研究上,马玉祥提出了一个基于Deep Web数据集成的系统结构,并且根据这个系统结构对Deep Web数据集成中最为困难的“模式匹配”问题进行了深入的研究分析,进而提出了相应的模型和算法。这一算法和模型的问世为Dep web馆藏图书集成查询系统的设计与实现提供了至关重要的技术支持,并且在Deep Web数据集成方面有较大的应用价值。
田青重点对有关图书馆图书管理系统的相关使用功能需求进行介绍,并在此基础上提出数据库设计方案,并对此方案进行改进,弥补了之前相关数据库设计的不足。刘晶等研发的小型图书管理系统,用C#开发前端界面和后台业务,用SQL作为数据库来存放读书信息。实现了信息管理、借还操作、图书排列及信息查询等多个必须功能。从结果上看前期工作已基本上满足日常图书管理工作的基本需求。何芸将移动AR与代理技术相结合,提出其在图书馆领域的应用架构,运用Android、VuforiaSDK、JADE等工具研究该架构的具体实现,并对架构中移动AR、情景敏感代理和用于排架、查询和动态情景更新的算法进行剖析。与当前图书管理系统相比,该系统使得服务与管理更泛在、更容易以及更智能。通过进一步的修改,这个系统可以有效地执行当前真实世界中图书馆繁重的图书管理任务。
1.2.2 推荐系统的研究现状
追本溯源,上个世纪九十年代,明尼苏达大学的一个名为“GroupLens”的研究小组的研究人员设计出了一款GroupLens系统。该系统用来向用户推荐其感兴趣的文章,它作为推荐系统的“鼻祖”,设计出了基于用户的协同过滤推荐引擎。而正是这个推荐模型为后来的推荐系统提供了方向,基于这个模型,人们又设计出了一系列的推荐算法,诸如:基于SVD的协同过滤推荐算法、基于项目的协同过滤算法等,目前常用的推荐算法还有基于内容的推荐、基于协同过滤算法的推荐、基于知识的推荐等。
国内的推荐系统起步较晚,但是到现在也有了较好的应用。淘宝、网易云音乐等网站或者软件上都会有“推荐”模块。其中,淘宝推荐系统的核心目标就是将买家、卖家和商品相互联系起来,其推荐规则有:基于内容的推荐;采用搜索引擎的技术,根据用户的实时搜索记录为其推荐优质的相关的宝贝;优质宝贝的推荐;基于关联规则的推荐等。
国外的亚马逊对推荐算法是基于ItemCF的研究,即是基于物品的协同过滤算法,是一种基于统计的算法,通过对上述算法的优化,形成余弦相似度算法,进行物品相似度的计算,建立起物品的相似度矩阵。由于亚马逊的用户数量比较庞大,可达到千万至上亿个,所以他们采用基于物品的相似度矩阵代替基于用户的相似度矩阵,大大的从时间和空间上减少了开销。
美国康奈尔大学的研究学者设计了一款叫做Mylibrary的网络个性化的电子图书推荐系统。该系统是基于查询分析设计的,它由两大部分组成:MyLinks和MyUpdates。其中,MyLinks可以让用户自己来搜索并整理包括本校电子图书以及其他互联网中的电子资源,相当于针对用户个人的自主服务的主页;MyUpdates部分可以及时地通知读者新到的电子图书资源,比如说,定期地告知读者他们可能会感兴趣的新到的图书、期刊等,这样可以帮助读者减少查询资料的时间,还提升了读者对系统的使用兴趣。
国内的最为有名的图书推荐系统有“豆瓣读书”、当当网的图书推荐系统等。其中,豆瓣网的“豆瓣猜”用到了基于用户的协同过滤推荐技术,首先对于如何确定应该推荐哪些种类的图书,豆瓣猜的核心理念在于为用户提供“具有媒体性的产品”,也就是说为用户提供尽可能多样化的、符合其兴趣的、还能够被广泛传播的图书;然后对真实的数据集进行深入的挖掘分析,根据用户对的关注、评分、收藏等行为分析出用户的偏好特点,从而将符合用户兴趣的图书进行推荐。总的来说就是先广泛撒网,然后根据用户的反馈有的放矢地进行个性化推荐。另外,豆瓣网的推荐引擎还使用了分布式的平台对推荐算法进行改造,缩短了推荐过程中的运算间,减少了运算的内存,有效地缓解了推荐系统面临海量数据时存在的瓶颈问题。
通过了解国际上图书推荐系统发展的实际情况,发现其重点存在如下问题:
(1)在对图书馆管理系统的发展历程进行全面了解的基础上可发现,其在初期仅为一种单机版的系统,但在局域网技术持续创新的基础上,逐渐产生了C/S模式的图书馆管理系统,在以往深受人们的欢迎,其在20世纪末期中,是运用最为频繁的一种系统架构模式,现阶段人们仍旧持续运用该种模式的图书馆管理系统,大部分地方图书馆以及高校内运用的管理系统仍是该类系统。虽然相较于初期的系统,C/S模式相对较为良好,但其也存在着不可避免的问题,例如资源共享性、平台封闭性、功能弹性等方面的问题,而现阶段传统业务难以与数字资源整合起来,难以运用数字资源实现相应的技术标准,因此,对新技术进行开发以使图书馆管理需求得到满足的工作开展刻不容缓。
(2)以往的图书鉴购系统大体上是基于手工建立的,因此采访人员在对荐购图书记录进行统计以及读者对图书的荐购等方面的便利性相对较低。
(3)在以往的图书荐购模式中,由于信息传递相对较为复杂,读者在对图书进行荐购时,会规定其应在特定的时间地点内集中开展,过程相对较为繁杂,而在该种地点和时间便利性相对较低的影响下,读者运用图书荐购系统的次数相对较少,所以,图书荐购系统推广的难度相对较高。
而本文是在与图书馆存在的具体的业务需求融合的基础上设计了图书推荐系统并实现了相应的功能。在搭建一个将图书馆业务包含在内的集中统一的一体化管理系统的基础上,对处于领先地位的网络爬虫和大数据技术进行运用,以使网站和该系统间资源的整合可得以良好的达成。在基础功能得到满足的标准下,还额外将图书推荐功能加入其中,将私人特定的读书喜好个性化的推荐至所有用户。与以往的图书推荐系统对比,该系统可个性化定制或推荐图书至所有的用户,使读者对图书的查阅和借阅更加高效,进而使用户的满意度得以提高。
1.3 研究目标及研究内容
设计出一个存在着实时推荐功效、操作可靠便捷、界面简单友好的图书推荐系统是本文研究设计工作的主要宗旨。使图书馆各种资源如期刊、图书等有关信息的借阅更加高效,使图书馆管理人员的负担得以缩减是本文研究设计工作的主要目的。为了对所有读者的信息资源进行良好的整合,对本系统开发的统计模块进行细分,将其划分为四大模块,其中包含图书馆所有方面的内容,可全面的统计图书馆总体的业务。
在总结本系统存在的需求目标的基础上,得到以下结论:
(1)将图书信息供应至读者,使其可对图书进行查询、借阅、归还;
(2)将实时推荐功能供应至读者;
(3)达到全流程追踪图书借阅和归还过程的数据信息的目标;
(4)将图书借阅排行榜予以供应,将实际的数据信息供应至图书管理员。
本文的主要研究内容有如下几个方面:
(1)分析图书管理系统及推荐系统的研究背景、国内外研究现状分析,并发现限制其发展的因素。
(2)深入研究推荐算法,包括常见的协同过滤算法、基于内容的推荐算法等,并在此基础上使用模糊聚类算法进行优化改进。
(3)结合SpringBoot框架,将改进的推荐算法合理地并行化,使之可以高效地运行在Web平台之上。
(4)使用图书的相关数据集对系统进行功能测试和性能指标测试,并且展示结果。
1.4 本文组织结构
第1章,绪论,对本文的章节安排和重要内容、图书馆推荐系统研究现阶段的具体情况、项目研发的意义和背景进行了简要的论述。
第2章,系统需求分析,首先对系统的可行性进行了研究,在可对系统进行研发的先决条件下,对系统应实现的性能和所有功能、所有环节的业务流程进行全面的研究。
第3章,推荐系统相关技术介绍,大体上论述了系统开发时具体运用的推荐技术等。
第4章,系统总体设计,在该部分中,开始对系统地设计相关的功能和模块,并且根据对系统的软件构成和网络拓扑的设定,对该系统中应存在的数据库和应实现的所有性能进行了深入全面的设计。
第5章,系统详细设计与实现,遵循预先设计运用编程技术完成运行界面以及功能详细设计工作。
第6章,系统测试,针对系统的运行和程序运用相匹配的测试工具进行检验,使系统投入运用前的最后一步工作得以完成。
第7章,总结与展望,归纳系统研究流程,并展望将来的发展情况。
第二章 系统需求分析
在对系统进行开发的过程中,最为关键的一项工作就是需求分析,与此同时,该项工作也是难度最高的工作。由于在需求调研工作开展过程中,存在着系统变更所产生的费用、用户需求实时变动、系统研发人员和用户沟通存在障碍等问题,因此只有基于对用户具体需求进行明确开发系统,系统的完善程度才有所保障。
2.1 系统可行性分析
在学校图书馆规模持续增大以及图书馆数量持续增多的形势下,对该部分相对较为庞大的体系进行管理是难度极高的一项工作。由于图书的状况是实时发生变动的,因此针对图书必须运用动态管控方式。而该件事情就管理者而言,相对较为繁杂,其中,每天必须完成借阅、查询、存储图书信息这一常规业务。在初步开发阶段,应开展大量的调研工作,以对用户具体存在的需求进行全面的了解,进而对开发的规模和目标进行明确,系统可行性研究工作的开展离不开前期的调研工作。而兴办单位的实力和规模决定着图书馆的大小和规模。
图书馆中有很多书籍和资料,书籍数量接近数千万,而读者在搜索所需的书籍时通常需要花费大量不必要的时间。尤其是随着现代科学技术的飞速进步,知识激增,图书资源的增长也越来越快。快速“爆炸”的资源通常超出了许多读者可识别的范围。因此,依据通常的搜索通过优化算法和搜索模块获得的大多数书籍详细信息都不是您想要或喜欢的。因此,为了更好地处理该特定要求以及获取特定信息时出错的问题,现在对搜索推荐系统进行了很多讨论。但是,这种推荐系统存在很多问题。例如,当读者基本上缺乏信息,数据和信息时,很难进行数据的定量分析和统计分析;由于许多推荐系统都采用协作过滤算法优化算法,因此它们必须依赖客户才能获得书籍的审阅信息,因此许多搜索推荐系统,尤其是公共图书馆的推荐系统都很难获得这种资源。由于读者仅搜索书籍,因此不涉及对书籍资源的评论。在很大程度上,存在特定情况。某些类型的书籍属于少数派,或者客户群相对太小,因此不能有效地推荐一些如今没人借用的新书。
因为学校图书馆的借阅者这项工作并不具备商业利益,因此为了使系统的研发成本得以缩减,应缩短系统的设计开发时间,使该项工作在短期内就可完成。在所设计和实现系统时,应对开发效率提升、开发成本缩减目标的达成高度重视,系统操作也应实现实用、简单、方便的目标。本文在对该系统开展成本/效益分析工作的过程中,主要运用的是任务分解技术,通过观察分析结果可发现,其可实现通过最小的投入获取到最大的回报的目标。由于就复杂程度而言,该图书管理信息系统处于一般程度,与此同时,其可参考大量的成功的高校图书管理信息系统的搭建案例,因此该系统开发过程相对较为便捷。因此其成本投入相对较小。在该系统投入使用之后,图书管理工作的开展将十分便捷。即可使工作更加高效,又可对不必要的开支和中间环节进行缩减。所以就经济角度进行考量,该系统的开发完全可行。
该系统的界面应最大限度的追寻易用、简洁的目标,基于标准化对界面的新颖度和美观度进行考量,可最大限度的友好的完成。而且该系统的操作极为简单,运用的人员大体上并不需求培训,仅依赖联机帮助和用户手册就可对该系统的操作进行全面的掌握。就图书管理者而言,其可在运用该软件的过程中真切的感受到该特征。总而言之,在该用户组织内,该系统的操作方式完全可行。
就技术可行性角度进行考量,该系统的编程语言和后台数据库分别运用的是Java语言、MySQL数据库。并且在开发阶段,对AJAX、XML、Photoshop等大量技术进行了全面的运用。基于我们的现状以及了解对比,最终开发环境选取了Eclipse,其可使系统的开发迅速完成,其数据库访问通道是内部集成的,可使数据库的管理更加便捷。该环境从实质上讲,是一个集成式开发环境,是将程序开发、查错、测试等功能集为一体的开发环境。其已发展成为现阶段系统开发过程中首要选取的技术工具。该种开发语言环境相对较为专业、面向对象的编程工具,在对大量成熟、具备着强大功能的应用程度进行开发时相对较为适用,尤其是在对数据库运用程序进行开发的过程中,其应是第一选择。除此以外,MySQL不但可在大中型数据库管理中运用,搭建分布式关系数据库,也可在桌面数据库开发过程中运用。对所有编程语言十分井筒的老师和计算机专业的学生构成了该系统的研发团队。其中极大多数人员都具备信息系统开发的经验。所以,通过观察人员团队知识架构可发现,该部分人员对开发该图书管理信息系统的能力已经全面掌握。除此以外,学校在该几年的系信息化环境改良的过程中,对于网络环境来讲,学校已经全面覆盖了学校网络。
所以,从互联网环境以及系统研发人员素质方面均进行考量,就技术而言,该系统的开发完全可行。
2.2 系统角色需求分析
在图书管理的现状和用户提出的要求的基础上可知,系统重点存在着管理员和读者两种类型的用户角色。
(1)管理员,主要职责是对系统后台和前台进行维护,系统管理员可完成系统内包含的每一项功能,例如图书管理、读者管理等,如图1所示,为具体的系统管理员用例图。
(2)读者。读者要到图书馆借阅图书,他们到图书馆来主要是借书、还书、预约图书、交罚金等。读者用例图如图2所示。