【基于协同过滤算法的图书系统设计与实现13000字(论文)】_第1页
【基于协同过滤算法的图书系统设计与实现13000字(论文)】_第2页
【基于协同过滤算法的图书系统设计与实现13000字(论文)】_第3页
【基于协同过滤算法的图书系统设计与实现13000字(论文)】_第4页
【基于协同过滤算法的图书系统设计与实现13000字(论文)】_第5页
已阅读5页,还剩36页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

II基于协同过滤推荐算法的图书推荐系统设计与实现摘要:近些年以来,由于互联网飞速的发展与进步,信息过载已经成为一个较为普遍的现象。网络中的图书资源也在指数式的增长,但是在网络中的图书资源分布十分不均且种类繁多,用户想要找到自己想要的图书不是一件容易的事情。为了能够让用户可以更高效的搜索自己喜爱的图书,获取更加优质且合适的图书资源,本课题以Python语言为基础实现对图书信息的爬取。通过Python语言并利用Django框架实现了图书网站的搭建,并且拥有图书搜索、评论、评分、收藏、推荐和后台管理功能,同时还可以运用协同过滤算法帮助用户更加高效地进行图书的选择。关键词:图书爬虫Python语言Django框架协同过滤推荐算法目录1绪论 11.1研究背景和意义 11.2当前发展现状 11.3可行性分析 21.4本章小结 32相关技术综述 32.1开发工具 32.2数据库环境 42.3基于用户的协同过滤算法 52.4基于项目的协同过滤算法 62.5本章小结 63需求分析 63.1需求分析 63.2系统总体功能结构 83.3系统用例图 83.4本章小结 94系统设计 94.1系统技术实现架构 94.2数据的存储及使用 104.3数据库设计 114.4爬取图书并将数据入库 134.5用户登陆注册 144.6图书搜索 154.7图书评论与打分 164.8图书收藏 174.9图书推荐 174.10后台图书数据管理 184.11本章小结 185系统功能及算法实现 185.1主界面实现 185.2模块功能实现 195.3算法实现 265.2本章小结 276系统测试 276.1系统测试的目的及意义 276.2系统测试步骤 276.3系统的功能性测试 286.4系统的模块测试 286.5本章小结 367结论 377.1设计成果 377.2总结 37参考文献 391绪论1.1研究背景和意义一直以来,现代计算机信息技术和移动互联网技术都在以一个较为迅猛的势头进步,人们不再会遇到信息匮乏的情况,取而代之的是信息过剩。而在这样的背景下,从如此多的信息中找到符合人们喜好的信息并不是一件容易的事情。但是相对而言,对于信息来说,想要匹配到对自身感兴趣的用户也变得越来越困难。而本课题所要研究的推荐系统任务,就是把信息与用户连接。试想当用户打算购买一本书,例如《CPrimePlus》。用户需要做的只是走进书店并根据图书的名字选择购买即可。同时还能通过淘宝、京东、当当等大型网站搜索,进行购买。但是这种方式必须以用户具有明确的购买需求为前提,明确自己所需要的究竟是哪本书。但是,如果用户并没有确定好的图书选择,用户可以通过预先定义的类型或标签搜索自己感兴趣的方向的图书,并通过推荐算法找到适合自己的图书。这是个性化推荐系统的工作。1.2当前发展现状国内图书网站有起点读书,潇湘书院等老牌图书网站,新兴的图书网站也有很多。很多大型网站有很多高质量作品,但是各种图书资源种类繁多并且分散,想要从中找到自己感兴趣的图书对于读者是一个比较麻烦的方面。对于老牌图书网站,像起点和潇湘书院等有大量的高质量作品和可以根据读者自定义偏好对读者进行图书推荐。对于小型的图书网站有很多新人作者的作品是别的网站所没有的,但是其图书推荐方案没有成熟。所以设计一个网页图书爬虫系统,对图书进行获取,然后进行图书推荐和用户根据喜好进行搜索拥有很大的潜力,可以方便读者对很多图书的获取并根据喜欢选择性阅读。另一方面,基于协同过滤推荐算法的推荐系统与其他基于先进算法的系统类似,可以看作是一个比较先进的思想,因为它是一种在网络时代以外都无法使用的个性化信息检索工具,所以它具备其独特之处。人们在大数据时代和互联网越来越普及的情况下逐渐意识到,大量信息的非针对性推广是耗时费力且收效甚微的,推荐系统的价值就得以体现出来。通过多年以来的积累和发展,它逐渐成为一个独立的问题,并已广泛应用于多个平台,例如广告投放、新闻推荐、抖音、淘宝、知乎。1.3可行性分析系统主要运用Python语言进行设计,利用Python网络爬虫技术对网页图书进行爬虫程序的运行,爬取数据,然后将爬取到的内容存入数据库。之后利用Django框架设计网站,在前端将页面展示给用户,用户根据自己的喜好阅读图书,进行图书的收藏评论打分等功能,网站可以利用协同过滤算法对用户进行图书的推荐,在后端可以进行数据的管理。1.3.1技术可行性可行性分析主要是判断软件和硬件是否能按质量完成我们的任务,首先对软件进行分析。开发:Python语言将作为本课题所使用的语言,它是一门脚本语言,同时也是一种解释性语言,所以被大量的用于科学计算、机器学习等方面,同C++语言相比较而言,它有着更为简洁的语法,能够使开发人员把注意力集中在功能自身。对于Python这门语言来说,发展出了许多可以进行Web开发的框架,例如Django,Flask等,Django是本课题所选择的框架,与Flask框架对比来说,Django是一个高级别PythonWeb开发框架,可扩展性强、代码开发较为简单、开发十分迅速均为它的优势。Django框架所采用的模式是MTV(Model、Template、View)模式,它具有相当丰富的框架功能,并且具有最多的模板扩展选择,但是对于Flask框架而言,它仅仅提供Web服务器这一种支持。本课题的系统采用图书爬虫技术把图书爬取下来,并运用协同过滤推荐算法来帮助用户进行更好的图书选择。在大量的用户数据中可以找到行为相似的用户,随后协同过滤推荐算法会让行为类似的用户成为邻居,再按照相似的用户所喜欢的内容进行排序,再向用户展示出所推荐的图书目录。运行环境:项目所依赖的运行环境包括Windows10系统,Python3.7版本的解释器,PyCharm是一个进行大规模Python项目管理的工具,能够应用在本次项目上。硬件:只需要市面上可以正常工作的电脑即可,性能越高,运行时越顺畅。通过以上的分析表明,软件的制作过程具有可行性。1.3.2法律可行性在环境搭建和系统所使用的软件和技术都是社区版,或者付费购买了正版使用权限,不涉及侵权盗版问题,也不会因为使用这些软件开发项目带来知识产权纠纷。在网站爬取的过程中只爬取公开的数据,并在信息中注明网站来源,提供网站的原始地址及连接。同时在项目开发过程中尽可能做好安全防护工作,不断完善系统的漏洞,在保证用户资料的安全基础上进行项目的开发与拓展,项目研发不违法。因此,本系统在法律方面是可行的。1.3.3经济可行性本课题在系统开发的过程中的设备是笔记本电脑,软件使用的pycharm社区版,所以在整个系统的开发过程中不存在经济问题,整个系统在经济上是可行的。1.4本章小结本章主要介绍了本课题开发的时代背景,分析了当前图书推荐系统以及推荐算法的发展现状,并对本课题的可行性进行了评估。2相关技术概述2.1开发工具2.1.1PyCharmPyCharm是一个支持大型Python项目编写与部署的IDE,类似于Eclipse和AndroidStudio,包括一整套工具来提升用户的工作效率,包括代码编写与调试,项目管理,智能提示和单元测试,另外它还拥有Git功能,能够高效的支持版本控制。2.1.2Python本次项目整体使用的是Python语言,Python是一门脚本语言,也是一种解释性语言,与常见的用于大型项目的C++和Java不同,Python没有设定为先编译,链接成可执行文件的方式,而是采取边解释、边运行的方式,所以Python不需要生成exe文件,有利于开发人员更新。Python部署在大型项目上的能力不如C++和Java,其常见的作用范围包括自动化脚本的编写,对软件的测试,爬虫,科学计算,但是随着时间的发展以及人工智能,机器学习和深度学习茁壮成长,原本被认为无法支持大型项目的Python语言,伴随着一代又一代的版本更新,语法的改动,很多新的功能的增加而变得越来越稳定,越来越多的被开发人员部署于大型项目上。2.1.3DjangoDjango框架是由Python语言驱动的,并且其是一个开源模型。它产生于一个开源社区,所以它是一个开源的Web应用框架,并且拥有视图和控制器风格。程序员在开发一些易于维护、有高品质需求、数据库驱动的系统时候,可以采用Django框架达到方便快速的效果。这便是OpenStack的Horizon组件采用Django架构来开发的主要原因。另外,Django框架的可扩展性较好,因为许多功能强大的第三方插件都被内置在Django框架中。Django框架是遵从MVC模式的框架。MVC是三个英文单词的缩写,这三个单词的意思分别是Model(模型)、View(视图)、Controller(控制器)。同时Django的设计模式是MTV。而MTV也是三个单词的缩写的意思分别是Model(模型)、Template(模板)、View(视图)。而在Django框架中,控制器的用户输入的内容是框架自行处理的,所以Django框架关注的是模板、模型和视图,就叫做MTV模式。2.1.4BootstrapBootstrap是一个前端开发框架,它拥有简洁并且强大功能的优点,并且在使用Bootstrap的情况下能够使Web开发变得十分便捷。Bootstrap是由动态CSS语言写成,并且具有简洁直观的CSS和HTML规范。同时,这个框架包含了大量的Web组件,使用者能够使用这些组件对网站进行快速的搭建,而且功能十分强大并含有美观的界面,所以Bootstrap一出现就受到了很大的欢迎。2.2数据库环境在SQLlite3中,它的模块功能可以和Python一起使用。GerhardHaring编写了这些模块功能。SQLite3能够对SQL接口提供和PEP249描述的DB-API2.0规范兼容。并且这个模块是不需要进行安装的,因为Python在2.5以上的版本会自行带有SQLite3模块。SQLite3模块在使用过程中主要分为两步,第一步是创建一个表示连接数据库的对象,第二步进行选择性的创建光标对象,可以进行所有SQL语句的运行。2.3基于用户的协同过滤算法基于用户的协同过滤算法的目标是寻找到类似的用户,然后在类似的用户之间进行物品的推荐。第一,要计算用户间的相似度。如果每个用户都评价了物品,那么就会产生一个列表,这个列表就是用户的属性向量,而这些向量之间的相似度就是用户之间的相似度。第二,假设相似用户有A、B、C三个用户。假设X1,X2,X3是三个商品,这三个商品B和C用户购买过,而A用户没有购买过。之后就可以对用户A进行推荐。那么就要计算A对这三个商品的兴趣度。所以就要用A、B、C这三个用户的相似度为权重,对B、C进行商品评分的均值计算。本课题使用了皮尔逊相关系数来进行相似度的计算。皮尔逊相关系数可以对相似度进行计算,一般被用作两个数据互相比较相似度,其公式为p或者p其中X、Y为两个变量,N表示变量取值的个数。例如在图书阅读网站中,用户会对图书进行打分,那么利用皮尔逊相关系数就可以对兴趣相似的读者进行推荐。它的基本想法就是假如某两个用户的兴趣相同,那么某个用户喜欢看的另一个用户就会喜欢看,那么就可以将A看的推荐给B看。假设图书库中有五部图书,两个用户对这五本书都进行了打分,一个用户的分数是[3,2,-,1,4],另一个的分数是[5,3,3,-,5],其中“-”表示未打分。那么这两个用户的皮尔逊相关系数就是0.866,证明了这两个用户具有相似的兴趣。皮尔逊相关系数所拥有的最大的优点就是它对评分等级膨胀这个问题可以有效地解决。因为在某些时刻某些用户对所有的图书都进行很高分数的打分,但是一些用户就会对图书要求较高,给的分数会偏低。产生这种情况时,皮尔逊相关系数就会对其进行处理。2.4基于项目的协同过滤算法基于项目的协同过滤算法与基于用户的协同过滤算法很像,只是在计算邻居时从物品本身的角度出发,而不是像基于用户的协同过滤算法一样从用户的角度,然后以用户的历史评分为依据,推荐相似的图书给用户。从计算的角度看,就是将所有用户对某本图书的评分作为一个向量来计算图书与图书之间的相似度,即余弦相似度,给定用户u和用户v,令N(u)表示用户u曾经有过行为(收藏或评分)的图书集合,令N(v)表示用户v曾经有过行为的图书集合,其公式为W得到相似的图书后,根据用户历史的评分预测当前用户还没有表示评分的图书,计算得到一个排序的图书列表作为推荐。假设有图书A、B、C,对于图书A,根据所有用户的历史评分,喜欢图书A的用户都喜欢图书C,得出A和C相似,而另一位用户喜欢图书A,那么可以推断出其也喜欢图书C。2.5本章小结本章首先介绍了用于本系统开发的主要工具,其中包括集成开发环境PyCharm、开发语言Python、前端开发框架Bootstrap、后端框架Django。另一方面还对数据库的设计以及本课题所使用的协同过滤算法进行了具体的介绍。3需求分析3.1需求分析用户功能需求:如图1用户操作流程图所示,用户可以实现登录功能并进行图书信息的查看,阅读,评分,评论,收藏功能,可以分类寻找自己想要的图书,可以搜索自己想要的图书,可以对图书进行推荐。首先要进行图书数据的爬取,在目录下建立一个spider.py文件,实现图书数据的爬取,在要爬取的网页获取热门推荐图书文件链接,跳转到阅读界面,将需要的图书章节信息爬取下来保存到txt文件中。然后将图书的信息导入数据库。在图书的各项信息例如图片等导入后,编写前端界面,一个功能一个html页面,建立一个base.html作为基础页面,别的都在他的基础上进行,将信息展示出来。实现各项功能,通过协同过滤实现对用户进行图书的推荐,在views.py中编写函数实现每个功能,在models.py中使用模板输出数据,实现数据与视图的分离。使用DjangoAdmin管理工具,实现后台对数据的管理与更新等操作。图1用户操作流程图前端界面需求:前端页面要整洁明了,用户使用方便,所以对主界面左侧边栏设计了六个按钮分别为全部书籍,最热书籍,最新书籍,分类图书,猜你喜欢,我的信息,点击后在页面右侧显示图书信息。在点击图书名后显示图书的信息页面,可以进行打分,收藏,评论功能。点击阅读后可以查看图书,有分页功能查看下一页。界面的顶部右侧有搜索栏,输入后可以点击提交搜索图书。搜索栏右侧有登录和注册按钮,实现用户的登录和注册功能。“我的信息”界面显示用户的各项信息,收藏,评论等。3.2系统总体功能结构在基于协同过滤推荐算法的图书推荐系统的需求分析过程中,有如下几个功能是根据系统所需需要实现的,分别是图书信息管理,图书数据的爬虫功能,用户信息管理,用户登录后进行图书评论、评分、收藏操作,以及协同过滤推荐算法的实现。系统模块功能结构如图2所示。图2系统功能结构图3.3系统用例图如图3所示,用户所拥有的主要功能分为三种,主要为图书阅读和搜索,登录注册信息管理,评论打分收藏,这三个功能。图3用户用例图如图4所示,通过系统管理员登录Djangoadmin进行后台管理,能对系统内的用户进行管理,对图书的信息和评论打分等数据进行增加、删除、改正、查看的操作。图4系统管理员用例图3.4本章小结本章主要画出了系统功能结构图并对系统的需求进行了分析,其中包括用户功能需求和前端界面需求,然后根据需求给出了用户和管理员的用例图。4系统设计4.1系统技术实现架构系统的总体架构设计直接影响到网页图书爬虫系统的多方面性能,本系统的具体设计架构如图5所示。图5基于协同过滤推荐算法的图书推荐系统总体架构图基于协同过滤推荐算法的图书推荐系统的后台框架采用基于Python语言的Django框架。Django框架具有ORM系统和模板引擎,可以使得开发的速度大大提高。而ORM系统可以进行数据库对象实体的编写,然后自动生成,可以不用手动进行数据库表的建立,使得业务逻辑和数据库的交互的准确性大大提高。数据库的选择上使用了SQLite,因为它是开源的,则可以减少开发的成本。并且SQLite数据库的体积较小,而Python自带SQLite模块,可以不用进行安装,很适合本系统的开发。4.2数据的存储及使用根据基于协同过滤推荐算法的图书推荐系统的需要,分析业务逻辑,得出主要的实体关系如图6所示,一共有5个实体,分别是用户实体,图书评分实体,图书评论实体,图书信息实体,图书标签实体。图6基于协同过滤推荐算法的图书推荐系统总体E-R图如图6所示,这些实体之间的关系分别为:用户实体与图书评分实体一对多,用户实体与评论实体一对多,用户实体与图书信息实体一对多,图书信息实体与图书标签实体多对一。4.3数据库设计4.3.1用户信息表用来存储用户的信息,要求生成username(用户名),password(密码),phone(电话号码),name(姓名),address(地址),email(邮件)字段。如表1所示。表1用户信息表字段名称数据类型长度是否主键描述usernamevarchar128否账号名passwordvarchar128否密码phoneVarchar128否手机号码namevarchar128否名字addressvarchar128否地址emailvarchar128否邮件idinteger32是自动生成的id4.3.2图书标签表用来存储图书的标签,要求生成name(标签名)字段。如表2所示。表2图书标签表字段名称数据类型长度是否主键描述namevarchar128否标签名idinteger32是自动生成的id4.3.3图书信息表用来存数图书的具体信息,要求生成author(作者名),intro(描述),num(浏览量)、name(图书名)、pic(图书封面),text_url(图书文件)字段。如表3所示。表3图书信息表字段名称数据类型长度是否主键描述authorvarchar128否作者名introtext可变否描述numnameintegervarchar可变64否否浏览量图书名picvarchar64否图书封面text_urlvarchar128否图书文件idinteger32是自动生成的id4.3.4图书评分表用来存储用户对图书的评分,要求生成mark(评分),create_time(创建时间)这两个字段,如表4所示。表4图书评分表字段名称数据类型长度是否主键描述markreal128否评分create_timedatatimeYYYY-MM-DD否评分时间idnameintegervarchar3264是否自动生成的id评分图书名4.3.5图书评论表用来存储用户对图书的评论,要求生成content(内容),create_time(评论时间),good(点赞评论)这三个字段。图书评论实体类图如表5所示。表5图书评论表字段名称数据类型长度是否主键描述contentvarchar64否内容create_timevarcharYYYY-MM-DD否评论时间goodinteger32否点赞idnameintegervarchar3264是否自动生成的id评论图书名4.3.6图书收藏表用来存储用户收藏的图书,要求生成create_time(收藏时间)字段。图书收藏表如表6所示。表6图书收藏表字段名称数据类型长度是否主键描述create_timevarcharYYYY-MM-DD否收藏时间idnameintegervarchar3264是否自动生成的id收藏图书名4.4爬取图书并将数据入库如图7所示,图书爬虫过程如图所示。图7爬取图书流程图如图8所示,在获取图书数据后,将爬取的文件信息整理一下,先返回指定的文件夹包含的文件或文件夹的名字的列表,再实例化每个app,AppConfig的子类,利用Python的shutil模块将整理过后的图书数据复制到在目标文件夹的文件中,创建数据并导入数据库。将图书的名字,作者,描述,图片信息,txt文件信息导入。图8数据入库流程图4.5用户登录注册如图9所示,用户在使用注册功能时,首先点击页面中的的“注册”按钮,随后就能跳转到注册的界面,然后用户可以输入用户名、密码、电话、邮箱,再根据表单数据,创建一个新用户,如果表单验证成功就会跳转到登录界面,相反表单验证失败就会返回一个空表单到注册界面。图9用户注册流程图如图10所示,用户在进行登录功能时,首先输入账号和密码,如果账号错误,则会提示“账号不存在”,如果密码错误,则会提示“密码错误”,如果账号密码都正确,则会跳转到主界面。图10用户登录流程图4.6图书搜索如图11所示,用户在搜索栏输入数据,得到关键词后进行内容的模糊搜索,搜索到后跳转到item页面,如果有搜索到则显示书籍信息,没有则提示“对不起没有书籍”。图11图书搜索流程图4.7图书评论和打分如图12所示,用户在查看图书信息时,可以在图书信息页面进行打分,用户打分后,将数据返回,并处理存入数据库,显示“您已进行打分”,将评分显示在页面上。图12图书打分流程图如图13所示,用户在书籍页面文本框输入评论,点击提交后获取用户的id,获取评论内容,存入数据库,并显示在书籍页面。图13图书评论流程图4.8图书收藏如图14所示,点击收藏,返回数据,获取收藏的用户id,书籍id,将信息保存,页面显示收藏人数在原来的基础上加一,页面显示为“取消收藏”。图14图书收藏流程图4.9图书推荐如图15所示,在“基于用户的推荐”和“基于item的推荐”界面中,根据协同过滤算法,计算用户相似度,对用户进行图书的推荐。图15图书推荐流程图4.10后台图书数据管理通过Djangoadmin后台管理实现数据的增加删除修改功能,并做了分页展示。通过图书后台管理界面,管理员可以清楚的了解图书信息。可以管理用户信息,管理图书的评分评论信息。4.11本章小结本章重点对系统设计方面进行介绍,首先给出了系统的总体架构图和实体关系图,使系统所用技术与实体之间的关系更加明了。随后介绍了数据库设计以及每个功能的流程图。5系统功能及算法实现5.1主界面实现如图16所示,系统的主界面使用Web浏览器运行的网页。首先主界面的左侧有6个按钮,分别是全部书籍,最热书籍,最新书籍,图书分类,基于用户的推荐,基于item的推荐。每个按钮都可以进行点击,点击后出现相应的页面。主界面右侧为显示书籍信息,分类图书信息,我的信息等二级页面。主界面的右上角为搜索文本框和用户的登录与注册。图16主界面5.2模块功能实现5.2.1用户注册与登录如图17所示,为用户注册界面。图17注册界面如图18所示,为用户注册界面。图18登录界面5.2.2图书搜索与分类查看如图19所示,为图书分类界面,可以查看图书的类别。图19图书分类界面如图20所示,在搜索栏输入要查找的图书信息,点击“提交”后出现查找到的图书页面信息。图20搜索界面如图21所示,在输入关键字后,所有与关键字有关的图书会显示在界面中。图21搜索结果展示界面5.2.3图书打分收藏与评论如图22所示,为图书详情界面。图22图书详情界面如图23所示,在图书详情页面上,点击评分的下拉列表,即可完成打分。图23评分界面如图24所示,点击“收藏”后,会显示已经收藏,收藏人数加一。图24收藏界面5.2.4个人信息如图25所示,为个人信息界面,可修改密码。图25个人信息界面如图26所示,可以在个人信息界面查看用户的所有评价。图26个人评价汇总界面如图27所示,可以在个人信息界面查看用户所有收藏的图书。图27个人收藏汇总界面如图28所示,可以在个人信息界面查看用户的所有评分。图28个人评分汇总界面5.2.5协同过滤算法展示结果如图29所示,为基于用户的推荐界面。图29基于用户的推荐界面如图30所示,为基于项目的推荐界面。图30基于项目的推荐界面5.2.6图书数据管理输入管理员账号密码,进入Django后台管理界面,点击“图书”,如图31所示,可以进行图书数据的增删改查。点击标签,如图32所示,可以进行标签的增删改查。点击“用户”,如图33所示,可以进行用户信息的增删改查。点击“评分信息”,如图34所示,可以进行评分信息的增删改查。点击“评论”,如图35所示,可以进行评论信息的增删改查。图31图书数据管理图图32图书标签管理图图33用户信息管理图图34评分信息管理图图35评论信息管理图5.3算法实现UserCF算法的实现,是通过用户的历史行为数据发现用户对图书的喜欢(评分,收藏,评论),并对这些喜好进行度量和打分。根据不同用户对相同图书的偏好程度计算用户之间的关系。在有相同喜好的用户间进行商品推荐。这里计算相似度的方法是采用皮尔逊相关度评价,公式采用上文提到的皮尔逊相关系数的计算公式,计算结果越接近1,相似度越高。ItemCF算法的实现,首先要计算出图书之间的相似度,相似度是推荐的关键评判指标,然后根据图书的相似度,并结合用户的历史行为,即评分矩阵,从而给用户生成可靠的推荐列表。具体步骤如下:(1)建立图书的同现矩阵。(2)建立用户对图书的评分矩阵。(3)矩阵计算推荐结果。其中涉及到相似度的计算,本课题在ItemCF算法中采用计算余弦距离的方法计算图书与图书之间的相似度。通过余弦距离计算得出的结果越接近1则图书之间越相似,若其中一本被用户好评或收藏,则会将与其相似度高的为被用户看过的书推荐给用户。5.4本章小结本章主要对系统功能以及所采用的算法进行了介绍,其中功能展示包括前端功能以及后端功能展示,算法实现部分介绍了协同过滤推荐算法在本课题中的实现方法。6系统测试6.1系统测试的目的及意义系统测试的目的:第一,验证能否正常运行系统的功能,包括对数据库的连接以及数据的操作是否正常等;第二,验证该网页图书爬虫系统是否符合设计要求和用户需求。系统测试的意义:在实际进行测试时,可以发现系统的bug,只有这样才能及时发现问题并更正,大大的减少后期的操作。6.2系统测试步骤首先要相关设计人员对网页图书爬虫系统进行测试文档的编写,对测试的规则和内容进行规范,在文档编写完整后交由测试人员,进行系统的整体测试。然后进行测试,步骤如下:第一,要对系统的内容进行了解。测试人员要对系统的测试内容,测试标准等进行了解,对网页图书爬虫系统的资料进行阅读,对系统功能进行全面了解,然后编写测试用例和计划,进行准备。第二,对编写的代码进行检查。由技术强大的人员对编写的代码进行检查,进行编写规范的评价,查看其是否符合规范。第三,进行单元测试。单元测试的目的就是按步骤检查系统中,最小的单位模块,尽最大的努力达到代码相关的覆盖测试,使它能够对任何正确和不正确的输入都能进行检查,并输出相关提示字符。第四,对系统进行集成测试。在单元测试结束后,开展集成测试,其主要目的是对接口的问题进行发现,并且核对接口能否正确的返回信息,集成测试简单的来说就是对系统的整个功能进行仔细的测试。第五,进行验收测试。验收测试是为了及时向用户表明系统能够如同需求一样,进行稳定的运作,实现系统的功能,对用户的所有要求的内容进行检验,查看是否都能实现。6.3系统的功能性测试为了能够使系统的可用性更加可靠的同时,查看测试系统是否能够正常运行,系统的功能性测试是属于黑盒测试,那就是将预期的结果与实际操作的结果进行比较,从而使得系统渐渐的趋于完善并且能够完整的满足用户的需求,所以系统的功能测试是非常重要的一个部分,有必要完整的进行。6.4系统的模块测试6.4.1系统注册功能测试该模块测试的目的是主要测试用户填写错误信息,或者漏填信息能否成功注册。(1)当其他信息全部填写正确,没有填写密码时,预计输出,请填写此字段,实际输出请填写此字段,测试结果如图36所示。图36没有输入密码的结果图(2)当其他信息全部填写正确,没有填写用户名时,预计输出,请填写此字段,实际输出请填写此字段,测试结果如图37所示。图37没有输入用户名的结果图(3)当其他信息全部填写正确,填写邮箱格式错误时,预计输出,请在电子邮件地址中包括“@”。“内容”缺少“@”,实际输出请在电子邮件地址中包括“@”。“内容”缺少“@”,测试结果如图38所示。图38输入邮箱格式错误的结果图(4)当其他信息全部填写正确,填写用户名格式错误时,预计输出“您的用户名至少包括六个字符。”,实际输出“您的用户名至少包括六个字符。”,测试结果如图39所示。图39输入用户名格式错误的结果图(5)当其他信息全部填写正确,填写密码格式错误时,预计输出“您的密码过短。”然后密码栏中内容清空,实际输出“您的密码过短。”,测试结果如图40所示。图40输入密码格式错误的结果图(6)当其他信息全部填写正确,填写用户名重复时,预计输出“您的用户名已存在。”,实际输出“您的用户名已存在。”,测试结果如图41所示。图41输入用户名重复的结果图(7)当信息全部填写正确,跳转到登录页面,测试结果如图42所示。图42信息正确的结果图6.4.2系统登录功能测试该模块测试主要测试当账号密码都正确的时候是否能正常跳转到主界面,在账号正确密码不正确的时候提示是否能正常弹出,账号正确密码不正确的时候提示是否能弹出,正确的账号和密码如表6所示表6网页图书爬虫系统用户的账号和密码登陆者账号密码李卓涵lzh1998123456网页图书爬虫系统的登录功能测试用例如表7所示表7网页图书爬虫系统用户登录测试用例测试用例账号密码预计输出实际输出测试结果1空值123456请填写此字段请填写此字段正确2lzh1998空值请填写此字段请填写此字段正确3lzh1998test无法登录无法登录正确4test123456无法登录无法登录正确5lzh1998123456跳转主界面跳转到主界面正确6.4.3系统添加信息测试(1)图书列表添加信息测试测试用例:书名:图书作者:图书描述:图书分类:玄幻测试结果:图书信息添加成功,如图43所示图43图书信息添加成功后的结果图(2)添加用户信息测试测试用例:用户名:1111111密码:1111111手机号码字:测试地址:china邮箱:56456849@用户信息添加成功,如图44所示。图44用户信息添加成功后的结果图6.4.4系统删除信息测试(1)删除一本图书信息测试测试用例:点击图书列表中ID为203,书名为‘测试’的ID,再点击上方的删除按钮,确认删除对话框成功弹出,如图45所示,点击是的,我确定后处理成功的提示框,成功弹出如图46所示测试结果:ID编号为203,书名为‘测试’删除成功图45确认删除对话框图图46处理成功提示框图(2)图书列表多条删除信息测试测试用例:选择图书列表中ID为204,书名为‘1111’和图书列表中ID为205,书名为‘2222’,将两本图书选中并删除,如图47所示,确认删除的对话框将会在点击“批量删除”之后会弹出,如图48所示,在弹出的对话框中点击“确定”,图书信息将会被删除,然后弹出处理成功的提示框如图49所示测试结果:图书列表中ID为204,书名为‘1111’和图书列表中ID为205,书名为‘2222’的信息删除成功图47多选删除图书图图48确认删除对话框图图49成功删除提示框图(3)删除用户信息测试测试用例:点击用户列表中,项目ID为5,账号为‘1111111’一栏前的勾选框,点击“删除”,将会弹出确认删除的对话框如图50所示,处理成功的提示框将会在点击“确定”后弹出,如图51所示测试结果:用户列表ID为5,账号为‘1111111’删除成功图50确认删除对话框图图51处理成功提示框图(4)用户信息列表删除多条信息测试测试用例:点击用户列表中ID为6,账号为‘222222’一栏前的勾选框,点击用户列表中ID为7,账号为‘333333’一栏前的勾选框,如图52所示,确认删除的对话框将会在点击“删除”之后弹出,如图53所示,如果想删除所选用户的信息,需要在弹出的对话框中点击“确定”,然后弹出处理成功的提示框如图54所示测试结果:成功删除ID为6,账号为‘222222’和ID为7,账号为‘333333’的用户信息图52勾选多条信息图图53确认删除对话框图图54处理成功提示框图6.4.5系统编辑信息测试(1)图书列表中编辑信息将ID为206,图书名为‘666’,作者为666,描述为666,修改为ID为206,图书名为‘777’,描述为777,描述为777,修改成功后的结果如图55所示测试结果:图书信息修改成功图55图书信息修改成功后的结果图(2)用户列表中编辑信息将ID为8,账号为‘8888888’,密码为8888888,手机号码名字为sun,地址为China,邮箱为565121154@,修改ID为8,账号为‘9999999’,密码为9999999,手机号码名字为sun,地址为China,邮箱为565121154@,修改成功后的结果如图56所示测试结果:用户信息修改成功图56用户信息修改成功后的结果图6.5本章小结本章主要是对系统进行了测试,首先介绍了测试的目的意义以及步骤,随后设计了具体的测试用例对各个功能进行了测试。结论1设计成果本课题让用户可以轻松的获取图书信息,并进行图书的收藏、评分以及评论功能,同时还可以对用户进行图书的推荐。管理员可以实现对图书和用户进行数据的管理。2总结搜索网络图书资源对于用户而言,是日常生活中一个很重要的环节,图书的获取效率也很大的影响用户体验感和满足感,影响着用户的使用时间,所以,本课题的式设计,是提升用户体验的一个很有效的方面。本课题的主要目的是开发一个基于协同过滤推荐算法的图书推荐系统。该系统将具有很强的操作性、功能性和安全性。图书推荐系统可以大大提高用户图书的获取的效率。并且Python将作为本课题的语言,服务端主要使用Django框架开发业务逻辑,开发效率在Django框架的ORM系统作用下得到了很大的提高,可以不用进行数据物理结构的设计,仅仅需要设计每个数据表对象的实体对象即可。本题目的主要工作内容分为以下几个方面:1.前期调研工作:前期对于多个网络图书网站进行了体验,确定了本次毕业设计的题目为基于协同过滤推荐算法的图书推荐系统的设计与实现,确定了本次毕业设计的主要方向,决定了本次毕业设计的主要工作。2.技术理论知识介绍:这次的系统开发主要使用了Python语言进行,服务器端的框架使用了Django框架,前端使用了Bootstrap来开发,并且在数据存储方面使用了SQLite3数据库作为本次毕业设计的数据库。3.系统需求分析:系统的学习了确定系统需求的理论知识,确定了本次毕业设计的网页图书爬虫系统的总体目标需求,对需求作了具体的介绍。4.系统详细设计:本课题对图书推荐系统项目的整体做了详细的分析与设计,明确了系统的开发框架。对于本系统的所有功能做了详细的设计并设计了网页图书爬虫系统的数据库的逻辑结构5.系统实现:实现了图书推荐系统的所有功能,用户能够对图书进行搜索,对图书进行收藏,评论以及评分。可以对用户进行图书的推荐,进行图书和用户数据的管理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论