1. 研究目的与意义
21世纪的信息技术推动着社会的信息化发展,数据每天都在更新变化,日新月异,人们进入信息爆炸的时代,从海量的信息中获取有用的信息变得困难,形成“信息丰富但资源有限”的局面。同样在高校领域也是存在这一问题,大学生面对着图书系统众多的图书资源,却无法准确 、高效的查找出对自己有用的图书。因此,如何解决为高校大学生推荐合适的书籍成为一个难点,同时也是必须要解决的问题。
为高校大学生推荐合适的书籍,首先借助大数据挖掘技术为学生甄别出自己需要或感兴趣的图书,通过分析读者的阅读兴趣,为高校的大学生精准的推荐对他们所感兴趣或者有用的图书,细致周到的个性化推荐服务是高校图书馆在新时代发展的重中之重。
本课题首先通过学习协同过滤算法,通过学习不同偏向的协同过滤算法为大学生推荐书籍,比较提取出更适合的算法,进一步的应用选取的算法,更加精准的为大学生推荐感兴趣的书籍,同时也有助于高校图书馆解决“重藏轻用”的问题,提高图书利用率。
2. 课题关键问题和重难点
本课题拟解决的关键问题:
第一通过对国内外不同文献的阅读,依据学者对现有的图书推荐系统的研究,学习不同的协同过滤算法。
第二结合高校图书系统现有的资源条件以及协同过滤算法的实际应用现状,为高校大学生设计出一个合适的图书推荐系统,关于图书的借阅 、推荐等先关功能。
3. 国内外研究现状(文献综述)
近年来,许多学者对高校图书系统进行了深入的研究,张希平等人通过对目前高校系统存在的问题进行分析,指出目前高校存在的问题是不能满足读者的个性化需求,引入个性化推荐系统等方面的研究[1]。李萍等人通过实验验对比采用了传统的图书馆图书推荐系统与基于数据挖掘的图书馆图书推荐系统优劣,认为传统的图书馆管理系统已经远不能满足读者的使用要求,提出在系统采用数据挖掘技术,以Apriori算法为核心,与图书数据库深度结合,可以实现根据搜索热词、个人借阅历史等数据,挖掘整理出读者可能感兴趣的书目的功能,更好的适应读者需求[2]。徐同伟等人将改进个性化推荐技术应用到图书信息系统中,改善图书推荐系统性能,提出可以根据读者的个人信息,将读者划分到对应的借阅群体中,利用读者的借阅和检索历史记录,建立图书推荐模型,对传统图书推荐模型进行改进,将推书推购的思想与图书推荐系统进行对接的方式,更加可以提高图书推荐系统的精确性,减少读者检索图书的时间,提高馆藏资源的利用率[3]。
大数据技术也被加入到图书系统的研究中,Dhiman Sarma等人通过研究指出聚类算法可以提高图书推荐系统的预测能力在图书推荐中使用聚类算法对图书进行评分,从而为用户推荐新书[4]。赵宇风学者使用最传统的协同过滤算法,通过对具有相似阅读习惯读者的借书数据进行偏好评分计算,从而为指定读者推荐符合其偏好的图书列表[5]。王捍军等人在系统中使用基于余弦相似性的算法,使得商家更好的把握用户的喜好,为用户推荐书籍[6]。王仲钰等人通过构建某高校近200名学生图书借阅记录作为算例,通过多维属性间关联规则数据挖掘技术,采用协同过滤算法、关联算法对不同用户群体图书借阅数据进行分析,探索具有针对性的图书推荐服务策略,提升图书馆服务能力,将协同过滤算法和关联规则算法有效结合起来[7]。
其中最广泛使用的协同过滤方法也存在一些弊端,AnandarajA等人分析传统的协同过滤方法,指出在一般使用的协同推荐系统中出现的冷启动等问题,提出可以加入量流技术,并通过实验验证其具有有效性[8]。董杨帆学者认为当前图书推荐系统使用解决协同过滤方法存在的稀疏性问题,针对这一问题设计设计了一种改进的基于概率关键词的协同过滤方法,通过图书流通记录和图书关键词属性数据分别建立流通矩阵和关键词矩阵,指出利用概率分布计算用户借到符合其关键词模型条件图书的概率,建立概率关键词模型[9]。刘佳奇等人指出传统的基于用户的协同过滤算法虽然使用较多但存在用户冷启动,推荐热门占比过高,推荐精度不够高等一系列问题,通过结合高校图书借阅的特点,对这些问题做了改进,提出计算用户相似度来为相似的学生互相推荐对方没有借阅过的图书,是基于用户的协同过滤算法的思想,从用户角度解决了基于用户的协同过滤的问题[10]。张德青等人从分析常用的推荐算法着手,详细给出了基于用户的协同过滤推荐算法的计算过程,并通过实验验证了推荐结果的有效性。同时针对基于协同过滤算法存在的数据稀疏性问题,提出优化方案,进而可以将该算法运用于高校图书馆的推荐系统设计中[11]。刘涛学者提出了在奇异值分解和 KNN 基础上修正关系的综合推荐方法,提高了基于协同过滤推荐的推荐精度 [12]。
4. 研究方案
1系统功能结构
系统总体功能结构如图
图1 面向大学生的个性化图书推荐系统总体功能图
1)后台管理部分
首页:管理员进入后台的界面,可以看到一个完整的界面。
个人中心:关于个人的信息部分。
用户管理:管理员可以对用户进行增删改查的一些对用户进行管理的操作。
书籍管理:管理员可以对书籍进行相关的操作,如添加一本新书。
书籍分类管理 ;管理员可以对书籍进行类别的区分。
借阅管理:管理员可以对用户借阅的图书进行管理。
订单管理:管理员可以对用户的下单情况进行相关的操作。
2)前台部分
用户登录注册功能:用户可以在界面上完成账号的登录,没有账号的也可以注册获得。
书籍浏览:用户可以对书籍进行浏览
个人中心管理:用户可以在这里对自己的信息进行查看,对自己的信息的修改,查看图书借阅.。
购物车功能:用户对自己喜欢的书籍可以进行下单购买。
2研究方案
(一)首先运用文献分析法,在大量阅读相关的参考文献,根据阅读的文献同时结合自己的理论知识和相关的实践经验,分析解决问题的可行性,最终确定研究课题。然后,在继续阅查相关文献,了解所研究课题的背景、历史、现状以及前景,从而全面地、正确地了解掌握相关知识。同时,根据课题及参考文献,按照提出研究课题、分析问题、解决问题的思路,撰写课题知识框架,然后撰写课题大纲。最后,在对理论进行收集和分析后,根据现有研究项目分析法的整体体系,采用研究项目分析方法进行分析和设计,实现理论与实践的结合,使理论更加合理,设计更加合理。其次运用比较分析法,协同过滤算法有基于用户和基于物品的两个过滤算法,通过对比分析两个不同算法的优缺点,选取适合的算法运用到实践中,最后通过访谈的方式,通过对本校的大学生进行访谈,随机访问路过的学生,通过交流的方式来了解大学生的一些图书偏好,并在这一过程中及时记录相关的信息。
(二) 研究思路
(三) 数据库表的设计
表1:书籍评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 |
id | bigint |
| 主键 | 主键 |
addtime | timestamp |
| 创建时间 |
|
refid | bigint |
| 关联表id |
|
userid | bigint |
| 用户id |
|
nickname | varchar | 200 | 用户名 |
|
content | longtext | 4294967295 | 评论内容 |
|
reply | longtext | 4294967295 | 回复内容 |
|
表2:热门图书评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 |
id | bigint |
| 主键 | 主键 |
addtime | timestamp |
| 创建时间 |
|
refid | bigint |
| 关联表id |
|
userid | bigint |
| 用户id |
|
nickname | varchar | 200 | 用户名 |
|
content | longtext | 4294967295 | 评论内容 |
|
reply | longtext | 4294967295 | 回复内容 |
|
表3:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 |
id | bigint |
| 主键 | 主键 |
name | varchar | 100 | 配置参数名称 |
|
value | varchar | 100 | 配置参数值 |
|
表4:用户
字段名称 | 类型 | 长度 | 字段说明 | 主键 |
id | bigint |
| 主键 | 主键 |
addtime | timestamp |
| 创建时间 |
|
yonghuzhanghao | varchar | 200 | 用户账号 |
|
yonghuxingming | varchar | 200 | 用户姓名 |
|
mima | varchar | 200 | 密码 |
|
xingbie | varchar | 200 | 性别 |
|
lianxifangshi | varchar | 200 | 联系方式 |
|
touxiang | varchar | 200 | 头像 |
|
money | float |
| 余额 |
|
表5:购物车表
字段名称 | 类型 | 长度 | 字段说明 | 主键 |
id | bigint |
| 主键 | 主键 |
addtime | timestamp |
| 创建时间 |
|
tablename | varchar | 200 | 商品表名 |
|
userid | bigint |
| 用户id |
|
goodid | bigint |
| 商品id |
|
goodname | varchar | 200 | 商品名称 |
|
picture | varchar | 200 | 图片 |
|
buynumber | int |
| 购买数量 |
|
price | float |
| 单价 |
|
discountprice | float |
| 会员价 |
|
goodtype | varchar | 200 | 商品类型 |
|
表6:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 |
id | bigint |
| 主键 | 主键 |
username | varchar | 100 | 用户名 |
|
password | varchar | 100 | 密码 |
|
role | varchar | 100 | 角色 |
|
addtime | timestamp |
| 新增时间 |
|
表7:地址
字段名称 | 类型 | 长度 | 字段说明 | 主键 |
id | bigint |
| 主键 | 主键 |
addtime | timestamp |
| 创建时间 |
|
userid | bigint |
| 用户id |
|
address | varchar | 200 | 地址 |
|
name | varchar | 200 | 收货人 |
|
phone | varchar | 200 | 电话 |
|
isdefault | varchar | 200 | 是否默认地址[是/否] |
|
表8:token表
字段名称 | 类型 | 长度 | 字段说明 | 主键 |
id | bigint |
| 主键 | 主键 |
userid | bigint |
| 用户id |
|
username | varchar | 100 | 用户名 |
|
tablename | varchar | 100 | 表名 |
|
role | varchar | 100 | 角色 |
|
token | varchar | 200 | 密码 |
|
addtime | timestamp |
| 新增时间 |
|
expiratedtime | timestamp |
| 过期时间 |
|
表9:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 |
id | bigint |
| 主键 | 主键 |
addtime | timestamp |
| 创建时间 |
|
userid | bigint |
| 用户id |
|
refid | bigint |
| 收藏id |
|
tablename | varchar | 200 | 表名 |
|
name | varchar | 200 | 名称 |
|
picture | varchar | 200 | 图片 |
|
type | varchar | 200 | 类型 |
|
inteltype | varchar | 200 | 推荐类型 |
|
表10:书籍分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 |
id | bigint |
| 主键 | 主键 |
addtime | timestamp |
| 创建时间 |
|
shujifenlei | varchar | 200 | 书籍分类 |
|
表11:书籍
字段名称 | 类型 | 长度 | 字段说明 | 主键 |
id | bigint |
| 主键 | 主键 |
addtime | timestamp |
| 创建时间 |
|
shujimingcheng | varchar | 200 | 书籍名称 |
|
fengmian | varchar | 200 | 封面 |
|
shujifenlei | varchar | 200 | 书籍分类 |
|
bufenneirong | longtext | 4294967295 | 部分内容 |
|
zuozhe | varchar | 200 | 作者 |
|
chubanshe | varchar | 200 | 出版社 |
|
shuliang | varchar | 200 | 数量 |
|
fabushijian | date |
| 发布时间 |
|
pingjia | varchar | 200 | 评价 |
|
thumbsupnum | int |
| 喜欢 |
|
crazilynum | int |
| 不喜欢 |
|
clicktime | datetime |
| 最近点击时间 |
|
clicknum | int |
| 点击次数 |
|
price | float |
| 价格 |
|
表12:热门图书
字段名称 | 类型 | 长度 | 字段说明 | 主键 |
id | bigint |
| 主键 | 主键 |
addtime | timestamp |
| 创建时间 |
|
shujimingcheng | varchar | 200 | 书籍名称 |
|
fengmian | varchar | 200 | 封面 |
|
shujifenlei | varchar | 200 | 书籍分类 |
|
bufenneirong | longtext | 4294967295 | 部分内容 |
|
zuozhe | varchar | 200 | 作者 |
|
chubanshe | varchar | 200 | 出版社 |
|
shuliang | varchar | 200 | 数量 |
|
shangshishijian | date |
| 上市时间 |
|
pingfen | varchar | 200 | 评分 |
|
thumbsupnum | int |
| 喜欢 |
|
crazilynum | int |
| 踩 |
|
clicknum | int |
| 点击次数 |
|
price | float |
| 价格 |
|
表13:订单
字段名称 | 类型 | 长度 | 字段说明 | 主键 |
id | bigint |
| 主键 | 主键 |
addtime | timestamp |
| 创建时间 |
|
orderid | varchar | 200 | 订单编号 |
|
tablename | varchar | 200 | 商品表名 |
|
userid | bigint |
| 用户id |
|
goodid | bigint |
| 商品id |
|
goodname | varchar | 200 | 商品名称 |
|
picture | varchar | 200 | 商品图片 |
|
buynumber | int |
| 购买数量 |
|
price | float |
| 价格 |
|
discountprice | float |
| 折扣价格 |
|
total | float |
| 总价格 |
|
discounttotal | float |
| 折扣总价格 |
|
type | int |
| 支付类型 |
|
status | varchar | 200 | 状态 |
|
address | varchar | 200 | 地址 |
|
tel | varchar | 200 | 电话 |
|
consignee | varchar | 200 | 收货人 |
|
logistics | longtext | 4294967295 | 物流 |
|
goodtype | varchar | 200 | 商品类型 |
|
(四) 可行性分析
Eclipse软件是一个开放源代码的、基于Java的可扩展开发平台,是可以满足相关功能的编写;mysql数据库管理系统可以实现对数据的存储,能够及时的保存和更新数据,谷歌浏览器具备查看网络浏览器请求与响应的功能;知网可以免费下载相关文献,同时豆瓣中存在大量的不同热度的图书排行,可以进行查看,目前的笔记本配置12G运行内存,512G的存储空间是可行。个人已经开始学习各个软件的使用,在参阅论文学习后能够具备完成的能力,具有可行性。
5. 工作计划
1第一阶段(选题阶段)—2022年11月至12月。开会交流确定的毕业论文题目,并在指导老师的安排下完成选题。
2第二阶段(开题答辩阶段)—2023年2月初。在指导老师的带领下,通过查阅资料,完成开题报告文档的编写,进行开题的答辩。
3第三阶段(初稿阶段)—2023年3月。通过认真的调研,查阅资料,完成毕业论文的初稿编写提交于指导老师,由指导老师提出修改意见,在不断的完善初稿。
以上是毕业论文开题报告,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。