6/14 学习资源聚合平台工作总结

明天就答辩了,在此把这个从三月底开始的浩大工程总结一下。

我的工作主要的是两个方面:平台的后台部分,包括管理员后台部分和教师后台部分;基于频繁序列的知识图谱生成和学习路径推荐。


一、后台部分


管理员后台一共包括了学院、专业、课程、分类、教师、用户部分,每个部分有每个部分独特的功能需求,例如专业既要向上和学院相关联,又要向下和课程相关联,而分类的关键词,不仅与课程有多对多关联关系,自身还有多对多的自关联,来维护自己的上下级关系。因此各个部分的详情页面大不一样:


我是组里不同页面写的最多的,路由表中属于我的相关路由信息近百条,这些页面的组织和连接关系是一个非常复杂的工作,在做这次实训之前我对web开发并不在行,但是经过这个工程的历练,我对网站建设的设计,动态页面的编写,数据实体之间的关联关系,以及如何安排他们,有了较深的理解。


除了架构上的经验,我在项目过程中也学到了很多web开发的技术。比如ajax技术:

在我的部分中,用到ajax的有两个部分,其中一个是教师审查课程上传知识时候,点击通过或拒绝,发送一个远程请求来使服务器在后台完成对应的逻辑操作,再采用js的方式,用rails独特的RJS方式来实现未审核列表的局部刷新。

另一个部分是我要重点说一下的,利用jquery动态监测文本框的变化,动态查询文本框中的序号对应的数据名称,这个技术在很多页面都用到了,以编辑专业所属学院为例:


具体的细节在当时的工作日志博客中:https://blog.csdn.net/w_z_y1997/article/details/80342617 


教师后台包括了课程内容管理和上传内容审核两部分,教师可以看到自己所教的所有课程。

其中课程内容管理部分可以切换审核模式,检查课程下属的各个知识。


切换审核模式,包括手动模式和自动模式,自动是用了组里其他同学的自动审查系统,手动的逻辑实现在上传内容审核部分里。是用户发布或修改专栏或资源之后标记为未审核状态,当教师审核通过之后才能在其他地方看到。


二、基于频繁序列的知识图谱生成和学习路径推荐

这部分的主要思路是根据用户的访问记录来学习不同课程或不同关键字之间的序列关系。其中,生成频繁序列部分借鉴了《精准个性化学习路径的研究》,采用了AprioriAll算法来学习用户行为之中的频繁序列,具体算法部分在我当时的工作日志之中。简单来说分为五个阶段:

1) 排序阶段。数据库D以客户号为主键,交易时间为次键进行排序。这个阶段将原来的事务数据库转换成由客户序列组成的数据库。

 2) 频繁项集阶段。找出所有频繁项集组成的集合L。也同步得到所有频繁1-序列组成的集合。

 3) 转换阶段。在找序列模式的过程中,要不断地进行检测一个给定的频繁集是否包含于一个客户序列中。

 4) 序列阶段。利用已知的频繁集的集合来找到所需的序列。类似于关联的Apriori算法。

5)最大化阶段。在频繁序列模式集合中持出最大频繁序列模式集合。

这部分的代码完全是由我自己实现的,并且耗费了很大的经历补充了详细的注释。项目完全结束之后我会把这个打包放到git上开源给大家。

有了最大频繁序列,接下来就要形成知识点之间的拓扑图。这里用了很简单的思路,就是先把所有关键词生成一张邻接矩阵,把频繁序列中出现的关联作为有向边画到邻接矩阵中,从而形成有向图。考虑到将来使用真实数据时可能最大序列集中于众多关键词中的少数几个,其他不在学习主干中的关键词可能会非常少的被用户发现,我又在图上增加了“底图”,即把所有出现在用户行为数据中的二元关联都记录到邻接矩阵中。

下一个工作是向用户推荐学习序列,我的思路是根据用户的最近学习内容(最近两个事务),检查最近两个事务的序列是否包含于哪一个最大频繁序列之中,如果位于多个最大频繁序列,推荐更长的那条,因为最大频繁序列根据Apriori定理,即如果本身频繁,所有子序列频繁,有一个特性是越长越可信。,这样就可以针对不同的用户推荐不同的序列。除了推荐序列,我也添加了其他推荐,来帮助用户进行探索。这部分的算法是借鉴了更常用的图数据上的关联挖掘,对用户最近事务中的事件项,在之前生成的知识图谱邻接矩阵中寻找能到达的所有项并计数,取积分较高并且不在已经推荐的学习路径上的项,作为推荐内容。

整个算法流程如上所述,这部分整个代码量约1700行,没有借用其他的算法库,完全是自己实现,并且效果也不错,利用测试数据生成的效果图如下:



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值