基于Django框架的备课资源推荐系统的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要
目前,人工智能的发展为教育领域赋能,从为教师服务的角度看,具有减轻负担、帮助教师更加关注学生个性发展、提高效率等优势。

比如,人工智能的备课技术,可以满足教师个性化备课的需要,根据教师的不同需求为教师推送不同的教学资源,提供智能化备课的服务。

研究发现,现有的备课平台主要存在两个问题。

1)未能面向全体教师。

现有的备课平台,大多面向K12阶段的教师,忽略了高校教师的备课需要。

2)未能实现教学资源的个性化推荐。

随着数据量日益增多,在海量资源中找到合适的资源变得越来越困难,并且用户也希望系统能够做到根据每个人的不同需求进行针对性的推荐。

基于以上分析,本文提出了基于Django框架的备课资源推荐系统。

本系统面向高校教师,由于高校中专业较多,且分类较细,故以计算机课程为例。

设计思路如下。

利用爬虫技术从网络中爬取与计算机课程相关的教学资源,并结合Django框架搭建起备课平台。

其次,在平台中融入了基于标签的推荐算法和基于关联规则的推荐算法,实现教学资源的个性化推荐。

这样做的目的是,利用标签解决推荐系统中的冷启动问题,新用户可以通过在注册时选择兴趣标签的方式,让系统快速的了解用户需求,以此避免用户在刚刚注册时,系统无法为其推荐合适的资源。

同时,为了使推荐结果更为准确,在标签推荐中,运用了TF-IDF算法计算标签所占权重。

再者,为了可以反馈给用户更加丰富的推荐结果,融入了关联规则,它可以分析出标签之间的联系,从而挖掘出用户潜在的兴趣标签,并把潜在兴趣标签下的资源也推荐给用户。

本系统利用Python语言结合MySQL数据库来进行开发,开发环境为PyCharm。

最后利用数据集和模拟用户的方式进行测试。

关键词:推荐系统,标签,关联规则,Django框架,爬虫。

