周艺伟 洪逸凡
摘要:基于现今教师出题题目难度评级客观性差,现有题库系统对于题目难度评级过于简单的现象,本系统采用GA算法,BP算法,解决了客观评价试题难度评级的问题,并且可以根据给定条件快速生成符合要求的试卷。该系统在微服务架构下完成敏捷开发作为实现。
关键词:GA算法;BP算法;动态题库;智能组卷;微服务
中图分类号:G424 文献标识码:A
文章编号:1009-3044(2020)24-0183-02
1 题目难度客观评级的实现
1.1 题目评级样本的初次统计
本系统利用了BP网络的有指导的学习方式,通过选取2000道历年由任课教师所出的java考试试卷题目,首先对任课教师进行问卷访问,将结果汇总后进行人工录入统计,获得教师对于题目的难度评级评价。
试卷的难度评级定义为四级,1级为难,2级为较难,3级为较简单,4级为简单。人工首次统计教师对于题目的难度评级时,计算难度评级的平均值作为最终评判结果,并且计算评级标准差,将标准差高于0.5的题目剔除,避免因为教师的意见相差过大造成题目评级不精准。最终统计结果保留了1342道题目。
采用同样的方法,通过问卷访问,统计上述1342道题目在学生立场的难度评级,采样群体来自上文中被统计的任课教师所教授的同一学年全体学生。同样计算难度评级的平均值作为最终评判结果,并且计算评级标准差,将标准差高于0.5的题目剔除,最终保留了1132道题目。
因为教学的本质目标主体在于學生,该题库数据的首次难度评级采用学生的难度评级作为真正的过往难度评级数据和实际值,教师的难度评级作为期望值,选取部分数据对比结果进行展示,如表1所示:
可以看到,期望值和实际值之间的差值有的相差过大(差值>1),这体现了教师和学生对于题目难度评价存在较大的分歧现象,直接证实了考试试题的难度评级难以及时得到客观性评价问题的存在性。
1.2题目评级参数的选取
考虑到常见的题库系统评级一般采用人工赋值或者仅仅依靠错误率来维护更新的情况,这也会导致一些评级不够客观的问题,例如选取市面上某题库系统,通过加入上文中保留的1132道题目,获取题目难度评级和学生难度评级进行对比。如表2所示:
可以根据数据观察到,期望值和实际值在某些题目上仍然存在较大差距,题目难度评级的客观性仍然没有得到保证。
因此本系统在对于题库中题目评级的维护和更新过程中,加入了知识点,和过往评级对于过往错误率进行结合,形成综合考虑。
1.3 BP神经网络的选取
本系统为了减少了网络的训练时间和训练过程中出现“过拟合”的倾向。隐藏层数目的确定十分重要。由于隐含层数目对于学习时间的约束限制[1],并且按照Kosmogorov定理的内容可知, 在合理的结构和恰当的权值条件下, 3层BP神经网络可以逼近任意的连续函数,所以本系统选择3层BP神经网络进行具体测试。
1.4隐藏层节点的确定
相比于传统系统评级的粗糙情况,本系统考虑到题库中题目难度评级主要有知识点包含数量,过往错误率以及上一次难度评级来决定。在保证收敛的准确性的前提下,节点数越少,网络的速度越快。三层神经网络为了保证最低的准确性,根据过往实验统计拟合,如图1所示:
节点数在2时就能达到准确率的极值,而且增加节点数之后,耗时逐渐增长到一个极值,因此本系统选择输入层节点数目为3,是足够达到学习精准度的。设置输出节点数为1,作为重新计算的难度评级分值。本系统采用S型函数
1.5学习速率的确定
虽然人工设定学习速率有一定的限制性,但是考虑到本系统题目难度评级设定为整数,因而评级计算的要求只需要保留到小数点后面一位即可。通过多次试验将学习速率确定为0.5。
1. 6 实验结果分析
通过选取1000条题目进行测试,本系统通过训练后,得到的部分训练结果如表3所示:
通过计算期望值和实际输出差值,可以观察到误差基本都小于0.001,符合实际情况的需求,和表1与表2的差值对比也能观测到,该系统的确能够通过增加参数设置,解决题目难度评级客观性的问题。同时本系统的具体实现对于学习率设置,隐藏层节点数目要求不高,节省了训练时间,仍能够保证具有较高的准确度。
2 快速生成组卷
2.1 GA算法应用目的
为了解决由于在实际情况下,采用传统的查找方式进行试卷生成,系统往往反应速度较慢,难以投入到真正教学使用的过程当中,解决缓解教师出卷压力的问题,本系统采用的GA算法进行选题组卷生成试卷。
2.2 GA算法在本系统的实现
为了减少交叉,优化的速度,根据实际情况,将组卷参数矩阵设定为以下形式:(每题有4项主要参数:过往错误率a1,知识点数a2,上一次难度评级a3,题目类型a4)
通过随机函数产生N道题目,通过计算第i项的误差fi和和ai指标值的成绩总和。当结果最小时,交叉变异产生下一代。由于难点在于匹配题目的难度评级,而上文中提到的BP算法对于评级有较好的拟合,因而可以进行成功的组卷。
3 系统具体实现
3.1系统分析
系统的模块独立开发,主要使用J2EE为开发平台,客户端服务端分离开发,web页面使用react编写,后台采用spring boot框架,提供REST接口访问,通过nginx配置实现反向代理解决跨域访问问题,采用MySQL数据库进行题目存储。系统模块主要分为以下四个部分:用户管理,试题库管理,组卷管理,成绩管理。系统设计结构图如图2所示:
3.2具体实现过程
在实现过程中,首先,通过设计数据库相应表,存储教书,学生,成绩,题目相关数据。
通过服务器端开发,实现对于数据库中数据的CURD基本操作,能够实现用户管理,试题库查询和组卷请求的响应,实现对于成绩的基本录入。
客户端开发页面主要有登录,查询,选题,组卷,做题等功能界面
利用本文中提及的BP算法,编写试题库管理模块,对题目难度进行合理化评级,实现试题库的动态更新。
编写组卷模块,通过GA算法,在完成合理化的难度评级前提下,能够根据给定条件快速生成合乎条件的试卷。
整个系统在微服务架构下完成,因而可以使得每个模块独立开发,采用更加方便的语言和库调用。
本系统通过人工录入1000到题目进行测试,组卷题目评级以及生成试卷响应时间都有一个较好的效果。因而证实了本系统是一个良好的组卷系统解决方案。
4总结
本文通过BP算法应用可行性分析为基础,提供了客观的试题难度评级方法,使得智能组卷的题库题目难度能够被切实有效的客观评级。利用GA算法使得题库系统的组卷过程能够得到快速实现。依托了先进敏捷开发的微服务架构,针对题库系统做出了基本的实现,为解决教师出卷主观性强,难度评级和现实相差较大的问题提供了一个良好的解决方案。
参考文献:
[1] Hadi M N S . Neural networks applications in concrete structures[J]. Computers & Structures, 2003, 81(6):373-381.
【通联编辑:唐一东】