• 120
为了商家可以更容易去把握用户的个人喜好,同时也使用户能够及时获得自己所需要的相关图书而不用再去耗时耗力地自行查,本文设计和开发了图书推荐系统。此系统使用MVC 开发模式,前端使用JSP 技术,后台设计和数据库的链接是使用Java 进行的开发,数据库使用Mysql 。整个系统可以实现用户的注册登录、搜索和浏览图书、购买和收藏图书;系统的推荐图书;管理员的增删改管理图书。
由于信息技术的快速发展,互联网上的信息量正在爆炸式增长,这不仅使企业难以准确获取用户信息,而且使用户无法获得真正有用的信息。这对他们而言,使用网络反而达不到更方便和有效的目的,这也是网络时代信息过载的问题。图书作为人们日常生活中休闲放松、自我提升等的重要工具,自然也不能被科技发展的潮流所淘汰,图书推荐系统也就有了出现的必要。基于此,本文设计和开发了图书推荐系统,准确地分析用户的需求,为用户提供更好的购书体验。
1  系统分析1.1  需求分析
需求分析的作用是至关重要的,完整准确的需求分析是系统能否成功实现的关键,本图书推荐系统进行了详细的需求分析,先后了解过校图书馆、淘宝书籍网店、电子图书商铺等线上线下图书类商铺。本系统需要完成三个大的模块,分别是推荐模块、用户模块和管理员模块。用户模块下要实现的有用户登录和注册子模块、图书搜索和浏览子模块、图书加入购物车和订单子模块以及个人中心子模块;管理员模块下要实现管理员登陆子模块、图书管理子模块、用户管理子模块以及对当前销售榜单的下载子模块,其中图书管理模块中再包含图书的增删改模块,用户管理模块再包括对用户信息的查询和浏览模块。系统需要完成的业务功能如图1所示。
(1)用户模块
游客用户可以浏览系统主页,但游客要进行浏览图书等其他操作必须先进行登录。注册登陆成功后,用户可以进行系统提供的功能操作,在完成后,点击注销就会返回系统原始主界面。用户在登陆系统后,可在查询目标图书,如果查询成功则可以浏览图书信息,用户可以在这里选择将图书加入购物车操作。用户进入图书信息页面,可以进行将图书加入购物车的操作,加入购物车后,用户可查看自己加入购物车的图书,并可以在订单中选择支付方式并填写支付信息,订单开启后用户需选择付费方式,完成
后,系统将提醒发货。
图1 业务功能图
(2)管理员模块
管理员用户不可注册,直接在系统数据库中添加,管理员用户登陆之后才能使用管理员权限。当管理员进入系统后,可以对失效
图书以及缺货图书进行信息删除;而当有新书入库时,管理员需要添加图书信息;当图书价格、数量等信息变动时,管理员由此来修改图书信息。用户注册后,他的个人信息会在管理员模块更新,对于这个用户的信息,管理员可以进行浏览操作,但是不能
修改具体内容。
图2 数据模型
(3)图书推荐模块
用户第一次登录系统时,系统会默认推荐五本书,若用户产生
图书推荐系统的设计与实现
涡阳县第五中学  王捍军阜阳师范大学  王  稳
• 121
将图书加入购物车或购买等历史纪录后,系统会自动收集这些图书的特征属性,分析出用户可能感兴趣的其他书,并在用户下次登陆时推送给用户。
1.2  数据模型
本系统有书籍和用户两个的主要实体,它们之间通过购买操作和加入购物车操作来产生联系。数据模型如图2所示。
2  系统设计
2.1  图书推荐流程设计
首先,考虑书本的特征词的提取。在本系统中,每本书籍都有简要介绍,所以我们可以使用书籍的关键字来当做书籍的简要介绍内容,这些关键字由管理员在添加图书时进行录入。然后,需要考虑生成用户的配置文件,因为用户的配置文件表示用户的兴趣点,这些兴趣点是通过对用户对书籍的历史操作进行分析而得出来的。用户的将书籍收入购物车操作或购买书籍操作在一定程度上代表了用户的喜好。数据库中的relate表记录了被用户加入购物车或购买的书籍。在分析用户时,在数据库的relate表中获得与用户ID相对应的所有书籍。然后,从数据库的book表中提取与这些书的ID号对应的书籍简要介绍即关键字并进行叠加。而在叠加后,根据字频从高到低对单词进行排序,列出前5个单词,所以我们有理由认为
这5个词在某种程度上代表了用户的兴趣。最后,也就是推荐建议结果的出现。将表示用户兴趣的5个单词与每本书中的关键词进行比较,并使用余弦相似度算法去计算每本书与用户的配置文件之间的相似度。此时,就可以向当前用户推荐那些具有高度相似性的书籍了。至此,推荐功能的整个过程也就完成了。另外,由于新注册的用户没有对书籍进行相关操作,因此在首次登录时系统默认会推荐五本书。该图书推荐系统的实现流程图如图3所示。
2.2  个性化推荐的产生
推荐算法的核心思想是计算用户和对象之间的相似性。本系统使用基于余弦相似性的算法,该算法的概念是为每个用户和对象都各构建一个特征向量,然后将两个向量放置在向量空间模型中。在这个空间模型中,两个向量之间的角度清晰地使两者相似度表示出来,即两个矢量越相似,两个矢量之间的角度就越接近0,这个角的的cos值就越接近1。
图书的相似度计算公式如公式(1)所示:
(1)基于java的图书管理系统
其中x1k、x2k分别是a(x11, x12, …, x1n)和b(x21, x22, …, x2n)两个n维特征向量的特征词。系统把相似度比较大的图书推荐给用户。
2.3  数据库设计
本系统主要涉及的数据库关系表有图书表、用户图书关系表和
用户表等。图3 系统推荐图书流程图表1 book表
字段名字段类型长度允许空值主键book_id varchar50NO1 name varchar50NO2 price double10YES0 category varchar100YES0 pnum int10YES0 description varchar255YES0
表2 relate表
字段名字段类型长度允许空值主键relate_id int10NO1 user_id varchar50YES0 book_id varchar50YES0 flag varchar10YES0
• 122
表3 user表
字段名字段类型长度允许空值主键user_id varchar 50NO 1userName varchar 50YES 2nickName varchar 50YES 0passWord varchar 50YES 0email varchar 20YES 0updatetime
timetamp
256
YES
book (图书表),包含图书id 号、图书名、价格、封面路径、图书数量、关键词简介,如表1所示。
relate (用户图书关系表),存储用户加入购物车或者购买的图书的信息记录,包含关系id 、用户id 、书籍id 和一个状态标记(1表示收藏,0表示购买),如表2所示。
user (用户表),包含用户id 、姓名、昵称、密码、邮箱、更新时间,如表3所示。
3  系统实现
本系统使用MVC 开发模式,前端使用JSP 技术,后台设计以及和数据库的链接使用Java 进行开发,数据库使用Mysql 。
主界面是未登录用户和游客进入系统后的第一个界面,可以在
主界面上实现用户登录、游客注册、管理员页面跳转、浏览图书目
图4 系统主界面
图5 默认推荐界面图
录等功能,并且主界面还实现了促销图书的幻灯片显示。系统主界面如图4所示。
新用户进入系统后,系统会推荐五本默认的书籍,当老用户进入系统后,系统会根据用户的操作自动化推荐五本书。默认推荐界面如图5所示。
总结:用户个人信息以及交易数据爆发式增长,使得线上商家对用户个人数据的分析和对书籍的管理变得难上加难。而推荐系统的出现,使得商家可以更容易去把握用户的个人喜好,同时也使用户能够及时获得自己所需要的相关图书而不用再去耗时耗力的自行查,成功的实现了商家和用户的共赢。为此,本文设计和开发了图书推荐系统,该系统可以实现用户的注册
登录、搜索和浏览图书、购买和收藏图书;系统的推荐图书;管理员的增删改管理图书。当然系统中还有其他的很多问题,还需去改进,尤其是在推荐功能的实现中,要加入分词器提取关键词,而且在推荐算法中,也要加入同义词分析,这样能够更加准确地为用户推荐相关图书。
作者简介:王捍军(1983—),男,大学本科,中教一级,研究方
向:中学数学教学、大数据等。