Abstract
At present, the development of artificial intelligence empowers the field of education. From the perspective of serving teachers, it has the advantages of reducing burdens, helping teachers pay more attention to the development of student personality and improving work efficiency. For example, the lesson preparation technology of artificial intelligence can meet the needs of teachers for personalized lesson preparation, it can push different teaching resources for teachers according to their different needs, and provide intelligent lesson preparation services. The study found that there are two main problems in the existing lesson preparation platforms. Firstly, the existing lesson preparation platforms are not facing all teachers. They are mainly for K12 teachers, but ignore the need of college teachers for lesson preparation. Secondly, the existing lesson preparation platforms fail to realize personalized recommendation of teaching resources. With the increasing amount of data, it becomes more and more difficult for us to find the right resources among the massive resources, and users also hope that the system can make specific recommendations according to the different needs of each person.
Based on the above analysis, this article proposes a lesson resource recommendation system based on the Django framework. This system is for college teachers. Since there are many majors in the college and the classification is meticulous, we take the computer science as an example. The design idea is as follows. Crawling technology is used to crawl computer-related teaching resources from the network, and a Django framework is used to build a lesson preparation platform. Secondly, a label-based recommendation algorithm and an association rule-based recommendation algorithm are integrated into the platform to implement personalized recommendation of teaching resources. The purpose of this is to use the tag to help us solve the cold start problem in the recommendation system. New users can choose the interest tags during registration to let the system quickly understand the users’ needs, so as to avoid the problem that the system cannot recommend suitable resources for new users. At the same time, in order to make the recommendation results more accurate, in the tag recommendation, the TF-IDF algorithm is used to calculate the weight of the tags. Furthermore, in order to feed back more rich recommendation results to users,
association rules are incorporated, which can analyze the links between tags, so as to dig out the potential interest tags of users and recommend the resources under the potential interest tags to users.
This system uses Python and MySQL database to develop. The development environment is PyCharm. Finally, we use dataset and user simulation to test the system.
Key words: recommendation system, tag, association rules, Django, web crawler.
目录
第一章绪论 (1)
1.1 研究背景 (1)
1.2 国内外研究现状 (2)
1.2.1 国外研究现状 (2)
1.2.2 国内研究现状 (3)
1.2.3 国内外研究现状总结 (5)
1.3 研究内容与意义 (6)
1.4 章节安排 (7)
第二章相关技术 (8)
2.1 推荐系统和推荐算法 (8)
2.1.1 基于内容的推荐 (8)
2.1.2 基于协同过滤的推荐 (10)
2.1.3 基于标签的推荐 (18)
2.2 爬虫技术 (20)
2.2.1 爬虫工作原理 (20)
2.2.2 爬虫的分类 (21)
2.2.3 Scrapy爬虫框架 (22)
2.3 Django框架简介 (23)
第三章需求分析 (25)
3.1 用户角色分析 (25)
3.2 系统用例分析 (25)
3.2.1 系统用例图 (25)
3.2.2 用例描述 (26)
3.3 功能需求分析 (28)
3.4 系统数据流图分析 (28)
第四章系统设计 (31)
4.1 数据库设计 (31)
4.1.1 数据库性能分析 (31)
4.1.2 数据库的概念设计 (31)
4.1.3 数据表设计 (32)
4.2 系统整体设计 (35)
4.2.1 系统整体组成结构 (35)
4.2.2 系统功能模块设计 (36)
4.2.3 系统核心模块的处理流程设计 (36)
第五章系统实现 (39)
5.1 开发环境的选择 (39)
5.1.1 Python与PyCharm (39)
5.1.2 MySQL与Navicat (39)
5.2 算法及框架的选择 (40)
5.2.1 推荐算法的选择 (40)
5.2.2 爬虫框架的选择及应用 (41)
5.2.3 Web框架的选择 (44)
5.3 基本功能模块的实现 (45)
5.3.1 用户管理模块 (45)
5.3.2 用户资源模块 (46)
5.3.3 标签模块 (46)
5.3.4 后台管理模块 (47)
5.4 资源详情页推荐的实现 (47)
5.5 首页推荐的实现 (49)
5.5.1 数据集的选择 (51)
5.5.2 测试过程及结果 (52)
第六章总结与展望 (55)
6.1 研究总结 (55)
6.2 不足与展望 (55)
参考文献 (57)
攻读硕士学位期间论文发表及参与项目情况 (61)
致谢 (62)
第一章绪论
1.1 研究背景
如今,随着人工智能的飞速发展,社会生活的结构、方式随之发生改变,当然,人工智能的发展也方便了大众生活。

例如,人脸识别技术应用于生活中的支付、签到场景。

图像识别技术可以帮助医生更加精准快速的做出诊断。

大数据技术和人工智能的结合,可以更加清晰的呈现事件的整体走势,并进行分析,预测未来的发展方向。

人工智能的深入发展必将加快社会秩序重构的进程,协调人与科学的发展。

当然,教育领域也不例外,将会面临前所未有的机遇和挑战。

在人工智能时代,随着教育资源的日益丰富,教学模式和学习模式更加灵活,智能系统更加多元化,教育将发生巨大的变化。

研究者们也对人工智能与教育的结合进行了大量的研究。

从整个教育领域来看,在20世纪80年代,人工智能支持教育领域(AIED)的研究人员就开始对此进行研究。

在教育与人工智能的关系中,侧重于研究知识的表现、推理和学习[1]。

2015年,Pinkwart指出各种技术的发展对AIED的持续发展有着重要的影响[2] 。

文献[3]讨论了在人工智能时代背景下,网络对我国高等教育可能产生的影响和将会发生的变化。

受网络和人工智能技术的影响,未来高等教育的发展趋势有两种:一是基于人工智能技术的新型网络教育产品和服务将对教师与学生之间的互动产生强烈影响,并且人工智能技术有望为学习者打造一种沉浸式的学习环境,带来更加深入的学习;二是人工智能技术将通过为未来的毕业生创造新的工作岗位的方式,改变未来的人才培养方式,进一步取代一些传统的工作机会[3] 。

从为学习者服务的角度来看,人工智能和教育的结合,更加突出了学习者的主体地位。

最具代表性的就是慕课(MOOC),它将“学习”这一过程变成了不受时间、地点约束的事情,也为终身学习提供了支持。

