基于个性化推荐的高校学习系统的设计与实现

2020-04-14 04:54王文豪彭倩陈力凯石开洪吴云
电脑知识与技术 2020年4期

王文豪 彭倩 陈力凯 石开洪 吴云

摘要:针对目前大多数的高校学习系统不能满足不同师生群体的在线学习需求,该文运用了Python语言、Flask框架、SQLAlchemy、协同过滤算法等相关技术对系统的总体架构、功能模块、数据库以及API进行设计,实现了班级管理、作业管理、资料搜索、在线考试、学习资源推荐等主要功能。系统经过实际测试后,系统运行稳定,能够较好地满足不同师生群体的个性化需求。

关键词:高校学习系统;个性化推荐;Python;协同过滤

中图分类号:TP311.5

文献标识妈:A

1 概述

目前许多高校已经研发岀了本学校的“高校学习系统”,由,于高校学习系统的出现,让学生更容易获取自己感兴趣的专业,知识以及在线完成老师分配的教学作业。然而当前大部分地,区的高校学习系统并不能满足不同高校师生的教学需求,各类,学习系统为学生提供的学习资源和反馈信息基本上都是千篇,一律,然而不同用户群体对不同学习资源的需求是存在差异,的。本文基于以上需求,拟开发一款针对不同师生群体的个性,化推荐的“高校学习系统”,通过数据挖掘、日志分析等技术,釆,集学生用户的学习需求、学习习惯、学习成绩等个性化的数据,通过基于物品的协同过滤算法为不同学生的学习需求进行个,性化、有针对地推荐相关学习资料和课程。

2 系统设计

本系统运用RESTful,API设计理念进行API设计,同时使用了SQLAlchemy、Flask,框架[1]、Pandas、Xpath、Bootstrap、Vue等技术,实现了系统功能。

2.1 功能模块设计

根据系统需求,系统分为教师端和学生端,教师端的功能,模块主要有创建班级、管理班级、发布作业、批改作业、发布资,料等;学生端的主要功能模块有加入班级、查看作业及状态、在,线考试、个性化课程推荐等功能详细功能如图1所示。

2.2 数据库设计

本文根据系统需求共设计了,20个数据库表分别为用户表,(user)教师表(teacher)学生表(student)用户认证表(usertoken),作业表(work),资料表(data),搜索资料表(search),题目表(peoblem),帖子表(post)班级表(class)等。在这里选取用户表、作业,表讲述其中的逻辑结构设计。

1)用户表(用户编号用户名,用户学号/工号,用户密码,用,户手机号码用户权限编号,用户出生年月,手机验证码id)其,中用户编号为主键,用户学号/工号具有唯一性用户密码和用,户手机号码不为空,手机验证码id为外键。

2)作业表(作业编号,班级编号,作业名称,作业发布人,作,业发布人编号,作业发布时间作业截止时间作业状态),其中,作业编号为主键班级编号、作业发布人编号和作业发布人为,外键。

3 技术实现

3.1 ORM技术的实现

系统后端在数据访问层与数据库交互时,使用session,=Session()创建会话类通过会话类的实例对象session调用方法,add()、delete()、update()和query()实现对数据库的增删改查操,作。以“创建作业”功能为例系统后端运用session的add。方法,向作业表中添加数据。用户在创建作业页面输入的,“work_classid”,为,“13”,;“work_name”,为“数学作业,4”,;“work_deadtime”为截止时间;“work_statement”为作业状态,此,外“work_issueid”为当前创建者用户编号,“work_issuer”为,“test"。

3.2 RESTful API的实现

本文以“创建作业”,API[2]为例当用户触发“创建作业”功能,时,系统调用对应的API前端从页面获取请求参数。在后端获取到参数后,运用封装好的。pen方法新建Http请求,并指定此,请求的方法、URL以及验证信息,最后调用send方法将请求参,数发送到后端服务。此API的请求方式是POST路径是“/sys-,tem/class/create/work/”状态码200表示前后端数据交互成功。

3.3 推薦算法的实现

基于物品的协同过滤算法⑶是当前最主流、最基础、应用最,多的推荐算法,该算法主要是通过分析用户的行为信息并计算,与该物品之间的相似度的物品最终推荐给用户。例如用户A,为一个数据结构的视频点过赞而用户B对一个数据结构的视,频以及一个机器学习的视频点了赞ItemCF算法则会将机器学,习的学习资源推荐给用户A。基于物品的协同过滤算法在本,系统中的运用流程如下:

Stepl:系统后端服务器调用学习资料的API接口,并通过,AJAX接收前端的请求参数;

Step2:通过前端传回的usertoken获取该用户的user_id和,该用户所在班级的所有同学的user_id并获取该用户已下载的,学习资源编号和该班级所有用户下载的学习资源编号建立用,户-学习资源的倒排表train;

Step3:根据用户-学习资源倒排表train得到每个学习资源,集合将集合里的学习资源两两加一得到一个矩阵再将这些,矩阵相加得到矩阵C最后将矩阵C归一化得到学习资源之间,的余弦相似度矩阵W;

Step4:得到相似度矩阵W之后通过ItemCF的计算公式计,算用户A对学习资源的兴趣字典rank,并根据用户兴趣度由高,向低排序取10个学习资料编号;

Step5:根据10个学习资料的编号获取对应学习资料的相,关信息封装成推荐列表返回到前端。

4 系统实现

本文最终设计并实现了基于个性化推荐的高校学习系统,系统功能界面如图2所示。

本系统于2019年3月部署到贵州大学校园网上开始在贵,州大学东校区测试运行用户总数量统计结果如图3所示。从,图中可以得出,由于2019年3月至4月系统还在调试和推广,期,用户数量相对较少。在2019年4月至6月,处于大学生刚,刚开学在校学习的时间在学院的大力推广之下,教师和学生,通过该系统进行线上学习,使得用户总数量急速上升;在2019,年7月至8月期间因暑假原因,用户数增量不大,但在9月份,用户数量得到提高已达450人次。

5 结束语

目前,该系统在贵州大学花溪东校区的运营情况良好学,校师生使用该系统作为日常教学工具的频率不断增加,系统访,问量日均达到100次左右,充分说明此系统能够满足不同师生,群体的需求对学生的个性化学习有着重要意义,体现了该系,统具有高实用和推广的价值。

参考文献:

[1]李超,徐云龙华中伟,等.一种基于Python,Flask的Web服务器端设计[J].信息与电脑:理论版2019(8):87-88.

[2]张前进.基于REST的泛在网络资源服务架构设计[J].陕西理工学院学报:自然科学版201733⑵:60-6368.

[3]林丽金,李文翔杨俊贤,等.基于协同过滤在高校学习资源个性化推荐系统中应用研究[J].价值工程201635(4):191-193.

[4]李晓瑜.协同过滤推荐算法研究[J].计算机与数字工程2019,47(9):2118-21222136.

[通联编辑:代影]