摘要

随着互联网与大数据技术的结合日益紧密,大数据学习推荐在教育领域的作用愈发凸显。相较于传统模式,大数据推荐系统能够更高效地帮助用户在信息海洋中快速定位所需学习资源,满足个性化学习需求,大幅提升学习兴趣和资源获取效率,有效应对“信息过载”的困境。

文章通过深入剖析当前流行的推荐算法,并优选了协同过滤算法来应对信息冗余问题,实现学习推荐的个性化。研究工作围绕用户行为分析、需求挖掘和系统构建展开:首先,运用协同过滤精准捕捉用户兴趣,提供个性化的学习资源推荐;其次,全面分析用户的功能性和非功能性需求,借鉴先进推荐系统,采用springboot等技术框架,通过优化稀疏矩阵和用户行为相似度计算,进一步提升推荐质量;最后,成功实践了协同过滤算法在学习资源推荐中的应用,实现了从总体到功能再到数据库的全方位系统设计,打造出一个高效、精准的大数据学习推荐系统。

大数据学习推荐系统不仅仅能够有效的提高用户的学习效率,而且能为用户提供精准而个性化的学习资源推荐机制和优质的学习体验,从而体现出大数据技术在现代教育领域具有广阔的应用前景。

关键词:协同过滤算法;大数据学习推荐系统;个性化学习

目录

摘要

ABSTRACT

1 绪论

1.1 研究背景

1.2 国内外研究现状

1.3 研究内容

2 系统相关技术介绍

2.1 个性化推荐

2.2 余弦相似度计算

2.3 相关技术框架

3 系统需求分析

3.1 系统需求概述

3.2 可行性分析

3.3 系统功能需求分析

3.4 系统性能需求分析

4 系统设计

4.1 系统总体设计

4.2 系统功能设计

4.3 数据库设计

5 系统实现

5.1 Hadoop环境搭建模块

5.2 协同过滤推荐算法模块

5.3 用户管理模块

5.4 学习资源管理模块

5.5 互动社区模块

5.6 智能问答模块

5.7 数据可视化管理模块

6 系统测试

6.1 功能测试

6.2 性能测试

7 总结与展望

7.1 总结

7.2 展望

参考文献

致谢

1 绪论

1.1 研究背景

随着信息技术与大数据技术的飞速发展,目前社会在大数据技术的冲击下,逐步向数据驱动时代发展[1]。在教育领域也受到同样的影响,海量的学习资源数据被生成和记录,为个性化学习提供了前所未有的可能性。在该背景的影响下,提出了个性化学习推荐系统,其主要通过对学习者所产生的大量数据进行分析,进而实现对学习者提供个性化推荐,从而为学习者提供优质的学习体验与提高学习效率[2]。

在当前的互联网时代,学习者在互联网上的学习活动、浏览、收藏以及互动等均可被追踪和记录,构成了海量的数据。这些数据主要反映出学习者的行为和兴趣取向,也是设计个性化学习推荐系统的重要数据。然而,每个学习者在学习过程中,都有不同的学习行为、认知水平和学习动机。通过采用大数据分析技术,系统可以从这些数据中获取到有用的信息,根据这些信息了解到学习者的基本行为活动。

随着网络学习资源和获取资源方式的不断丰富,所产生的数据也呈现出日益增多的趋势,学习者很难从这大量的数据当中找到自己想要的学习内容,而且在寻找过程中还会受到外界因素的干扰,从而影响学习者的学习效率和学习兴趣,以至于大量的时间被浪费。因此,如何很好地向学习者推荐所需的学习资源,是本课题所要解决的问题。因此,将个性化推荐与大数据技术进行有机结合是必要的。这样一来,学习者可以更精准和快速地在学资源推荐系统中获取到更符合其需求和目标的学习材料[3]。课题以大数据技术为基础,设计实现一个面向大数据的学习推荐系统。通过对用户某些行为特征的分析,提出了一个满足不同用户的学习需求的个性化学习资源推荐方案。这样既能激发用户的学习热情,又能调动用户的积极性,进而提高用户的学习效率,同时,这也有助于管理者更深入了解用户的学习需求,从而方便对教育资源进行优化与配置,以提高学习资源的利用率。通过利用前沿的信息技术和大数据技术,构建一个个性化、共享化的学习资源管理平台,从而推进信息现代化进程的深化与实际应用。

总体而言,基于大数据的学习推荐系统受到社会各界的广泛重视,也是教育领域与大数据技术发展的一个重要趋势[4]。系统将大数据分析技术和个性化推荐等先进技术相结合,既可以促进教育资源的高效使用,又可以推动个性化学习的深度发展。面向未来,这样一种面向大数据的推荐系统将是当前教育研究与应用的热点,有着广泛的应用前景。

1.2 国内外研究现状

1.2.1 国外研究现状

国外方面,对于大数据在个性化推荐系统中的应用,也引起较为广泛的研究兴趣,并通过在算法创新、系统优化以及新技术开发等领域取得了重大进步。Chen Z S J对基于协同过滤的推荐系统进行了深入的研究,旨在改进大数据环境下推荐系统的性能[5]。一些研究者如董云薪尝试结合关联规则与协同过滤算法,以增强推荐的准确性和多样性。胡凯达则研究了混合推荐算法在个性化新闻推荐系统中的应用[6],Majumdar A在其著作详细介绍了协同过滤推荐系统的原理、方法和应用,为个性化推荐系统的发展提供了重要的理论支撑[7]。Celine A G关注于会话式新闻推荐系统中的多样化问题,以改善用户连续阅读的体验[8]。Yi Z等人提出利用序列化自动编码器进行表示学习,将其应用于个性化推荐[9]。此外,Wang H和Fu W研究了考虑用户动态变化和上下文信息的动态协同过滤技术在个性化学习资源推荐中的应用。这些研究理论促进了学习推荐系统向着精准推荐和多样化的发展,为用户带来更好的学习资源个性化推荐和学习体验。

1.2.2 国内研究现状