说到慕课平台,首先想到的就是被人们称之为“三驾马车”的国外慕课平台——edX,Coursera,Udacity。

慕课平台在国内兴起的时间稍晚一些,较具代表性的是学堂在线、iMOOC、中国大学慕课等。

在慕课平台上,除了为学习者提供大量精品的学习资源之外,研究者们还致力于对学习者的学习行为、学习数据进行分析,旨在为学习者提供更具针对性的服务,获得更好的学习效果。

为了提升学习者的学习体验,文献[4]研究
创建了一个交互式的问题解决环境,该文献以解决数学问题为例,研究利用人工智能技术进行数字油墨分割任务、符号识别任务、结构分析任务、数学表达式识别、数学表达式的评价,为用户提供答案和具体的解释[4] 。

文献[5]提出了一种基于自然语言对话的慕课导航,帮助用户找到自己喜欢的课程,并根据用户的需求提供更多的课程信息[5] 。

文献[6]将信用机制加入慕课学习中,并提出了一种智能反馈和课程评价机制。

经过分析得出,在此平台上学习的学生获得了积极的学习体验,并取得了更好的学习效果[6] 。

文献[7]提出了服务于教育教学方面的智能虚拟助手MOOCBuddy,它是一款在慕课上工作的虚拟机器人,该机器人可以根据学习者在平台上的表现,向其推荐可以学习的课程[7]。

人工智能与教育的结合,除了为学习者提供便利之外,也可为教育者提供服务。

从为教育者服务的角度来看,教师成为教学过程中的主导,负责设计和引导学生们的学习活动[8] 。

同时,师生关系也将发生变化,教师会更加关注学生的成长。

例如,文献[9]致力于研究人工智能时代下教师和学生之间的关系[9]。

人工智能与教育的结合为教育者带来新理念的同时,也为教学提供了极大的便利。

文献[10]开发的ASSISTMENTS系统,它是一个电子评估系统,这个系统除了关注于学生的学习,还支持教师对其具体的教学设计进行反思和改进,并将这些反思和改进行为记录下来,以便教师在需要时进行分析[10] 。

文献[11]研究了Learning Designer(LD)。

LD可以为教师们提供开放的教学资源,帮助教师阐明他们的教学理念,在LD中教师们也可以参考使用其他人提出的“教学模式”,并使用数据可视化工具评估教学。

LD中包含了一些工具来帮助教师设计他们的教学方法,教师们也可以分享和改进这些工具[11] 。

综上所述,人工智能使得教育更加接近其本质,对于教师来说,也带来了极大的便利。

在教学过程中,备课是每位教师都会经历且必须重视的一个环节。

所以本文致力于研究设计一款备课系统,并与个性化推荐相结合,旨在为教师提供备课资源推荐的服务。

下面具体介绍国内外关于教育领域个性化推荐和备课系统的研究现状。

1.2 国内外研究现状
1.2.1 国外研究现状
首先,从教育领域的个性化推荐来看。

推荐算法在教育领域的应用相对较晚,
通过阅读文献发现,在教育领域的个性化推荐方面,荷兰开放大学(OUNL)教育技术实验中心(ETEC)进行了深入的研究。

对于个性化学习的需求、模型、技术进行了综合的分析,旨在针对不同学习情境下,进行不同的个性化推荐。

同时也将该推荐系统应用于一所大学的心理学导论课程,通过实验证明推荐结果有效[12] 。

此外,在促进个性化学习方面,加拿大的萨斯卡通大学也研究了一个推荐系统,开发出了一种可以“自我进化”的E-Learning推荐系统,旨在为不同的学习者,提供不固定的学习内容[12] 。

Shishehchi S等人将不同的推荐技术结合起来,利用学习者的历史浏览数据、学习数据进行推荐[13] 。

其次,介绍国外关于备课系统的研究。

在国外,备课系统的研究起步较早。

Igor Solaković等人研究了电子备课资源网站的重要性,并为公立小学开发了一个备课系统[14] 。

另外,也有其他的备课系统投入了实际使用。

文献[15]探讨了Eduwiki作为一种新的、有效的协同备课平台来支持教师的协作和教学。

