基于云计算技术的图书馆荐购系统设计
2023-02-08朱锰钢
朱锰钢,张 驰,张 县
(1.西安文理学院 图书馆,西安 710065;2.西北政法大学 图书馆,西安 710122;3.西安欧亚学院 图书馆,西安 710065)
图书馆作为知识的海洋,是为用户提供图书借阅和学术支持等服务的重要场所.在传统图书馆管理模式中,图书处于被动借阅地位,通常由用户的学习需求和兴趣偏好所决定,存在图书资源利用率低、查找困难与拓展性差等弊端.[1]因此,为避免图书管理员选购图书的盲目性,带动用户参与图书馆资源建设的积极性,以及提升图书馆的整体服务水平,图书馆荐购系统越来越受到业界的高度关注[2-3].通过该系统用户可以向图书馆推荐购买自己所需图书,从而最大化满足用户对图书馆的个性化服务需求,对促进图书馆的集约化和数字化发展具有重大意义[4].
当前已有很多相关学者对此类系统的设计展开一系列研究,例如李澎林等人和张晗等人,分别利用数据挖掘与用户画像完成系统设计[5-6].这两种系统的荐购界面比较友好,能满足不同用户的图书荐购需求,但系统面临的数据稀疏性问题影响了图书推荐质量,且在面对超大数据集时,系统的存储容量和计算能力受硬件限制较大.
云计算技术作为一个新型的计算机科学领域,因具有虚拟化的特性,能够将计算机资源逻辑抽象成资源池,实现信息整合、资源共享和按需服务等功能,且硬件成本和维护费用较低,能有效扩展图书馆的发展空间和完善图书馆的数字化服务功能.因此,本文设计基于云计算技术的图书馆荐购系统.
1 图书馆荐购系统设计
1.1 系统总体结构
设计基于云计算技术的图书馆荐购系统,将云计算技术作为核心,使用户能通过客户端和移动终端等设备接入Web云,达到图书馆信息实时双向传递的目的.该系统总体结构用图1描述.
图1 图书馆荐购系统总体结构
(1)数据源层包含大量图书馆累积的数据,由图书书名、图书摘要等图书数据,以及检索记录、浏览数据等用户信息两部分构成,由于这些数据以不同的形式存储于各个机器中,因此需要对其进行整合,并将用户及图书特征从中提取出来.
(2)云计算平台层包含数据预处理、分布式Hadoop计算、分布式存储和管理模块四部分.依次通过数据预处理的数据抽取、清洗、转换、映射以及集成过程处理数据源层的图书馆数据,以消除其内噪声;分布式Hadoop计算是该层的核心,依据应用需求,选用适当的分析调度形式划分预处理后图书馆数据的计算串行任务,使其变为能够并行的子任务,并分配到各个slave Task Tracker节点上执行;分布式存储利用分布式文件系统HDFS分块存储经过计算的图书馆数据,以便于业务应用层的调用;管理模块由资源、备份和安全管理等部分组成,负责为该层提供相应的管理服务.
(3)业务应用层主要由图书荐购、云/Web图书检索和图书推荐引擎组等模块构成.依据云计算平台层存储的图书馆数据,图书荐购模块采用图书馆荐购流程,向用户提供图书荐购服务;通过云图书检索模块可以查询电子图书、高校馆藏和公共馆藏等云端图书馆藏信息,使用户详细了解所需图书的获取途径;Web图书检索模块内嵌Google图书API和豆瓣等功能,用户利用该模块能够浏览图书封面与目录等详情,从而判断是否荐购此图书;图书推荐引擎组模块的推荐引擎,运用基于文本语义和用户偏好的图书推荐算法,向用户推荐感兴趣的同类型图书;此外系统评估模块可以实现系统精准度、多样性和稳定性等方面的评估,以满足图书用户的个性化荐购需求.
(4)用户交互层是连接用户和系统的桥梁,通过液晶显示模块可以将荐购等操作界面和查询及推荐等结果展示给用户,系统管理员利用该界面可以查看与设置图书推荐引擎组参数,并实现整个系统的运行管理.
1.2 系统硬件设计
1.2.1 图书推荐的图书推荐引擎结构
用于向用户提供图书推荐服务的图书推荐引擎组模块中,单个推荐引擎结构用图2描述.该模块由特征向量采集、特征-图书初始推荐以及推荐处理3个单元组成.采用提取装置从用户行为数据库中获取用户行为特征,并使用转换装置将其变为相应的特征向量[7-8],其与从用户属性数据库内直接获取的用户属性特征共同构成特征向量数据库,在此基础上特征-图书初始推荐单元,运用基于文本语义和用户偏好的图书推荐算法获取图书初始推荐结果,利用推荐处理单元的过滤器对图书初始推荐结果进行筛选,同时排序器依据用户反馈机制收集的用户反馈信息排列筛选结果,将其经过推荐解释单元的数据解析后,通过用户交互层的液晶显示模块可视化展示图书最终推荐结果.
图2 图书推荐引擎结构图
1.2.2 图书馆信息展示的液晶显示模块结构
系统用户交互层中,具有图书馆信息展示功能的液晶显示模块具体结构用图3描述.该模块选用的显示器型号为YD-502彩色液晶VRAM型,其容量和点阵数分别为64k×8、320×240,并且能够显示8种颜色,是因为显示器上任意点都包含红(R)、绿(G)和蓝(B)3种颜色,同时无法调整灰度.DC/DC转换器可生成液晶需要的各类驱动电压[9];DC/AC逆变器负责冷阴极背光灯的控制;液晶驱动电路通过分时技术可以并行完成数据的显示和写入操作[10],从而达到实时更新画面的目的.
图3 液晶显示模块结构图
1.3 系统软件设计
1.3.1 图书馆荐购流程
系统业务应用层中的图书荐购模块,通过图4所示流程实现图书馆荐购.用户登录图书馆荐购系统后,输入荐购图书信息,若能够在云端检索到该图书,并且未被荐购,则通过Web图书检索功能浏览该图书详情,以快速确认是否荐购该图书,确认后判断该图书所属分类已荐购总金额和图书馆年度已荐购总金额等是否超出既定标准[11-12],在未超标的情况下即可成功荐购.如果用户在云端未能检索到所需图书,或者用户浏览图书详情后拒绝荐购,则向用户推荐感兴趣的图书,例如同类型、同作者等;如果推荐的图书被拒绝荐购,则重新推荐;针对完成荐购的图书不能重复操作,仅能添加关注.
图4 图书馆荐购流程图
1.3.2 基于文本语义和用户偏好的图书推荐算法
系统业务应用层中图书推荐引擎组模块,使用文本语义结合用户偏好的方法完成图书推荐.利用TF-IDF算法提取图书书名、图书摘要和图书目录三种文本信息中的关键词,以消除文本内低信息量词汇对图书推荐结果的影响[13-14].通过公式(1)描述TF-IDF算法的形式:
(1)
式中:图书文档用d描述,其总数和其内词汇分别用N、t描述,d内t的呈现频率用ntd描述,图书文本Di在d内出现的总次数用Nd描述,存在词汇t的图书文档总数用Dt描述,词汇t的词频和逆文本频率分别用TF(t,d)、IDF(t)描述.当某些词汇只呈现于单个图书文档中时,词汇的TF-IDF值等于0,为防止此种情况发生,将拉普拉斯平滑添加到IDF(t)的分母部分,可得到公式(2)所示的TF-IDF形式:
(2)
通过上式求出图书文本Di中每个词汇t的TF-IDF值后,各图书文本的关键词即为依据TF-IDF值排列的前n个词汇.引入向量空间模型将上述提取的图书文本关键词转化为向量形式,进而计算图书文本相似度.假设D={D1,D2,…,Dn}表示数量为n的图书文本集,提取其关键词后所得共有的m个词汇集合用W={w1,w2,…,wm}描述,则依据向量空间模型能获得公式(3)所示的词汇-文本矩阵Q,用以描述每个图书文本数据:
(3)
式中:图书文本Di中词汇t的权值用矩阵内各元素qij描述,其通常为t在Di中的TF-IDF值,该值与t在Di中的重要度具有正比关系,此时Q内行号为i的向量qi则代表图书文本Di,使用公式(4)描述qi的形式:
(4)
式中:j的取值介于[1,m]范围内.
通过公式(5)求解图书文本向量的余弦值,便能获得图书文本Di和Dj之间的语义相似度:
(5)
式中:向量内积和范式分别用“·”、‖·‖描述.
设u代表某个图书用户,其检索记录中的图书编号列表用Lu={l1,l2,…,lm}描述,该用户的兴趣偏好集合用X={x1,x2,…,x2n}描述,其为用户最近检索的2n本图书.假设图书文本库全集用B={b1,b2,…,bk}描述,其相应的文本向量用P={p1,p2,…,pk}描述,集合X中各图书相应的文本向量用Pu={p1,p2,…,p2n}描述,且满足Pu⊂P.通过公式(5)求出Pu中某图书Di和全集B中不考虑Lu的图书之间的文本相似度,获得与Di相似度最高的图书sDi,处理完Pu内全部图书后,获得用户近邻集和相应的图书文本相似度集,分别用{sD1,sD2,…,sD2n}、{sim1,sim2,…,sim2n}描述.依据图书文本相似度集的降序形式排序用户近邻集,用户u的图书推荐结果即为排序靠前的n本图书.
2 结果分析
以某大型图书馆作为实验对象,所需数据源为其内图书数据和用户信息,该图书馆馆藏书籍共计81 267本,注册用户为8 129人,使用本文系统完成该图书馆的荐购服务,以验证所设计系统的荐购性能.
该系统每日会获取到超过1 800万条的数据信息,为保证系统进行图书馆荐购所需数据源的实时性,比较不同图书用户数量下,系统每秒产生数据量和每秒消费数据量,具体用图5描述.分析图5可以发现,系统每秒产生数据量和图书用户数量具有正比关系,且呈线性增长趋势,系统每秒消费数据量与系统每秒产生数据量变化趋势一致,但始终保持最高.因此表明,本文系统能够及时处理产生的数据,并且处理能力不受图书用户数量的影响,满足图书馆荐购所需数据源的实时性需求.
图5 每秒产生数据量和每秒消费数据量对比
两个图书用户A和B的荐购图书名称分别为《鱼翅与花椒》、《Go程序设计语言》,两种图书的作者编号分别为F2380以及F3617,在系统云图书检索模块未找到以上图书的情况下,系统针对图书用户需求产生的前10条推荐结果用表1描述.分析表1可以看出,两个图书用户的荐购图书类型分别为美食和编程,使用本文系统产生的前10条推荐结果类型与图书用户荐购图书类型完全相同,且排在靠前位置的均为同一作者所著图书.因此可得,本文系统针对不同图书用户均具有较理想的图书推荐性能,符合图书用户的个性化需求.
表1 部分图书推荐结果记录
本文系统的Web图书检索模块,可以为图书用户提供荐购图书详情浏览功能,相应界面用图6描述.从图6可以看出,本文系统的Web图书检索模块支持图书精确检索和按类型检索两种方式,并且图书信息十分丰富,包含图书编号、作者、封面以及简介等详情,同时具备荐购和添加关注的功能.因此表明,本文系统的Web图书检索模块,能为用户确认是否荐购所浏览图书提供有效参考.
图6 荐购图书详情浏览界面
统计分析某日上午8~9时,本文系统获取的前8条图书荐购记录,具体用表2描述.分析表2可以看出,当图书处于未荐购状态,且相应金额未超标时,用户可以成功荐购所需图书,否则图书荐购失败,满足系统设定的约束条件.因此表明,本文系统具有较优异的图书馆荐购效果,可以避免图书重复荐购和荐购金额超标的情况.
表2 某日上午部分图书荐购记录
3 结语
图书馆是收集、整合图书资源,并为用户提供借阅和参考服务的重要机构,其持续扩张的海量数据信息与云计算技术的大量资源集群特点相吻合,因此本文设计基于云计算技术的图书馆荐购系统.该系统对持续增长的海量数据具有较好的处理能力,能有效保证图书馆荐购所需数据源的实时性,并且针对不同图书用户的推荐效果均较为理想.此外,在为用户确认是否进行图书荐购提供可靠依据的同时,还可以避免图书重复荐购和荐购金额超标的情况.