国内方面,相比于国外,国内在对个性化推荐系统的研究起步较晚,但是仍然有不少学者在这方面进行了推荐系统与教育领域相融合相关研究,提出了使用不同推荐算法实现个性化推荐,目标是提高在线学习资源的利用效率和个性化推荐服务水平[10]。例如,Lili W通过在协同过滤推荐算法中引用深度学习技术,以提升大规模开放在线课程(MOOC)资源的推荐效果[11];潘锦丰等人提出了一种改进的用户相似度计算方法,并基于该方法设计了一个协同过滤推荐算法,实验结果表明该算法能够显著提高推荐的准确性[12];李斌关注于数据驱动的学习资源精准推荐系统的设计与实现,通过分析学习者的行为数据来实现资源的精准匹配;王雪文等人研究了基于大数据环境下的个性化学习资源推荐系统,并进行了相应的系统实现和评估;郑燕燕等人深入研究了大数据平台下推荐算法的实现和优化,为提高推荐系统的准确性和效率提供了理论支持[13];付巧萍的研究侧重于协同过滤算法在个性化推送系统中的设计与实现,以提高推荐的准确度和用户满意度;杨宏胜探讨了基于大数据背景下的用户个性化推荐系统的设计与实现问题;罗婕溪等人结合知识图谱技术,设计并实现了一个线上教学资源推荐系统,展示了知识图谱在推荐系统中的应用潜力[14]。这些研究不仅丰富了学习推荐系统的理论和实践,也为在线学习提供了更为精准和个性化的服务[15]。

综上所述,国内外关于个性化学习推荐系统的研究都在积极发展之中,涵盖了算法优化、系统架构设计、用户体验提升等多个方面。随着相关技术的不断进步,未来这一领域有望取得更多具有影响力的研究成果。

1.3 研究内容

本研究的核心内容在于面向大数据环境下的学习推荐系统的设计与实现。系统在设计过程中,将对大数据技术和个性化推荐方法进行深入的研究,以满足用户的个性化学习推荐需要,从而构建一个高效、可靠的推荐平台。 主要研究内容如下:

(1)对多种推荐算法和大数据技术进行了全面的分析和探索。通过对比不同推荐系统的优势和不足,我们精心挑选了最适合本系统的推荐算法与技术框架,为后续的系统开发奠定了坚实的理论基础,并提供了必要的技术支持。

(2)对基于大数据的学习推荐系统进行了深入的需求调研。根据收集到的用户需求,对系统进行了全面的规划设计,包括前端和后端的整体架构设计。前端系统主要展示学习资源推荐结果,实现学习资料、英语视频、智能问答等功能模块,后端系统则专注于用户信息管理和学习资料信息管理等核心功能模块。

(3)研究系统相似度计算的方法。通过选用余弦相似度进行计算用户的特征向量与特征矩阵的余弦值,从而向用户推荐余弦值无线接近于1的学习资料。

(4)探究多种技术框架的综合使用,系统在开发过程中选用Vue作为前端开发框架,实现简洁直观且友好的人机交互界面;后端选用SpringBoot框架来对用户的请求进行处理,保证系统功能的稳定运行;采用MySQL关系型数据库管理系统,实现底层数据的存储,确保访问数据的安全性、可靠性等;采用Hadoop框架能够极大提高数据操作的效率。

2 系统相关技术介绍

2.1 个性化推荐

2.1.1 协同过滤推荐算法

对于用户行为数据的剖析,采用基于协同过滤推荐的方法进行分析,并将这些数据与其他用户的行为数据进行对比。通过这种方式,就可以寻找到具有相似行为的用户。然后,根据这些相似用户的喜好,系统会为用户生成个性化的推荐[16]。例如,当用户A收藏学习资料1、3、4,用户B收藏学习资料1、2,用户C收藏学习资料1和学习资料3。这时可以推断出用户A和用户C具有类似的行为,最终将学习资料4推荐给用户C。基于用户协同过滤推荐原理图,如图2-1所示。

图2-1 基于用户协同过滤推荐原理图

根据上述原理分析,将基于用户协同过滤推荐算法的工作流程分为建立用户数据模型,计算用户之间的相似度、寻找相似邻居用户、生成推荐结果[17]。基于用户协同过滤算法实现的流程图,如图2-2所示。

2-2 基于用户的协同过滤推荐流程图

2.2 余弦相似度计算

余弦相似度旨向量与向量之间的角度对应的余弦值,通过这个来反映出两向量间在方向上的不同。与距离度量相比,余弦相似度主要关注于向量的方向性,而非向量间的距离或长度[18]。余弦相似度的计算方法和欧几里得距离计算方法相似,将用户偏好用二维坐标系中的某个点来表示,然后把这两个点和坐标系的原点联系起来,从而构成两个向量。两个用户间的相似度即为两个向量间的角度之余弦值[19]。余弦相似度计算公式如(2-1)所示:            

         (2-1)

2.3 相关技术框架

开发一个基于大数据的学习推荐系统需要较多技术支持,本系统在开发过程中主要采用的技术包括系统的前后台开发技术、数据存储技术等;其包括采用Java编程语言进行代码编写,开发工具选择如表2-1所示。

表2-1 开发工具选择表

开发工具类型

开发工具名称

系统开发工具

IntelliJ IDEA 2020

开发语言

Java

大数据组件

Hadoop

应用服务器

JDK1.8

数据库

MySQL5.7

数据库图形化工具

Navicat Premium 11

数据库设计

Power Designer 16.5

用例图设计

亿图图示

文本编辑器

Notepad++

2.3.1 B/S架构

B/S架构基于Web发展之后而产生的一种网络体系架构,也被成为浏览器/服务器结构。系统采用基于B/S架构进行实现,可以对系统的二次开发进行简化,而且简化了系统的维护和使用。B/S体系架构的工作原理是:客户机浏览器提交一个请求给服务器,服务器则根据这个客户机的请求进行相应的反馈。例如,Internet上文本、图片、动画等信息主要由Web服务器产生,而用户主要是通过浏览器访问这些信息[20]。用户在客户机浏览器下载内容时,如果遇到有与数据库服务器相关的命令,数据库服务器对相关指令进行解释和执行。B/S架构工作流程图,如2-3所示:

图2-3 B/S架构工作流程图

2.3.2 springboot框架