研究表明,Eduwiki在促进教师的共同发展,以及在激发同伴支持进行协作备课活动这两个方面是有效的[15] 。

1.2.2 国内研究现状
首先,从教育领域的个性化推荐的角度来看。

在国内,推荐技术被广泛的应用于电商领域,最具代表性的有阿里巴巴、京东等。

而推荐算法在教育领域中的研究起步较晚,从2000年才开始,以清华大学的“基于多Agent混合智能”实现个性化推荐为标志[16] 。

虽然,对教育领域个性化推荐的研究起步较晚,但是关注度越来越高。

在应用方面,研究者们利用多种推荐算法相结合的方式来实现教学资源的推荐。

通过阅读文献发现,我国于2002年开始研究教学资源的推荐,2008年,教育领域的个性化推荐得到迅速发展。

2012年,文献[17]设计并开发了ERPRS推荐系统,将网络中的学习资源进行个性化推荐,提出用协同过滤算法对教学资源进行推荐,在人口统计信息的基础上利用Slop One填充算法对推荐系统中常见的“数据稀疏”问题和“冷启动”问题进行改进[17] 。

2015年,文献[18]将混合推荐的方法应用到学习平台当中,旨在进行学习资源的个性化推荐。

在分析各种推荐算法的优缺点之后,选用协同过滤和基于内容的推荐,取长补短。

在为学习资源建模方面,通过运用社会化标签标注学习资源的方式,防止数据稀疏,以便更好的计算资源之间的相似度。

并通过用户的显性信息和隐性信息建立
用户模型,根据用户模型获取用户对某个资源的喜爱程度,从而得到用户对某一资源的评分[18] 。

同年,林文荟以慕课为研究背景,进行了两方面的研究,首先在用户对项目评分这一内容上,提出了一种结合时间遗忘曲线和用户行为的评分方法;其次,在资源推荐方面,利用标签对教育资源进行分类,结合协同过滤方法,将教育资源按照标签划分,并根据某一用户的历史记录,为其推荐类似主题的教育资源,并基于edx平台的开放数据集测试了该推荐算法[19] 。

2018年,叶露在研究学习资源的推荐中,融入了用户职业目标这一因素,建立了新的模型,该模型能够更好的结合用户的现有知识水平、职业规划等因素,去判断用户之间的相似性,从而达到更好的推荐效果;为了提高推荐的合理性,在用户行为数据的分析方面,采用了Prefix Span算法,此外还进行了学习路径规划的研究。

该研究在一定程度上也解决了MOOC高辍学率和课程低通过率的问题[20] 。

其次,国内关于备课系统的研究。

从理论层面上来看,2008年,文献[21]表明教师通过网络协同备课已成为一种新的趋势,提出在线协同备课(OCLP)是教师创造、分享和利用知识的平台,同时采用Ikujiro Nonaka和Hirotaka Takeuchi 的知识管理理论,对知识进行有效的管理,为备课群体提供对话空间和知识共享的机制[21] 。

在知网中以“备课系统”作为关键字进行搜索,指数分析如图1-1所示,由图1-1可知,对“备课系统”的研究一直保持着较高的关注度,2015年“备课系统”的关注度最高。

2019年,文献[22]提出人工智能可以为教师提供智能化备课的功能,即可以根据教师的具体教学进度,或者班级的实际教学情况,推送相应的教学资源[22]。

在实际应用方面,文献[22]提出的北京市“e师丰云”教育云平台,利用“云服务”为教师提供大量优质的教学资源,为教师备课提供参考[22] 。

稍有局限的地方是,该平台的使用权只针对于北京市的教师开放。

此外,国内的“101教育PPT”是目前为教师提供的功能较为完善的备课软件,其中包含多种教学素材以及动画、实验视频等内容,同时融入了AI技术,例如,图片识别、AI教学助手等功能,它分为电脑端和手机端,为教师提供备、授课的服务,但是,稍有局限的是,目前“101教育PPT”所涉及的学段以K12为主,还未涉及本科及以上阶段。

