html考试自动评分源码,网上在线考试自动评分技术研究

摘要:本文研究了在线考试主观题的评分思路,利用模糊数学中贴近度概念设计了主观题的评分公式,并测试了应用效果。

论文关键词:网上考试,自动评分,健壮性,单向贴近度

选择题、判断题、填空题的评分方法较为容易实现,采用的办法就是用学生的答案与标准答案进行比较,比较结果一致,则答案正确,否则答案错误。在实现选择题、判断题、填空题的评分时,是这样设计的,那就是:当考生点击“交卷”或者当考试时间计满系统自动强制交卷时,则进行客观题的自动评判,并将这一部分的成绩立即显示给用户。

主观题包括:问答、证明、计算、设计题等多种题型。但是对于主观题,如论述题、简答题等没有统一答案的试题,由于涉及到人工智能、模式识别和自然语言理解等技术,实现起来相当复杂,目前还没有一种考试系统能很好地完成其自动阅卷,因而成为在线考试系统中的一个技术难点。本文的网上在线考试系统中,由于各项条件尚不成熟,因而没有全面地实现网上考试主观题自动评分的设计,但本人探索性地提出了一套算法,以期能抛砖引玉。

主观题评分:由于主观题在答题时一般采用自然语言叙述的方式,由于考生的个性不同,理解程度和表述方式不同,同一个问题,不同的考生有不同的回答:即使对某些知识掌握程度差不多的学生,由于语言表达能力的不同,对主观题的回答也会不一样。即使学生的答案准确,也很难与标准答案完全一致。因此若要象对客观题评分那样客观、准确地对主观题进行评分在目前的技术水平下是难以做到的。本文想通过分析人工评阅主观题时的常规思维,引入模糊理论中单向贴近度的概念,设计一套算法,模拟阅卷教师的这种思维活动,对学生答案和标准答案进行分析从而较准确地给出学生的实际得分。虽然该算法可能还不够完善,但为了开拓一条现实可行的途径,作为一种辅助手段,该算法还是很有意义的。

(1) 评分思路

教师在评阅主观题时一般是预先制定好一套评分标准,然后将每道试题的总分划分成若干部分,将分数分配到试题的求解过程中的一些关键的步骤或关键的词语上,通常称之为得分点,评阅时首先检查学生答案中有几个得分点,得分点多则分数高,然后再看学生的答案和标准答案的贴近度,贴近度高则分数高,最后再考虑学生的答案语言是否通顺,条理性是否强等因素,适当对分数进行调整。

根据上述分析,可以发现,影响评分的因素主要有两个:一个是标准答案及评分标准的组织,即得分点;另一个是学生答案和标准答案的贴近度。因此,在基于内容的主观题自动评阅系统中,可以先将标准答案分成若干个要素(即关键字),每个关键字与不同的分值相对应,阅卷系统的主要任务就是在学生答案中进行关键字的提取,分析其关键字与各标准答案关键字的贴近度,按照各标准答案关键字在整个试题得分中所占的比例,评定其小分,最后累加答案中各关键字的得分即可。学生答案和标准答案的贴近度可以采用模糊数学中的贴近度来描述,而对于语法结构则不做过多考虑,这样,一方面可以避免对句子进行复杂的句法分析,另一方面也可增加系统的健壮性,如学生答案中出现无关大局的语法错误时,只要其概念表述正确,系统仍然可以给出相应的贴近度评价,这与教师的阅卷过程是相符合的。

(2) 相关定义

为解决学生答案和标准答案的贴近度表示问题,可以把学生答案和标准答案均看成字符串,下面对单向贴近度的概念进行定义。

把一个字符串分解为单个字符并把它们构成的有序集合称为一个模糊集,U={ul , u2,……,un}称为论域,论域U上的全体模糊子集所组成的集合记作F(U)(也叫模糊幂集)。

为度量两模糊集的接近程度,引入单向贴近度的概念。

20d3403c5e318fe3568265079e17f550.png

定义1:设U={ul , u2, ……,un},A,B

eb60a63f21b3802aa6d9d00b68752fa3.pngF(U)。若映射ξ:F(U)×F(U)→[0,1],满足条件:

① ξ(A,A)=1;

② ξ(B,B)=1;

③ 若A

cfc34f52d23d17fe985ff8dbbb4287cc.pngB

2a2b410e9b2af19299e408fbb4b8a0e2.pngC或A

d998380de6db00b22b1ab3bceea6a1a0.pngB

d998380de6db00b22b1ab3bceea6a1a0.pngC,则ξ(A,B)≥ξ(A,C)。

称ξ(A,B)为A贴近于B的单向贴近度。

定义2:设A,B是字符串,A中包含n个字符,ξ(A,B)表示A贴近于B的单向贴近度,按照从左到右的顺序,集合A中的每个元素在集合B中出现的有效次数和记为m,则ξ(A,B)=m/n。容易验证,它满足单向贴近度的定义。

(3) 算法说明

为说明方便,以字符串S1和S2为例介绍计算字符串SI贴近于字符串S2的单向贴近度ξ(S1,S2),步骤如下:

①把查找字符串S1分解为单个有效字符。在分解前,首先判断左边第一个字符是双字节字符还是单字节字符,如果是双字节字符就按2个字节截取,如果是单字节字符则按1个字节截取。把字符串SI分解为若干个有效字符u1,u2,……,un