Pivotal团队于2014年推出SpringBoot这种轻量型的开源框架,SpringBoot框架是基于Spring4.0框架的基础上设计与实现的。这个框架具备Spring架构的核心内容,在使用其进行开发设计时可以提供简化的配置、自动配置和可靠的依赖管理,为开发人员在实现过程中的初始化与配置提供简易的操作。SpringBoot允许开发人员在保证构件兼容与稳定的前提下,将更多的精力放在业务逻辑的实现上,以确保了各个组件之间的兼容性与稳定性,从而有效地建立和部署高品质的应用程序。SpringBoot对于初学者和老手而言,都是一种可以让他们迅速建立并部署应用程序的强有力工具。

2.3.3 Hadoop分布式系统框架

Hadoop是一个由Apache基金会为处理大规模数据而设计的一个开放源码的分布式计算平台。Hadoop随着版本的不断更新,从Hadoop 1.0也更新迭代至Hadoop 3.0版本,性能也随之持续提升,相应的核心组件也在不断的丰富。其中Hadoop 3.0版本的核心组件包括HDFS(分布式文件系统)、MapReduce(分布式运算框架)、YARN(资源调度平台)和Common(底层工具模块)。HDFS为海量数据的存储与存取提供了可靠的支持;MapReduce整合了海量数据处理的业务逻辑;YARN作为资源调度平台,为计算平台提供服务器的计算资源,而Common为Hadoop体系中的各组件提供基础工具。提供所需求的工具。Hadoop能够确保用户可以进行开发和运行分布式应用的情况下,不需要进入底层的相关逻辑结构,从而实现数据处理和分析。Hadoop 3.0生态系统架构,如图2-4所示。

图2-4 Hadoop3.0生态系统架构图

2.3.4 Vue用户界面渐进式框架

Vue是一款由中国人在2014年研发的前端框架,因为它的简单性和组件可重用性而深受国内开发者的青睐,它是以MVVM模式为基础,专注于建立用户界面和简化开发者工作流程。在Vue中,通过声明的方式将视图(HTML模板)与数据模型(JavaScript对象)实现绑定,使得数据可以进行双向绑定,进而大大简化了DOM的操作和事件处理。ViewModel在Vue中由Vue实例来体现,它负责对数图和数据同步进行管理,并提供一系列的工具和方法来处理各种交互动作。Vue还支持组件化能力和指令系统,协助开发人员建立高度可重用且解耦的代码结构。对于较为复杂的功能,Vue还提供了各种集成插件,可以为大型应用程序提供强大的前端框架支持。

2.3.5 MySQL数据库技术

MySQL是当前在系统开发过程中使用次数最多的开源关系型数据库管理系统之一,由MySQL AB公司设计研发,目前由Oracle公司管理维护。MySQL具备很好的存储性能,是众多数据库管理系统中的佼佼者,其跨平台的兼容特性,使用户能够在不同的操作系统上进行使用。同时,MySQL关系型数据库管理系统的设计是建立在C/S结构的基础上,可以满足用户对数据库管理系统存储和管理的高效性、可靠性、稳定性的需求,非常适用于各行各业进行数据处理。其不但支持多种程序设计语言,而且具有多线程的功能,并且支持绝大多数的SQL语句,从而可以很好的满足不同的数据库应用。最后,相对于其他数据库管理系统,MySQL具备运行速度快、灵活、适用范围广泛等特点,尤其是在数据库安全方面有突出的表现,为用户提供安全的数据存储环境。

3 系统需求分析

3.1 系统需求概述

大数据学习推荐系统是一种基于用户协同过滤与大数据技术的学习资料管理系统,通过对用户学习行为、兴趣爱好和个性化需求的分析,给用户推荐所需求的学习资料。不仅帮助用户有效的获得自己需要的学习资料,也帮助管理员更好的了解用户的学习情况和资料信息,从而可以为用户提供更为精准的学习资料推荐,进而提高用户的学习兴趣和兴趣。发展大数据的学习推荐系统可以有效的提高学习资源利用率,为用户提供更多的便利和收益,因此,基于大数据的学习推荐系统应该满足以下需求:

(1)基于大数据的学习推荐系统应支持用户个性化推荐,个性化推荐旨通过分析用户的某些行为数据,将用户所感兴趣的学习资料进行推荐,以此来缓解目前所遇到的“信息过载”问题。

(2)了解用户对系统的需求和期待,提高系统操作简易性和用户满意度。例如,系统应该具备友好的操作界面和交互设置,方便用户快速掌握系统的操作和管理。

(3)能够集成丰富的学习资料,以提供更系统性和多样化的学习资料获取体验,而且还应具备良好的兼容性和可扩展性。以适应不断变化的学习需求和科技发展。

3.2 可行性分析

3.2.1 技术可行性分析

对于技术选型都满足系统的设计与实现,通过对系统实现过程中所用到的SpringBoot、Hadoop和Vue技术框架进行结合,从而实现系统的开发;选择MySQL作为数据存储容器,以提供高效、可靠、稳定的数据存储和管理服务,为基于大数据的学习推荐系统研究设计提供前提基础。在技术方面,基于大数据的学习推荐系统的研究是可行的,在软技术方面,在学校中对于这些技术有一定的了解,做过类似的项目。

3.2.2 经济可行性分析

大数据学习推荐系统大多是区域管理,不会有很大的规模,所以数据并发量不会很高,当数据并发量不高时,系统的资源分配也比较少,一般的计算机就能满足用户所需的客户端。另外,大数据学习推荐系统的管理系统也能有效地降低纸张的使用量,节省纸张资源。节省了大量的人力物力。从开发的角度来看,这个项目中所有的软件都是免费开放的。没有任何财务上的投入,只要把精力集中在所做的内容上就可以了,没有相关的研发成本。该系统运行稳定后,无需额外的维护维护费用,投入运行后将对实际工作产生重大影响。

3.2.3 操作可行性分析

操作可行性分析侧重于评估系统是否适应用户操作需求,检验其功能是否能被用户顺畅地运用。在系统设计阶段,务必全面顾及用户的操作习惯和技能水平,确保系统的易用性。鉴于此,大数据学习推荐系统的界面设计简洁而直观,具备搜索和导航功能,其功能布局贴合普通用户的使用习惯,打造了一套便于操作的体系。故此,该系统在操作可行性方面是达标的。