除了上述应用之外,国内的备课平台,还有“学科网”、“备课中心”等,但是这些备课平台的功能尚不完备,现有的备课平台只是将备课资源整合在一起,还没有做到“资源找人”,也就是说备课平台中还未融入推
荐算法。

图1-1 关于“备课系统”知网指数分析结果
1.2.3 国内外研究现状总结
综上所述,人工智能为教育赋能,将推荐算法应用到备课平台中,可方便教师的日常备课工作。

通过对国内外研究现状的分析,发现现有的备课平台存在以下局限性。

1)现有备课平台的面向对象存在局限性。

这些备课平台面向的大多是K12阶段的教师,即中小学阶段的教师,忽略了高校教师的备课需求。

经过研究分析,发现主要有两点原因。

第一,与中小学相比,高校中专业较多且更加细化,各个学校使用的教材版本不同,这些问题对于资源整合来讲都是挑战;第二,部分高校会面向本校开发自己的教育资源整合系统,但是系统只面向该校教师,而不对外开放,导致优质教学资源无法共享。

在《教育信息化2.0行动计划》中提出“教学应用覆盖全体教师”[23] ,根据这一要求,有必要研究开发适合高校教师的备课平台。

2)现有的备课系统忽略了教师的实际需求。

教师在备课时,希望能够根据自身的教学风格、实际教学进度等因素,找到真正合适的教学资源,做出一个更好的教学设计。

但是现有的大多数备课系统只是将点击量、收藏量较高的教案、课件罗列在备课平台上,供教师下载使用。

这样的备课平台,看似提供了可直接使用的教案、课件,但是会使得教师的教学设计失去自身的风格,同时也不利于个性化教学。

所以面向高校的备课平台,应该把优质的教案作为教师备课的参考资料,同时为教师提供多种教学素材,把教学设计的自由交还给教师。

3)在备课系统中融入推荐算法的研究较少。

例如,在知网中,以“备课资
源推荐”为主题搜索文章,仅找到相关文章1篇。

2016年,东北师范大学的孔亭,利用社会化标签对备课资源进行标注,结合协同过滤推荐算法进行推荐,并根据用户对于资源的评分来衡量推荐质量的高低。

但是,该篇论文仅面向中小学阶段的教师,同时推荐的结果过于单一且质量不高[24]。

根据以上分析,在备课平台中,教师如何能够在海量的备课资源中快速的找到自己想要的资源,逐渐成为研究的重点。

在备课平台融入推荐算法,通过分析教师在平台上的历史行为数据,得出教师有可能感兴趣的教学资源,从而将资源主动的推荐给教师。

与教师自己搜索教学资源相比,既节约搜索资源的时间,得到的资源也更具针对性。

其次,对备课资源的推荐质量也要进行考量,如果资源本身的质量不好,不仅影响了推荐的效果,造成无效的推荐,而且也会影响教师的教学效果。

1.3 研究内容与意义
针对上述问题,本文经过研究分析,提出了基于Django框架的备课资源推荐系统,面向对象为高校教师。

由于高校中专业较多,且分类较细,故以计算机专业课程为例。

在备课资源的推荐系统中,主要运用基于标签的推荐算法和关联规则。

本次研究将从以下4个方面进行。

1)备课资源的获取。

采用爬虫技术,从网络中获取教学资源。

运用Scrapy 爬虫框架,爬取相关的备课素材。

例如文本素材、动画素材、试题素材、优质教案等。

这样做既可以给教师提供一个参考,又可以给教师自由发挥的空间。

同时结合Django框架,搭建好备课系统的平台。

2)冷启动问题的解决。

标签可巧妙的解决冷启动问题,新用户在注册时选择标签,以此为根据,系统来为用户推荐相应的资源。

3)为了提高推荐结果的质量,在标签推荐算法中,运用TF-IDF算法计算标签所占权重。

与传统的标签推荐相比,使用TF-IDF算法计算标签所占权重,会使得推荐结果更为准确。

传统的基于标签的推荐关注于标签所使用的次数,根据标签被使用的次数计算用户对于某一资源的喜爱程度,这种计算方式容易首先将“热门标签”下的资源推荐给用户,造成系统推荐的资源与用户想要的资源之间存在偏差,导致推荐结果偏离用户需求。

