图书馆图书推荐系统分析与设计

2019-11-15 02:22陈子昂孙道贺李民
消费导刊 2019年43期
关键词:标签图书图书馆

陈子昂 孙道贺 李民

1.天津市汇盛创世科技发展有限公司; 2.新智航大数据科技(天津)有限公司;3.天津理工大学中环信息学院; 4.天津市汉拓计算机技术研究所

一、引言

目前高校的图书馆资源愈发丰富,但是却出现学生找书难,图书借阅率低的问题,为了摆脱以上困境,本课题拟分析,设计,实现一套针对大学图书馆的个性化图书推荐系统。推荐系统是一种特殊形式的信息过滤系统。推荐系统通过分析用户的历史兴趣和偏好信息,可以预测用户可能会喜欢的项目,从而向用户推荐相应的项目[1]。

该系统可以为不同用户提供个性化服务,实现用户登录信息管理,借还功能管理,图书基础信息管理,图书标签功能管理,图书评论功能管理,搜索功能管理。在性能上用新的架构提高系统的响应速度。

二、图书馆图书推荐系统的研究意义

传统的提高图书利用率和查找图书的速度的方法,比较常用的是模糊搜索和分类别查询。模糊搜索方法,在搜索时只用输入一个大概的关键字,系统就会给我们找到相应的资源。这就是模糊搜索。分类查询方法对应中图分类号。

以上方法都属于简单的字符匹配查找。其弊端是,用户进行搜索时只能进行精确查找,不会出现用户可能感兴趣的图书推荐。此外,如果用户只是进行简单搜索,也难以发现自己的兴趣和偏好。

Collaborative Filtering 协同过滤法,是应用较广的推荐算法,该算法简单,易于理解,工程上好实现,准确率高,同时在高校学生用户数目这个数目量级上计算速度还可以接受。针对高校图书馆的场景特性,本系统对基于用户的协同过滤(UserCF),基于物品的协同过滤(ItemCF),基于标签的推荐算法做了融合模型。协同过滤算法在工业界已有成熟的例子,为高校图书馆的图书推荐提供了理论依据。国内高校图书馆暂时没有大规模应用推荐算法做图书的推荐,本系统能在一定程度上填补这个空白;用关键词抽象为描述向量来度量不同图书的关系解决了高校图书馆如何对图书评分这一问题。

通过个性化推荐系统,提高图书的利用率,提高了同学们寻找图书的准确度,提升了同学们学习阅读的兴趣。

三、图书馆图书推荐系统的关键技术

由于图书馆的数据量相对较大,对不同用户和其偏好书籍进行匹配,直接用传统的关系性数据库性能堪忧,所以用Redis做缓存,Redis是一种Key-Value类型的内存数据库产品,全名为远程字典服务 (REmote DIctionary Server),Redis适用的场景很多,并且可以直接用于数据存储服务[2]。

用Django+Nginx做并发模型,这样可以在1s内实现页面的加载访问。Nginx是一个高性能的web server。Nginx具有很强的处理高并发的能力,并且轻便简洁。在搭建网站时,要选择与网络使用环境以及硬件条件相匹配的服务程序,以提升网站的性能[3]。Nginx具有的优势,使其受到很多网站的青睐。这里我们用Nginx作为web server。

解决了这两个大难点后,剩下的用Python做为开发语言,可以加快开发速度,提高可维护性。用MySQL做数据库。用Bootstrap做响应式布局,实现跨平台的,在不同尺寸设备上的访问。Bootstrap是目前最流行的开发框架之一,是一个响应式的web 前端框架,本身包含了很多非常漂亮的样式,对于前端开发人员来说上手方便[4]。

由于有较多的图片,用腾讯云的对象存储做图片存储,对象存储通过Hash等索引方法,直接将数据定位到存储介质的具体位置,无需通过逐层查找。在物理上是扁平结构。但在逻辑上,对象存储也提供了虚拟的树状结构的逻辑视图,而且这种虚拟的树状结构对于不同的用户可以不同[5]。

加上腾讯云的CDN分发,可以加速图片加载同时节省服务器带宽。

CDN(Content Delivery Network,即内容分发网络),具有“互联网加速器”之称,其对于加快互联网的速度,提高网络的稳定性,具有非常重要作用[6]。

CDN分发会将我们再对象存储中的文件分发到全国的各个省市子节点,用户在访问我们网站的时候会从从最近的节点下拉文件,加速网站静态文件的加载速度。

图书推荐系统主要采用了UserCF和ItemCF的混合推荐算法,利用网络爬虫提取图书相关特征向量,利用UserCF和ItemCF计算关系度。

网络爬虫(Web Crawler),又称为网络蜘蛛(Web Spider)或Web信息采集器,是一个自动下载网页的计算机程序或自动化脚本,是搜索引擎的重要组成部分。网络爬虫通常从一个称为种子集的URL集合开始运行,它首先将这些URL全部放入到一个有序的待爬行队列里,按照一定的顺序从中取出URL并下载所指向的页面,分析页面内容,提取新的URL并存入待爬行URL队列中,如此重复上面的过程,直到URL队列为空或满足某个爬行终止条件,从而遍历Web[7]。

四、图书馆图书推荐系统的功能架构

图书馆图书推荐系统分为五大模块,如图1所示,包括图书管理模块,基本用户信息管理模块,图书推荐模块,系统搜索模块,讨论帖管理模块。

图1 系统功能模块图

系统的图书管理功能,包括图书信息的管理:包含图书入库、移库,和图书信息更新。图书评论管理:包括用户发布图书评论,管理员删除图书评论。图书标签管理:包含管理员添加图书标签,删除图书标签,修改图书标签。图书借阅的管理:包含用户借阅图书,归还借阅图书。

系统用户的管理功能,包括用户信息的注册,登录用户的信息验证,管理员后台管理的功能,对用户权限的管理。

系统的图书推荐功能,本文的重点,包含基于用户的图书推荐算法UserCF,基于物品的图书推荐算法ItemCF。还有新用户的冷推荐功能。

系统的搜索功能,包含对馆藏图书的检索,对用户的搜索,对讨论帖的搜素。

系统的讨论帖功能,包括用户发布讨论帖,修改讨论帖,管理员删除不合规帖子,用户回复讨论帖,用户给讨论帖点赞,用户收藏讨论帖,给讨论帖点赞等功能。

总结:本系统的开发能填补高校图书馆在个性化图书推荐上的空白。让图书馆的图书资源能更好的服务用户。从开始设计到落地实践。本系统的开发证明推荐系统在高校图书馆领域的可行性。随着时代的进步,未来将有更多的算法应用在图书馆上,通过本次系统的开发,不仅做出了推荐系统。还融合了云计算技术,研究了如何做一个高性能,高并发的系统。这对以后其他系统的研究也十分参考意义。最终,用户打开网页时,响应速度在1s以内,推荐准确度在90%以上。完成了既定目标。

猜你喜欢
标签图书图书馆
图书推荐
欢迎来到图书借阅角
无惧标签 Alfa Romeo Giulia 200HP
图书馆
不害怕撕掉标签的人,都活出了真正的漂亮
班里有个图书角
标签化伤害了谁
基于多进制查询树的多标签识别方法
去图书馆