3.3 系统功能需求分析

系统满足用户个性学习资料学习、友好的人机交互界面、整合大量学习资料等需求下,应该具备以下功能:

(1)基于大数据的学习推荐系统管理员端:

①用户管理功能:主要用于对使用系统用户的信息进行管理。管理员可以对用户信息的进行添加、编辑或删除用户等操作。

②资料类型管理功能:可管理员具备定义和删除资料类型的权限,并能修改其名称、描述等信息。同时,管理员还能将资料类型与特定功能关联,以实现资料分类的清晰管理。

③学习资料管理功能:管理员能够上传和删除学习资料,确保系统内容的更新与准确性。同时,他们负责资料的分类、标签管理等,为用户提供清晰合规的学习资源。

④学习记录管理功能:具备学习记录管理功能,主要用于记录用户使用系统进行资料获取以及学习的一个时间,能够轻松查询和统计用户的学习记录,进而分析用户学习行为。

⑤英语视频管理功能:该功能主要管理英语视频的上传、删除、查看等操作。

⑥文章阅读管理功能:管理员负责管理文章的整个生命周期,包括发布新文章、删除过时文章和修改文章等。

⑦学习网站链接管理功能:管理员具备添加和删除学习网站链接的权限。同时,需负责定期检测链接的有效性,确保用户访问的顺畅性。

⑧学习社区管理功能:管理员拥有全面的社区管理权限,包括添加帖子、查询帖子以及设置帖子是否置顶。同时,他们还能查看和管理用户对帖子的评论信息,以确保社区话题、讨论和互动的顺利进行和有效管理。

⑨系统管理功能:管理员在智能问答管理方面扮演着关键角色,他们需要配置和维护智能问答系统,通过不断优化算法和更新知识库,确保问答功能的准确性和实用性,为用户提供及时且准确的信息支持。此外,管理员还承担着轮播图和公告栏的管理职责,他们可以根据需求上传、编辑轮播图,发布、编辑和删除公告,并管理公告的分类,从而保持界面的美观性和信息的时效性,为用户提供更好的使用体验。

⑩数据可视化管理功能:对系统资料数据进行统计和分析,以及用户学习时长和日学习时长进行统计,可为管理者提供更好的推荐决策和资料获取。管理员用例分析图,如图3-1所示。

图3-1 管理员用例分析图

(2)基于大数据的学习推荐系统用户端:

①学习资料推荐功能:系统在首页为用户提供乱播图的展示、公告栏展示和各学习资源推荐,可供用户进行学习。其中,学习资源推荐有学习资料推荐、英语视频推荐和文章阅读推荐。

②学习资料功能:提供多领域、多学科的丰富资源,支持定期更新、精准搜索和高质量筛选,并允许用户下载,满足用户多样化和持续性的学习需求。

③英语视频功能:为用户提供丰富的英语视频资源,以供用户进行学习,同时,可以进行评论、收藏等操作。

④文章阅读功能:系统提供丰富多样的文章,涵盖不同领域的知识和资讯,用户可以进行评价、收藏等操作。

⑤学习社区功能:在社区中,用户能够自由的交流学习心得和经验,解答疑问,可以根据自身需求进行帖子的参与讨论,营造积极友好的社区氛围,以激进彼此的学习与进步。

⑥公告栏功能:系统能够高效管理公告信息,包括及时发布重要通知和活动信息,以便于用户查阅。

⑦智能问答功能:该功能具备高度的准确性,能够迅速响应并正确理解问题,给出正确的答案。用户用例分析图,如图3-2所示。

图3-2 用户用例分析图

3.4 系统性能需求分析

(1)响应时间

用户在使用系统所有功能时,系统功能需要在合理的时间范围内迅速对用户的请求做出响应,从而确保用户获得顺畅的使用体验。例如首页推荐结果作为针对用户的个性化资源推荐,可以显著提升用户的好感度。

(2)安全性

系统需要保证用户数据的安全性和隐私性,应具备相应的安全设置,如使用前后前后端的方式防止用户数据被篡改。

(3)易用性

前端交互界面的设计应简洁美观,确保用户在操作过程中的直观性和易理解性,系统功能模块所在区域需划分明确清晰,以提高用户对系统使用的满意程度。

(4)稳定性

系统设计过程中应考虑配备必要的容错机制,以降低系统在使用过程中发生异常的概率,确保系统能够稳定的使用,保证用户在使用过程中不会出现系统故障情况。

(5)可扩展性

系统需具备高度的可扩展性,确保在用户数量不断增加的情况下,能够正常运行,并能够灵活的应对未来用户修改功能或添加功能的需求,以及其他的需求。

4 系统设计

4.1 系统总体设计

通过对系统相关技术介绍和需求分析,基于大数据的学习推荐系统整体框架采用交互层、业务逻辑层、数据源层组成。系统总体架构图,如图4-1所示。

图4-1 系统总体架构图

(1)交互层:提供很好的人机交互界面,对系统提供的数据进行展示,调用业务逻辑层中提供的各种接口,进行功能的实现。

(2)业务逻辑层:系统的架构的业务逻辑层主要为数据源层提供支持,其通过整合Hadoop框架,极大地提高数据处理的便捷性和效率。

(3)数据源层:主要目的是整合所有数据源端数据,用于数据的存储和管理,包括用户信息、学习资料信息、视频资料信息等。

4.2 系统功能设计

用户使用大数据的学习推荐系统时,进入系统首页可以进行学习系统推荐的学习资料、英语视频、文章阅读,通过导航栏可以进入不同功能模块进行不同的操作,管理员可以用户信息、学习资料信息、学习记录信息等信息进行管理,因此,系统功能结构图,如图4-2所示。

图4-2 系统功能结构图

基于大数据的学习推荐系统的构建主要由用户管理模块、学习资源推荐模块、学习社区模块、后台管理模块等组成,各模块的操作流程图和时序图如下:

(1)用户管理模块