所以本次研究将标签所占权重融入基于标签的推荐,旨在改善推荐结果的质量。

4)为了提高推荐结果的多样性,用关联规则挖掘标签之间的联系,挖掘出用户潜在的兴趣标签,并将潜在兴趣标签下的资源推荐给用户。

1.4 章节安排
本文致力于设计实现一个备课资源推荐系统,在分析人工智能教育应用、国内外研究现状、备课系统现状的基础上,分为六个章节,各章节的具体安排如下。

第一章:绪论。

在分析研究背景和国内外研究现状的基础上,说明本次研究的内容与意义,最后说明本文的整体安排。

第二章:相关技术。

在本章中,将依次介绍推荐算法、爬虫技术和Django框架。

在推荐算法中,重点介绍基于标签的推荐和关联规则。

爬虫技术部分除了介绍相关概念之外,将会重点介绍本文用到的Scrapy框架。

第三章:需求分析。

本章将从用户角度出发,进行角色分析,结合用例图进行用例分析,并给出系统的数据流图。

第四章:系统设计。

在需求分析的基础上,对系统的数据库和平台架构进行设计。

在分析数据库的安全性和完整性的基础上,对数据库进行概念设计和二维表设计。

在平台架构设计中,分别介绍系统的组成、功能模块及主要功能模块的处理流程。

第五章:系统实现。

本章将会介绍开发环境、算法和框架的选择、基本功能模块和个性化推荐模块的实现,以及用Delicious数据集进行测试的过程和结果。

第六章:总结与展望。

对本次所做的工作进行整理、总结。

同时,指明有待完善的地方,并对未来的工作方向进行规划。

第二章相关技术
2.1 推荐系统和推荐算法
推荐系统是在原有系统的基础上融入相应的推荐算法,能够主动的向用户提供很好的建议。

所提出的建议是基于用户以前的偏好,或者来源于与用户有相似喜好、观点的社群偏好。

推荐系统可以减少信息过载所带来的问题,同时为特定领域提供定制的信息访问。

在推荐系统中,用户处于“等待接收”的位置,用户不需要提供明确的关键字,就可以得到更多与需求相关的信息。

关于推荐系统的研究,最早开始于20世纪90年代。

1992年,利用协同过滤算法设计了Tapestry系统来过滤邮件,但是在过程中依靠了人工计算和评估,因此是一种半自动的系统[25] 。

随后,1994年全自动的推荐系统GroupLens被研发出来,主要应用于文章的推荐,除此之外,该推荐系统首次应用了协同过滤进行推荐[26]。

2006年Netflix开启了推荐算法的比赛,并向大家提供数以亿计的、
这种推荐算法更多的关注于资源内容本身。

该推荐方式的体系结构如图2-2所示[28] ,由三部分组成。

1)内容分析器。

内容分析器使用某种表示方法,对于项目进行分类。

2)概要学习器。

可以生成每个用户的偏好。

3)过滤组件。

接收所有的输入数据,并根据输入的数据,生成推荐列表。

图2-2 基于内容推荐的体系结构
基于内容的推荐的大致过程如下。

1)分析用户喜好,建立用户模型。

在建模时,通常是对用户的浏览行为、收藏行为、评价行为等数据进行收集,并以特征向量的形式表示出来,以此来分析用户的喜好。

2)分析并提取资源特征,建立资源模型,按照其特点对资源进行归类。

在建立资源模型时,通常采用TF-IDF算法对资源进行特征提取[29] ,但是这种提取方式要求资源可以被表示为文本的形式。

3)根据用户模型和资源模型,计算两者之间的相似度,旨在为用户推荐感兴趣的资源。

相似度可用余弦相似度公式来计算。

下面以书籍推荐为例说明,某用户的书籍阅读情况如表2-1所示。

表2-1 某用户的书籍阅读情况
书籍书籍特征阅读情况
B1小说、推理√(已阅读)
B2科普、说明×(未阅读)
B3小说、推理、悬疑×(未阅读)图2-3展示了该推荐过程。

系统通过分析知道,在未阅读的书籍中,用户可。

相关文档
最新文档