北方民族大学本科毕业论文(设计)
基于 FP-growth 的动漫推荐系统的设计与实现
摘要
随着时代的进步与互联网的发展,动漫渐渐的在当今互联网文化中占据了一席之
地,深受年轻人的喜爱。近年来,我国动漫产业发展迅猛,在文化创意产业中的潜力
是其他产业无法比拟的。动漫推荐系统可以帮助人们更快速便捷地寻找自己感兴趣的
动漫。该系统可以让用户足不出户了解丰富的动漫信息,同时对用户点赞喜欢的动漫
类型进行优质动漫推荐。
基于 FP - growth 的动漫推荐系统有后台管理员和普通用户两种使用者。系统前端
普通用户可以使用系统前端的所有功能,如查找、修改个人信息、查看动漫信息、点
赞、评论等。系统后台管理员用户则可以对动漫和普通用户账号以及评论进行新增、
修改、删除等管理。系统的核心动漫推荐模块是在后台,管理员设置置信度与支持度,
通过 FP-growth 算法的挖掘与挑选,仅需要扫描数据集两次,通过构造 FP-tree ,大大
加快整个数据挖掘过程,系统以该算法为基础,根据用户点赞喜欢的动漫类型为用户
推荐可能感兴趣的动漫。
关键字 :推荐系统,动漫,关联规则, FP-growth 算法
北方民族大学本科毕业论文(设计)
Design and implementation of anime recommendation
system based on FP-growth
Abstract
With the progress of the times and the development of the Internet, animation
gradually occupies a place in today's Internet culture and is loved by young people. In
recent years, China's animation industry has developed rapidly, and its potential in the
cultural and creative industry is incomparable to other industries. The anime
recommendation system can help people find the anime they are interested in more quickly
and conveniently. The system, which allows users to learn about rich anime information
without going home, also makes quality anime recommendations for the types of anime that
users like at the point of view.
The FP-growth based anime recommendation system has two types of users: backend
administrator and normal user. Ordinary users can use all the functions of the front-end
system, such as searching, modifying personal information, viewing anime information,
liking and commenting, etc. The system backend administrator user can add, modify and
delete anime and normal user accounts and comments. The core anime recommendation
module of the system is in the background, and the administrator sets the confidence and
support degree, and through the mining and selection of FP-growth algorithm, it only needs
to scan the data set twice, and by constructing FP-tree, it greatly speeds up the whole data
mining process, and the system uses the algorithm as the basis to recommend anime that
users may be interested in according to the type of anime that users like to like.
Keywords: recommender systems, animation, association rules, FP-growth algorithm
北方民族大学本科毕业论文(设计)
目录
第一章 绪论 ................................................................................................................................................................ 1
1.1 背景及意义 ....................................................................................................................................................... 1
1.2 系统概述 ........................................................................................................................................................... 2
1.3 组织与结构 ....................................................................................................................................................... 2
第二章 系统开发工具及关键技术 ....................................................................................................................... 4
2.1 开发语言介绍 .................................................................................................................................................. 4
2.2 开发技术介绍 .................................................................................................................................................. 4
第三章 动漫推荐系统需求分析 ........................................................................................................................... 7
3.1 推荐系统需求分析 ......................................................................................................................................... 7
3.2 推荐系统用例分析 ......................................................................................................................................... 8
3.3 系统功能模块 ................................................................................................................................................ 10
第四章 数据库设计 ................................................................................................................................................ 11
4.1 系统数据库概念设计 .................................................................................................................................. 11
4.2 数据库逻辑结构设计 .................................................................................................................................. 12
第五章 系统实现 ..................................................................................................................................................... 18
5.1 管理员模块实现 ........................................................................................................................................... 18
5.1.1 登录功能的实现 ................................................................................................................................... 18
5.1.2 动漫管理模块的实现 .......................................................................................................................... 19
5.1.3 用户管理模块功能的实现 ................................................................................................................. 25
5.1.4 系统管理模块功能的实现 ................................................................................................................. 27
5.1.5 推荐管理模块功能的实现 ................................................................................................................. 28
5.2 用户模块的实现 ........................................................................................................................................... 30
5.2.1 注册功能的实现 ................................................................................................................................... 30
5.2.2 登录功能的实现 ................................................................................................................................... 31
5.2.3 个人信息模块的实现 .......................................................................................................................... 32
5.2.4 动漫分类模块的实现 .......................................................................................................................... 33
5.2.5 评论模块的实现 ................................................................................................................................... 33
5.2.6 推荐模块的实现 ................................................................................................................................... 34
北方民族大学本科毕业论文(设计)
5.2.7 查询功能的实现 ................................................................................................................................... 36
5.2.8 查看动漫详情功能的实现 ................................................................................................................. 37
5.2.9 点赞喜欢功能的实现 .......................................................................................................................... 38
第六章 系统测试 ..................................................................................................................................................... 39
6.1 用户模块测试 ................................................................................................................................................ 39
6.2 推荐模块测试 ................................................................................................................................................ 40
第七章 总结与展望 ................................................................................................................................................ 43
7.1 总结 .................................................................................................................................................................. 43
7.2 展望 .................................................................................................................................................................. 43
致谢 .............................................................................................................................................................................. 45
参考文献 ..................................................................................................................................................................... 46
北方民族大学本科毕业论文(设计)
1
第一章 绪论
随着时代的进步与互联网的发展,动漫渐渐的在当今互联网文化中占据了一席之
地,尤其深受年轻人的喜爱。最近这些年,我国动漫产业发展迅猛,在文化创意产业
中的潜力是其他产业无法比拟的。根据数据记载,截止 2016 年底,中国动漫产业产值
达到 1320 亿元,同比增长 16.6% [1] 。动漫产业发展如此迅速,无论从哪个层面都离不
开国家政策的支持。在文化部发布的政策中,都将动漫产业的质量提升视为重点,要
求合理的规划发展,同时为具有资格的相关动漫企业在政策上提供便利 [1] 。随着供给
方面改革的深入,政府将促进消费结构的优化,实现消费品不断升级,提高文化消费
水平是提高消费水平的重要一环。今后,政府也将逐步加强对动漫产业的支援。
1.1 背景及意义
如今人们的生活质量的越来越高,物质上的富裕已经不够满足现代人的需求,人
们想要通过各种不同的方法获得精神方面的满足,动漫因而诞生。正如动漫其名,指
动画和漫画,是二次元 ACG 产业中的一部分。动漫的发展史可以说是人类对光和影
的追求史。现在,动画行业可以说格外拥有发展潜力。因此,设计一个网页设计简洁、
功能丰富、便于动漫迷浏览的平台是非常可行的和必要的 [2] 。现如今,我国动漫产业
发展速度迅猛,由《秦时明月》《全职高手》等优质动画为首掀起了国漫热潮, 2019
年的《哪吒之魔童降世》、 2020 年的《姜子牙》收益颇丰。 2021 年将提高动漫产业水
准、筑造中国动漫品牌、促进中国动漫“全产业链”和“全年龄段”发展成为我国新
风潮 [3] 。
在国家的大力扶持之下,却出现了一些良莠不齐的动漫作品,作品质量参差不齐
不说,甚至连价值观都存在着不小的问题,用户在选择动漫方面就会出现不小的难题。
本系统核心通过关联规则 FP - growth 的挖掘与筛选,对观众可能感兴趣的动漫类型进
行优质动漫推荐,可以帮助人们更快速便捷的寻找自己感兴趣的动漫。通过这个系统,
可以使用户在家中了解到海量的动漫资讯,高效地从动漫海洋之中根据自身的特点挑
选出可能喜欢的动漫,避免用户在海量的数据中迷失方向,使得用户将时间和重心放
在动漫的观看欣赏之上,提高用户的满意程度。缩短用户时间成本的同时,极大地提
高了效率,能让用户从多角度多方面的了解一部动漫。最终的目标是改善用户的动漫
北方民族大学本科毕业论文(设计)
2
观看体验,只有用户体验好了,大家都愿意看动漫,动漫行业在中国才能发展的越来
越好。
1.2 系统概述
动漫推荐系统包括后台超级管理员模块和前台用户模块。管理员模块界面主要在
系统后台,用户模块界面则在系统前台,二者均有前端页面。普通用户可以修改个人
信息、搜索浏览动漫详细信息,进行点赞喜欢、评论等操作。超级管理员则可以对动
漫进行查询、更新、修改、删除操作,对用户进行信息修改、封禁不良用户、封禁评
论、重置密码等操作。
普通用户可以用微信扫码注册账号,系统会自动分配账号,之后可以微信扫码进
行登录,也可以通过账号密码进行登陆。登陆之后,用户可以修改自己的个人信息以
及密码;用户可以按照名称来查找自己感到有意思的动漫,也可以在动漫分类中找到
自己喜欢的动漫类型来寻找感兴趣的动漫,并对其进行喜欢操作;同时推荐动漫模块
将会根据用户的点赞喜欢来对动漫进行推荐。用户也可以在动漫下方发表评论,并且
可以看到其他用户对动漫的评论,用户之间可以通过“盖楼”的方式进行交流评价。
后台超级管理员,可以对动漫进行查询、更新、修改、删除等操作;修改用户信
息和重置密码,不良用户账号和评论的封禁删除处理,以及删除下架含有不良价值观
的动漫。最核心的动漫推荐是在后台,通过关联规则 FP - growth 算法的挖掘与筛选,
对观众可能感兴趣的动漫类型进行优质动漫推荐,从而帮助人们更快速便捷的寻找到
自己感兴趣的动漫。
1.3 组织与结构
本系统通过 FP-growth 算法挖掘,向用户推荐其可能感兴趣的动漫,并在完成了
用户和动漫的增删查改功能的基础上,实现了用户点赞喜欢与评论功能。
第一章绪论,阐述了当前动漫产业的背景形势,借此引出我国动漫产业良莠不齐
的现状,随后讲述设计系统的目的与意义,以及系统所具有的功能。
第二章系统开发工具及关键技术,讲述了系统开发过程中运用的部分语言、框架、
技术,并对其优势进行细致的分析介绍。
第三章动漫推荐系统需求分析,从后台管理员和前台用户两个身份对系统进行需
求分析,确定系统功能。
北方民族大学本科毕业论文(设计)
3
第四章数据库设计,通过对整个动漫系统的需求分析,确定数据库的各类数据表
以及数据表之间的关系联系。
第五章系统实现,基于前四章的分析结论,从后台管理员和前台用户角度,细致
地介绍了系统各个功能的实现。
第六章系统测试,对系统进行漏洞测试的过程也正是完善系统的过程,本测试采
用黑盒测试,在测试之中寻找漏洞 BUG ,并修补漏洞。
第七章总结与展望,对这几个月以来的开发设计和学习进行一个系统性的总结,
同时根据系统目前还存在的不足和未能圆满实现的功能进行未来的展望。
北方民族大学本科毕业论文(设计)
4
第二章 系统开发工具及关键技术
系统的开发设计和完成所用的开发环境,包括具体的编程语言、开发工具等。本
系统开发平台主要使用的是 IDEA ,并使用 Java 语言、 ES6 脚本语言、 MySQL 数据库
等对系统进行设计 , 以完成对系统的优化。 Springboot 架构、 React 框架、消息中间件
MQTT 等则和网站搭建和平台的功能实现有关。
2.1 开发语言介绍
2.1.1 Java 语言
Java 语言于 1995 年问世,是目前世界上使用率最高最流行的编程语言。 Java 语
言简单安全,在市面上有着十分广泛的市场,比如商场类网站、社交类网站等。同时
许多电脑端的客户端例如医院等等管理系统及其 APP ,只要前后台运用代码实现,均
可以采用 Java 语言 [4] 。
Java 语言性能稳定并且可拓展性极其强大,它的通用性极强,问世历经几十年仍
然在行业内屹立不倒。如今正处于一个新旧交替的时代,大数据技术正处于时代的峰
口, Java 语言在大数据技术中仍处于主流位置,因此 Java 在这个时代依然具有极强的
发展潜力 [5] 。
2.1.2 ES6 语言
ECMAScript6.0 (以下简称 ES6 )早已在 2015 年 6 月发布。 ES6 是 ECMAScript
问世以来最大的一次版本更新,增添了众多全新的语法特性。 ES6 发布以来, JavaScript
的代码量大大减少,之前存在的诸多问题,也因为 ES6 的问世而得以解决 [6] 。目前 ES6
已经被世界上大多数网站所运用,并且得到众多世界主流浏览器的支持。
2.1.3 MySQL 数据库
MySQL 是一种基于数据的关系式数据库,它将数据以多种形式存在于一个大型
的数据仓库中。 MySQL 成本低并且开源,它支持多种操作系统,核心程序采用多线
程编程,灵活、安全是它的特性。 SQL 是 MySQL 中最常见的一种规范的语言,可以
用来存取资料库。 MySQL 应用的是双重许可策略,它包括社群版本和商用版本。它
还有最最重要的一点是, MySQL 免费,不需要任何代价就可以使用 [7] 。
2.2 开发技术介绍
2.2.1 Springboot 框架
北方民族大学本科毕业论文(设计)
5
Springboot 可以做到简化应用程序的框架搭建,让开发人员不用一步一步地自己
设置配置参数等,开发过程更加便捷。通俗的来说, Springboot 将大部分的框架整合
在了一块,使得开发人员的配置部署过程省时省力。同时在编码、监控等方面,
Springboot 同样有着其独到之处,程序员在 Springboot 框架的加持下,开发步骤得以
大大地简化 [8] 。
2.2.2 React 框架
React 的设计思想极其独一无二,它起源于脸书的内部项目,学起来比较简单,甚
至一个初学者,花上几个小时便可以入门。 React 概念通俗易通,模型简单,它在语
法的层面上更加自由。 React 的开发效率和运行效率早已被大众所认可,可维护性也
更加优越。 React 的最终计划也十分宏伟,想要用写网页应用的方式来写本地应用,
而一旦真的可以做到 , 整个互联网产业都会被颠覆 , 因为同一批人只需做一个 UI ( User
Interface , 用户界面) , 就可以同时工作于服务器、电脑和手机上 [9] 。
2.2.3 消息中间件 MQTT
MQTT 协议的出现,源于起步阶段的移动互联网,为了得到可靠的消息传输保证,
MQTT 因此问世。 MQTT 是一种低带宽,轻量级、可靠的传输协议,它被设计用于物
联网,适应能力十分强大,开发也更加简单。 Java 等程序系统语言均可以采用 MQTT
发送消息。 MQTT 的源代码开放,泛用性极强,普遍应用于各大物联网平台及应用中
[10] 。
2.2.4 基于关联规则的 FP-growth 算法
FP - growth 算法基于先验算法,但是因为只需遍历数据两次,因此执行更加高效。
FP - growth 算法对数据库进行两次遍历,挖掘出相关的数据集或者数据项对。第一次
遍历数据库,系统会对所有数据的出现次数进行统计,去掉不符合最小支持度的数据
之后,第二次遍历只考虑频繁出现的数据,对频繁数据进行过滤排序操作,然后构建
一颗 FP 树,将所有数据集储存在 FP 树中。有了 FP 树之后,就可以根据树中的数据,
选择频繁项集或频繁项对,用条件模式基来构建条件 FP 树。在有了条件 FP 树之后,
就可以利用递归查询频繁项集了。不断地增加越来越多的数据重复进行递归查询,直
到 FP 树只包含最后一个元素为止。
关联分析也叫关联挖掘 [11] ,在关联挖掘中,将零个以上的数据项的集合称为项集。
关联挖掘也有着其独特的关联规则,一般指 U → V 的表达式,其中 U 和 V 是不相交的
项集。在关联挖掘当中,有两个概念分别是支持度和置信度。支持度表示给出的数据
北方民族大学本科毕业论文(设计)
6
集的频繁程度,置信度表示 V 在 U 事务中的频繁程度,这两个概念尤为重要。假设总
数为 I ,则支持度( support )和置信度( confidence )这两个概念的形式定义如下:
𝑟?𝑟?𝑚?𝑚?𝑚?𝑟𝑟?(𝑈 → 𝑈?) = 𝑃(𝑈, 𝑈?) 𝑃(𝐼) = 𝑃(𝑈 ∪ 𝑈?) 𝑃(𝐼)
⁄
= 𝑚?𝑟?𝑚(𝑈 ∪ 𝑈?)
⁄
∕ 𝑚?𝑟?𝑚(𝐼) ( 2-1 )
它表示同时包含 U 和 V 的记录数占记录总数 I 的比例。
𝑐𝑚?𝑚?𝑐?𝑖𝑐?𝑐?𝑚?𝑐𝑐?(𝑈 → 𝑈?) = 𝑃(𝑈, 𝑈?) 𝑃(𝑈)
⁄
= 𝑃(𝑈 ∪ 𝑈?) ∕ 𝑃(𝑈?) ( 2-2 )
FP - growth 的主要流程如下:
首先第一次遍历数据集,以获得频繁项度为 1 的项集,定义最小支持度,删除小
于最小支持度的项,按项集的降序排列原始数据集,保留频繁项集,剔除低于支持度
的数据项。随后第二次遍历创建项头表和 FP 树,通过项头表和 FP 树最后得到所有项
目的条件模式基,即 FP 子树,它的所有叶子结点都与被挖掘的叶子节点一一对应。
为得到 FP 子树 , 可以把子树中每个节点的数值设定为叶节点的值 , 并剔除数值小于支
持度的节点。而通过这些条件模式基 , 就可递归地挖掘到频繁项集了。