用户访问个人中心时,首先需要在前端登录界面输入账号和密码。系统会对这些信息与数据库中的记录进行比对验证。验证成功后,用户可进入系统首页并点击“个人中心”进入用户管理模块。若验证失败,用户可尝试重新登录或进行注册账号。用户管理流程图,如图4-3所示,用户管理时序图,如图4-4所示。

图4-3 用户管理流程图

图4-4 用户管理时序图

(2)用户学习资源推荐模块

用户进入学习资源推荐模块前需进行账号登录,若数据库存在账号信息,则进入系统首页查阅学习资源推荐信息;反之账号信息有误,则需重新输入。用户学习资源推荐流程图,如图4-5所示;用户学习资源推荐时序图,如图4-6所示。

图4-5 用户学习资源推荐流程图

图4-6 用户学习资源推荐时序图

(3)学习社区模块

用户访问学习社区模块,用户访问学习社区模块,首先要进入登录界面,输入正确的账号信息进行系统登录,成功登录系统会跳转到首页,然后点击导航栏的学习社区模块,进行社区帖子的操作;反之,则需进行注册或输入正确的账号信息进学习社区。学习社区流程图,如图4-7所示;学习社区时序图,如图4-8所示。

4-7 学习社区流程图

图4-8 学习社区时序图

(4)智能问答模块

用户使用智能问答功能前,需进行登录系统,当账号信息核验正确后,可进入系统,通过首页导航栏使用智能问答;否则需检查账号信息是否正确。智能问答流程图,如图4-9所示;智能问答时序图,如图4-10所示。

图4-9 智能问答流程图

图4-10 智能问答时序图

(5)后台管理核心模块

当输入的账号信息验证正确,则进入管理员后台系统,可对用户管理、资料类型管理、学习资料管理等模块进行操作;反之,系统提示账号信息错误,需重新输入正确的账号信息。后台管理流程图,如图4-11所示;后台管理时序图,如图4-12所示。

4-11 后台管理流程图

图4-12 后台管理时序图

4.3 数据库设计

4.3.1 概念结构设计

数据库设计主要为系统提供稳定与安全的存储服务,在该系统实现过程中,通过采用MySQL这一关系型数据库管理系统对数据进行存储管理,各模块的数据表包括用户信息表(yonghu),管理员信息表(users),学习资料信息表(xuexizhiliao),学习记录信息表(xuexijilu),英语视频信息表(shipin),文章阅读信息表(wenzhang)等主要数据表。大数据学习推荐系统E-R关系模型图,如图4-13所示。

图4-13 大数据学习推荐系统E-R关系模型图

4.3.2 逻辑结构设计

(1)用户信息表(用户ID,用户账号,密码,姓名,性别,手机号,头像,创建时间)

(2)管理员信息表(管理员ID,用户名,密码,角色,新增时间,头像)

(3)学习资料信息表(资料ID,资料名称,资料类型,资料简介,资料封面,资料视频,资料档案,上传时间,创建时间,最近点击时间,评论,收藏)

(4)英语视频信息表(视频ID,创建时间,视频标题,发布日期,视频内容,视频封面,视频简介,最近点击时间,评论,收藏)

(5)文章阅读信息表(文章ID,文章标题,文章内容,发布时间,文章封面,文章简介,创建时间,最近点击时间,评论,收藏)

(6)学习记录信息表(用户账号,姓名,资料名称,资料类型,资料简介,资料图片,开始时间,结束时间)

4.3.3 物理结构设计

(1)用户信息表主要存储用户相关信息,如用户ID、用户账号、用户密码等基本信息。在用户表中,用户ID是唯一的,作为表的主键。用户信息表(yonghu)的设计如表4-1所示。

4-1 用户信息表

字段名称

数据类型

字段说明

备注

id

bigint(20)

用户ID

主键,非空

yonghuzhanghao

varchar(200)

用户账号

非空

mima

varchar(200)

用户密码

非空

xingming

varchar(200)

用户姓名

非空

xingbie

varchar(200)

用户性别

非空

shouji

varchar(200)

手机号

非空

touxiang

longtext

头像

addtime

tinmestamp

创建时间

非空

(2)管理员信息表主要存储系统后端管理员信息,主要是划分前端用户信息和后端管理员信息。管理员信息表(users)的设计如表4-2所示。

4-2 管理员信息表

字段名称

数据类型

字段说明

备注

id

bigint(20)

管理员ID

主键,非空

username

varchar(100)

用户名

非空

password

varchar(100)

密码

非空

image

varchar(200)

头像

role

varchar(100)

角色

addtime

timestamp

新增时间

非空

(3)学习资料信息表主要存储各种类型的学习资料,包含各种学习资料的详细信息,如资料名称、资料简介等。学习资料信息表(xuexiziliao)的设计如表4-3所示。

4-3 学习资料信息表

字段名称

数据类型

字段说明

备注

id

bigint(20)

资料ID

主键,非空

addtime

timestamp

创建时间

非空

ziliaomingcheng

varchar(200)

资料名称

ziliaoleixing

varchar(200)

资料类型

ziliaojianjie

longtext

资料简介

ziliaotupian

longtext

资料图片

ziliaoshipin

longtext

资料视频

ziliaodangan

longtext

资料档案

shangchuanshijian

datetime

上传时间

clicktime

datetime

最近点击时间

discussnum

int(11)

评论数

storeupnum

int(11)

收藏数

(4)英语视频信息表主要对获取的视频数据进行存储,包含视频的详细信息,如学习视频、视频简介等。视频信息表(shipin)的设计如表4-4所示。

4-4 英语视频信息表

字段名称

数据类型

字段说明

备注

id

bigint

视频ID

主键,非空

addtime

timestamp

创建时间

非空

shipinbiaoti

varchar

视频标题

shipinjianjie

longtext

视频简介

shipinfengmian

longtext

视频封面

shipinneirong

longtext

视频内容

faburiqi

datetime

发布日期

clicktime

datetime

最近点击时间

discussnum

int

评论数

storeupnum

int

收藏数

(5)文章阅读信息表主要存储文章信息,为前端提供数据支持。包含文章各属性信息,如文章内容、文章创建时间等。文章阅读信息表(wenzhang)的设计表4-5所示。