②判断S1分解后的单字符是否包含在被查询的字符串中。这里假定所要查找的字符串分解前和分解后是有顺序的,所以不能简单地使用是否包含来判断。

本文的做法是:判断第一个字符u1是否包含在字符串S2中,如果不包含则标记为0,否则标记为1,并从S2中去掉包含u1的字符,对S2进行第二个字符u2的相同处理,一直把u1, u2,……,un判断完毕。

③计算单向贴近度ξ(S1,S2)。计算SI分解后的单字符u1,u2,……,un在S2中出现的次数之和m占S1总有效字符数n的比值,并记为ξ(S1,S2)。

(4) 评分公式

根据上述分析,可以得出与主观题的评分公式。

客观题的评分公式:

S0 (A=A0)

S=

20d3403c5e318fe3568265079e17f550.png

0(A≠A0) (1-1)

主观题的评分公式:

S=(P

6d210d45e35fd4d4ddc8175c2f6bc0b8.png

507fb2fb7ff4384140b768fafe5ba2d3.png+(1-P)×ξ

3ae5d62aecc798fab9b7b4c59c61ccb9.png(A0,A))×S0 (1-2)

其中各符号的含义如下:

20d3403c5e318fe3568265079e17f550.png

S——学生的实际得分。计算后得出,保存到学生答卷库中;

Ao——学生的实际答案。学生交卷后保存在学生答卷库中;

Bo——试题的标准答案。出题时生成,从题库中读取;

P——关键词在该题目中所占分值的比例,

fed102db3fdded1b3a104c20a4694bb0.png。组卷时生成,也可在评分时修改,从试卷库中读取;

1-P——关键词以外的因素在该题目中所占分值的比例,

084ee9d99b7bde33a13fab55ce5a1cb3.png

n——关键词的个数。根据题库中的关键词信息由程序计算得到;

Ki——第i个关键词,

b268971009a63cb5167f0ed9df5d7066.png,根据题库中的关键词信息由程序计算得到;

ξki(Ki,A)——第i个关键词与学生答案的单向贴近度,

986afee8183a191753317a4410d9aed6.png,由程序计算得到;

ξk0(K,A)——关键词与学生答案的单向贴近度阀值。组卷时生成,也可评分时修改,从试卷库中取得。其含义是:

当ξki(Ki,A)<ξk0(K,A)时,ξki(Ki,A)=0,

当ξki(Ki,A)≥ξk0(K,A)时,ξki(Ki,A)=ξk0(K,A);

ξ

ba099c97f1c78da9c232ed00cf02f619.png(A0,A) ——标准答案与学生答案的单向贴近度。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
说明 1.shijuan_ertui.php为抽取坛友抽题逻辑代码所编写的文件,想看原本的可查看shijuan_kangfu.php 2.通用入口为index.html 3.想增加账号的可至xueyuan.php增加 复制代码 隐藏代码 $xueyuans = array( array('xueyuan_id'=>"110101190001011009",'xueyuan_name'=>"陈林",'xueyuan_pic'=>"chenlin.jpg",'xueyuan_kemu'=>"2"), array('xueyuan_id'=>"110101190001011017",'xueyuan_name'=>"吴彬",'xueyuan_pic'=>"wubin.jpg",'xueyuan_kemu'=>"1"), array('xueyuan_id'=>"sf证号",'xueyuan_name'=>"姓名",'xueyuan_pic'=>"照片名称",'xueyuan_kemu'=>"可学科目"), ); 4.如线上使用建议通过数据库存储 5.校验学员是否注册的逻辑仅作为演示使用,实在想作为线上使用请注意“xueyuan_id”的唯一性 6.sf证校验才用js强校验方式,新增学员的时候一定要输入正确sf证否者无法登陆,若想改为自定义账号登录,请自行更改js相关代码 7.请仔细查看源码,防止信息泄露,本系统演示中所提供的sf证号均为虚拟构造,仅作登录/考试演示使用 8.源码全部开源(其实总共也没几句代码),无任何侵权、收集信息的地方! 常见问题解析: 1.题库不一致 ——演示使用,重点请放在抽题上 2.需不需要服务器 ——本地搭建不需要,下载一个wamp或者其他集成环境,访问你的电脑内网IP即可多人答题 3.添加题库和学员信息 ——同2,我改成sql读取,不给你sql你能获取?通过读取php文件获取信息=通过sql读取的信息(从数据结果来说),为方便演示当然是文件越精简越好 4.关于交卷评分 ——参考网友提供的check.php文件,我没做他的集成,毕竟正常来说是入库。以文件方式存储,不符合上面说的越精简越好 5.完善系统 ——①,作为本地模拟考试,仅验证sf证号,密码原本的设计就是可有可无,加一个显得更正式而已,若作为线上,请加上必要的用户校验,一句话:不要相信用户的任何输入 ——②,出于精简,我是能省则省,删除很多校验和逻辑判断,以满足部分人的学习需求 ——③,文件全为初学php时无事写的,功能没问题,请无视代码质量 ——④,文中提到,此系统能公布出来完全是因为坛友的源码讨论,所以系统中会出现1.php和xueyuan.php,check.php等,最初系统设计是直接post。同3,这两个文件的出现相当于我已经帮你把数据从数据库里面取出来了放到了一个数组中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值