4-5 文章阅读信息表

字段名称

数据类型

字段说明

备注

id

bigint(20)

文章ID

主键,非空

addtime

timestamp

创建时间

wenzhangbiaoti

varchar(200)

文章标题

wenzhangtupian

longtext

文章图片

wenzhangneirong

longtext

文章内容

fabushijian

datetime

发布时间

clicktime

datetime

最近点击时间

discussnum

int(11)

评论数

storeupnum

int(11)

收藏数

(6)学习记录信息表主要存储用户学习资料的时间信息。主要包含字段用户账号、学习时间等。学习记录信息表(xuexijilu)的设计如表4-6所示。

4-6 学习记录信息表

字段名称

数据类型

字段说明

备注

addtime

timestamp

创建时间

非空

ziliaomingcheng

varchar(200)

资料名称

ziliaoleixing

varchar(200)

资料类型

ziliaojianjie

varchar(200)

资料简介

ziliaotupian

longtext

资料图片

kaishishijian

datetime

开始时间

jieshushijian

datetime

结束时间

xuexishizhang

double

学习时长

yonghuzhanghao

varchar(200)

用户账号

xingming

varchar(200)

姓名

5 系统实现

5.1 Hadoop环境搭建模块

通过在本地配置Hadoop环境,实现对大规模数据进行计算和存储,从而为系统提供较强的分布式运算与存储功能。配置Hadoop相关文件,启动所有进程,将本地数据上传到Hadoop的核心组件HDFS上,实现数据高效的上传、删除、下载,使用本地进入50070界面查看创建的文件和上传的数据。HDFS数据存储图,如图5-1所示。

5-1 HDFS数据存储图

数据上传到HDFS伪代码:

       //上传到hadoop HDFS
       hadoopTemplate.uploadFile(dest.getAbsolutePath());
   FileUtils.copyFile(dest, new File("D:\\software\\IDEAWorkSpace\\Datarecommendation\\src\\main\\resources\\static\\upload"+"/"+fileName));   if(StringUtils.isNotBlank(type) && type.equals("1")) {
      ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
      if(configEntity==null) {
         configEntity = new ConfigEntity();
         configEntity.setName("faceFile");
         configEntity.setValue(fileName);
      } else {
         configEntity.setValue(fileName);
      }configService.insertOrUpdate(configEntity);
   }return R.ok().put("file", fileName);
}

5.2 协同过滤推荐算法模块

协同过滤推荐模块的实现是将基于用户协同过滤算法应用在系统中。通过获取数据库存储的用户收藏记录信息,构建一个用户收藏数据矩阵。然后采用协同过滤推荐技术生成个性化推荐列表。最终将推荐数据返回到前端用户界面。在这个算法中,系统使用余弦相似度来测量两个用户向量之间的夹角余弦值,从而判断用户之间的相似程度[21]。如果计算得出的余弦值无限接近于1,则代表这两个用户之间的行为活动越相似,如果计算出来的余弦值无线接近于-1,则反映出这两个用户之间的行为活动越不相同。最后,将推荐效果展示在首页界面,方便用户学习预览。推荐效果展示图,如图5-2所示。

5-2 首页推荐效果展示图

推荐算法部分伪代码:

public double calculateSimilarity(String user1, String user2) {
    //计算用户之间的相似度【余弦相似性】
    Integer id1 = this.userIndex.get(user1);
    Integer id2 = this.userIndex.get(user2);
    if(id1==null || id2==null) return 0.0;
    return this.sparseMatrix[id1][id2]/Math.sqrt(userRatings.get(indexUser.get(id1)).size()*userRatings.get(indexUser.get(id2)).size());
}
public List<String> recommendItems(String targetUser, int numRecommendations) {
    // 计算目标用户与其他用户的相似度
    Map<String, Double> userSimilarities = new HashMap<>();
    for (String user : userRatings.keySet()) {
        if (!user.equals(targetUser)) {
            double similarity = calculateSimilarity(targetUser, user);
            userSimilarities.put(user, similarity);
        }
    }
    // 根据相似度进行排序
    List<Map.Entry<String, Double>> sortedSimilarities = new ArrayList<>(userSimilarities.entrySet());
sortedSimilarities.sort(Map.Entry.comparingByValue(Comparator.reverseOrder()));
    List<String> similarUsers = new ArrayList<>();
    for (int i = 0; i < numRecommendations; i++) {
        if (i < sortedSimilarities.size()) {
            similarUsers.add(sortedSimilarities.get(i).getKey());
        } else {
            break;
        }
    }// 选择相似度最高的K个用户

// 获取相似用户喜欢的物品,并进行推荐

    Map<String, Double> recommendations = new HashMap<>();
    for (String user : similarUsers) {
        Map<String, Double> ratings = userRatings.get(user);
        for (String item : ratings.keySet()) {
            if (userRatings.get(targetUser)!=null && !userRatings.get(targetUser).containsKey(item)) {
                recommendations.put(item, ratings.get(item));
            }
        }
    }

5.3 用户管理模块

5.3.1 用户登录注册模块

使用系统前,需进行用户账号的注册和登录,登录账号进入系统后可以对前端功能模块进行使用。对于新的用户要使用系统,需要在注册界面填写好相应的信息。当输入的信息符合数据库表字段格式要求后,界面会提示注册成功;当输入信息不符合时,注册界面会提供那个信息不正确。用户注册效果图,如图5-3所示。

图5-3 用户注册效果图

实现用户注册伪代码:

@IgnoreAuth   
   @RequestMapping("/register")  // 注册接口的请求映射
   public R register(@RequestBody YonghuEntity yonghu){

// 定义一个名为register的方法,接收一个YonghuEntity类型的参数yonghu
       YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", yonghu.getYonghuzha nghao()));
   if(u!=null) {  // 如果查询到用户信息,说明用户已存在
      return R.error("注册用户已存在"); // 返回错误信息
   }
   Long uId = new Date().getTime();// 生成用户ID
   yonghu.setId(uId); // 设置用户ID
       yonghuService.insert(yonghu); // 将用户信息插入数据库
       return R.ok();// 返回成功信息
   }

5.3.2 个人中心模块

用户登录系统后,可以对个人信息进行查看和管理,功能模块包括个人信息、修改密码、聊天记录、用户、学习资料、学习记录、我的发布、我的收藏、浏览历史。个人中心实现效果图,如图5-4所示。

图5-4 个人中心实现效果图

(1)聊天记录功能主要被设计用于为用户提供一种方便、直观的方式,以查阅和回顾他们与其它用户之间的信息交流。这种功能不仅允许用户查看他们之前的对话内容,而且还能帮助他们跟踪对话的进展,从而确保没有重要的信息被遗漏。用户聊天记录实现效果图,如图5-5所示。

图5-5 用户聊天记录实现效果图

  1. 个人中心用户子模块是一个重要的功能组件,它主要实现用户与用户之间的聊天交流。通过个人中心用户子模块,用户可以方便地与系统其他用户进行文字、图片聊天,实现信息的快速传递和共享。系统用户沟通交流效果图,如图5-6所示。

图5-6 系统用户沟通交流效果图

(3)学习资料子模块是一个功能强大的组件,它为用户提供了一个便捷的平台,可用于上传学习资源。通过学习资料子模块,用户可以方便地与系统其他用户分享自己的学习资料。用户上传学习资料操作入口图,如图5-7所示。

图5-7 用户上传学习资料操作入口图

5.4 学习资源管理模块

5.4.1 系统首页模块

用户通过注册登录系统后,可以看到系统首页、学习资料、英语视频、文章阅读、学习网站链接、学习社区、公告栏和智能问答模块,系统首页通过采用基于用户协同过滤算法对用户收藏行为进行处理,给用户提供相应资料信息的推荐效果展示,包括公告栏信息展示、学习资料推荐、英语视频推荐、文章阅读推荐,用户可以根据系统推荐信息进行个性化预览学习。为其提供个性化推荐服务。系统首页效果图,如图5-8所示。

图5-8 系统首页效果图

5.4.2 学习资料模块

用户访问学习资源模块,首先需进行系统登录,进入系统后通过导航栏进入学习资源模块,该功能模块能够向用户展示出系统上所有的学习资料,用户可以根据自己的需求选取所感兴趣的资料进行学习。用户进入资料详情页面,可对资料进行点赞、收藏和评价等操作。学习资料详情效果图,如图5-9所示。

图5-9 学习资料详情效果图

在资料详情界面中用户还可以对资料进行评价、视频观看,资料评价视频观看效果图,如图5-10所示。

图5-10 资料评价视频观看效果图

5.4.3 英语视频模块

用户登录系统,通过导航栏进入英语视频功能界面,该功能主要为用户展示系统所有的英语学习视频。可以根据个人需求进行有目标的去学习,进入英语视频详情界面,用户可以了解到英语视频的主要信息,也可操作对视频的收藏、点赞等操作。英语视频模块详情效果图,如图5-11所示。

图5-11 英语视频模块详情效果图

5.4.4 文章阅读模块

用户登录系统后,进入文章阅读界面,该界面主要展示系统内所有文章资源,用户可以通过搜索或者直接点击所感兴趣的文章进行阅读,同时,可以进行点赞、收藏和评论等操作,文章阅读模块详情效果图,如图5-12所示。

图5-12 文章阅读模块详情效果图

5.4.5 学习网站链接模块

使用学习网站链接功能,用户需要进行登录系统进入学习网站链接界面,该模块收集了在线学习平台的网站链接,用户进入详情后可以点击链接进行跳转到对应的在线学习平台,为用户提供不同的学习体验。学习网站链接效果图,如图5-13所示。

图5-13 学习网站链接效果图

5.5 互动社区模块

5.5.1 学习社区模块

用户进入学习社区后,选择感兴趣的帖子进行学习。进入帖子详情页,用户能够对帖子进行发布评论、点赞等操作,回学习社区也可以进行发布帖子,为用户也用户之间提供友好的互动学习机制。学习社区实现效果图,如图5-14所示。

图5-14 学习社区实现效果图

5.5.2 公告栏模块

用户想了解公告信息,有两种方式进行访问,第一种是用户进入系统首页,通过首页公告栏展示区域进行访问;第二种方式通过系统导航栏进入公告栏模块。管理员通过操作后台进行更新公告栏信息,从而起到通知作用,用户也能够看到相应通知。公告栏实现效果图,如图5-15所示。

图5-15 公告栏实现效果图

5.6 智能问答模块

用户登录系统,点击智能问答模块,会弹出输入框,用户只需在输入内输入问题,系统就会回复用户相应问题答案,提供问答服务。智能问答效果图,如图5-16所示。

图5-16 智能问答效果图

智能问答模块通过创建后端控制类,实现了对智能问答(ChatEntity)的增删改查、分页查询等功能,调用接口方法操作智能问答的数据。以下是接口实现伪代码:

public interface ChatDao extends BaseMapper<ChatEntity> {
   List<ChatVO> selectListVO(@Param("ew") Wrapper<ChatEntity> wrapper);


   ChatVO selectVO(@Param("ew") Wrapper<ChatEntity> wrapper);


   List<ChatView> selectListView(@Param("ew") Wrapper<ChatEntity> wrapper);


   List<ChatView> selectListView(Pagination page,@Param("ew") Wrapper<ChatEntity> wrapper);


   ChatView selectView(@Param("ew") Wrapper<ChatEntity> wrapper);
}

5.7 数据可视化管理模块

该模块主要对学习资料信息和用户学习时长的准确、直观展现,旨在帮助管理者深入了解资料数据以及用户的学习时长情况。该模块提供了系统所有资料名称的环形图、资料类型的漏斗图、用户学习时长的柱状图以及用户日学习时长的折线图。通过这些数据图表能够得出学习资料类型的多样性以及用户的活跃度信息。后端数据看板效果图,如图5-17所示。

图5-17 后端数据看板效果图

数据统计计算伪代码:可以通过按值进行统计、多值进行统计、时间统计类型。以下为按值计算代码展示:

@RequestMapping("/value/{xColumnName}/{yColumnName}")
public R value(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName,HttpServletRequest request) {
    Map<String, Object> params = new HashMap<String, Object>();
    params.put("xColumn", xColumnName);
    params.put("yColumn", yColumnName);
    EntityWrapper<XuexiziliaoEntity> ew = new EntityWrapper<XuexiziliaoEntity>();
    List<Map<String, Object>> result = xuexiziliaoService.selectValue(params, ew);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    for(Map<String, Object> m : result) {
        for(String k : m.keySet()) {
            if(m.get(k) instanceof Date) {
                m.put(k, sdf.format((Date)m.get(k)));
            }
        }
    }
    return R.ok().put("data", result);
}

后台管理系统主要是对所有的系统信息进行管理,其中包括用户管理、资料类型管理、学习资料管理等重要信息。为管理员提供一个简洁直观的管理界面,帮助管理员高效地管理系统的相关信息。后台登录界面效果图,如图5-18所示。

图5-18 后台登录界面效果图

6 系统测试

6.1 功能测试

在系统设计当中,通过功能测试判断系统性能,经过详细设计和编码后,使用黑盒测试对大数据学习推荐系统的部分功能进行反复检测和修改,以确保其满足用户需求并实现预期功能。

(1)用户功能操作模块

6-1 用户部分功能操作模块测试表

测试模块

测试描述

页面响应描述

测试结果

登录模块

输入正确账号、密码

提示“登录成功”,进入系统

测试通过

账号或密码为空

显示友好错误“请输入密码”

输入不存在用户

提示“账号或密码不正确”

账号和密码不匹配

提示“账号或密码不正确”

注册模块

手机号格式输入错误

显示友好提示“手机应输入手机格式”

测试通过

账号为空

提示“用户账号不能为空”

姓名为空

提示“姓名不能为空”

密码为空或者密码与确认密码不一致

提示“两次密码输入不一致”

输入已存在账号

提示“注册用户已存在”

输入正确信息

注册成功

个人中心模块

点击个人中心

显示个人信息和各个子模块信息

测试通过

点击修改密码,输入原始密码和新密码,进行密码修改

修改密码成功,下次登录系统生效

查看聊天信息

成功查看

点击用户模块

显示系统所有用户

点击学习资料

成功显示系统所有类型学习资料

查看学习记录

成功显示学习记录

查看发布资料

成功显示发布资料

查看收藏资料

成功显示收藏资料

查看浏览记录

成功显示浏览记录

智能问答模块

输入问题

显示问题答案

测试通过

(2)学习资料功能操作模块

表6-2 学习资料功能操作模块测试表

测试功能

测试描述

页面响应描述

测试结果

资料显示

点击点击系统导航栏学习资料

显示系统学习资料

测试通过

资料详情

点击资料进行学习

显示资料详情信息

测试通过

视频观看

点击视频播放按键立即观看视频

成功播放

测试通过

资料档案下载

点击下载按键进行下载

资料文件成功下载到本地文件夹

测试通过

资料评论

输入评论内容,立即提交评论

提示“评论成功”

测试通过

资料收藏

点击收藏

提示“收藏成功”

测试通过

(3)学习社区功能操作模块

6-3 学习社区功能操作模块测试表

测试功能

测试描述

页面响应描述

测试结果

帖子预览

导航栏点击学习社区

帖子显示成功

测试通过

发布帖子

填写帖子标题、内容,点击发布帖子

提示帖子“发布成功”

测试通过

查看帖子内容

点击帖子标题

进入帖子详情

测试通过

帖子评论

点击评论,输入评论内容,点击确定

提示 “评论成功!”

测试通过

评论回复

点击回复

回复成功

测试通过

帖子点赞

点击点赞

提示“点赞成功”

测试通过

6.2 性能测试

系统性能测试主要对系统进行压力测试,模拟系统在很多用户使用的情况下所能承受的最大压力。采用Jmeter测试工具对系统关键功能进行响应速度的测试,以验证是否达到预期效果。通过对用户登录、用户注册、学习资源推荐、学习社区等部分功能模块进行测试,测试结果满足用户需求。测试结果如表6-4所示。

操作

预期时延

响应时延

用户登录

<200ms

170ms

用户注册

<200ms

175ms

学习资源推荐

<500ms

367ms

学习社区

<350ms

214ms

智能问答

<300ms

183ms

数据可视化

<300ms

176ms

7 总结与展望

7.1 总结

该论文首先指出了互联网技术与个性化推荐融合所带来的“信息过载”问题,在教育领域尤为突出。为了应对用户在学习资源获取上的困境,论文设计并实现了一个基于大数据的学习推荐系统。在系统的开发过程中,对现有的推荐系统进行了深入研究,通过对比分析,吸纳了各系统的优势,同时规避了它们的不足,以确保新设计的推荐系统能够切实满足用户的需求。系统采用了SpringBoot、vue、Hadoop等先进框架以及B/S架构,成功实现了学习资料的个性化推荐、智能问答、学习社区、后台管理等一系列核心功能。经过反复的测试与优化,系统能够基本满足用户对运行环境、个性化推荐服务和各功能模块等需求。

课题研究的大数据学习推荐系统,不仅能够解决当前教育领域在大数据环境下“信息过载”导致学习资源难以获取的难题,而且有效提升了用户的学习体验和学习兴趣,促进了教育领域与大数据技术的高度融合,为教育信息化的发展奠坚实的基础,并对未来教育领域的革新提供新的思想和方向。

7.2 展望

随着大数据技术的不断发展,人们对精准获取学习资源的要求不断提高,基于大数据的学习推荐系统在未来将展现出更加广阔的应用前景。因此,本人在系统开发过程中遇到较多难题,提出了相应的解决方案,起到一定的积极效果。基于目前已实现的系统,还可以进行对以下两个方面进行优化拓展。

(1)用户视觉界面优化

对目前系统还需进行前端界面的显示进行优化完善,让用户使用更加友好。
(2)智能问答优化

目前系统是通过管理员上传问题与答案进行回复用户,用户描述的问题必须要与管理员上传的问题相同才会回复用户。在接下来时间里将对该模块尝试应用目前一些接口进行完善。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