杨永瑞 温志萍 孙雅 吴泳
摘 要: 自动阅卷算法一直以来都是各个在线考试系统的重点和难点。这里设计的自动阅卷算法通过解析学生答案中关键字,并计算这些关键字的排布与答案关键字的排布的相似度,给出一个相对合理的分值。经过反复测试调优,该算法提供的分值已经具有相当好的可参考性。
关键词: 自动阅卷; 关键字; 相似度; 可参考性
中图分类号:TP311.52 文献标志码:A 文章编号:1006-8228(2015)06-45-03
Abstract: Automatic scoring algorithm is always the emphases and difficulties of various online examination systems. The automatic scoring algorithm we designed gives a reasonable score through the keywords analysis of student answer, the similarity calculation between the arrangement of these keywords and the arrangement of answer keywords. After repeated testing and optimizing, the scores provided by the algorithm have been a very good reference.
Key words: automatic marking; key words analysis; similarity; reference
0 引言
实现自动阅卷需要解决以下几个问题。
首先,计算机应该能够像人一样读懂参考答案和学生答案,这需要计算机具有一定的常识和领域知识。而计算机并没有主动掌握这些常识和领域知识的能力,这需要人类把这些知识录入到计算机中去。而知识的录入又涉及到知识的表示问题。
其次,人在阅读语句的时候,由于其自身所拥有的背景知识,能够知道语句中哪些是词哪些不是词,而计算机并没有自动识别句子中的词的功能,这就需要人工构建相应的词库,将有可能用到的单词录入到计算机中。这样,计算机在处理自然语言语句的时候,可以将语句中若干个字符组成的字符串在词典中进行查询,如果词典中有这个字符串,则表明它在自然语言中指的是一个词,计算机就将其认为是一个词。所以,计算机还应该具有识别句子中单词的能力,也就是分词的能力。
接着,人在阅卷主观题的时候,给分的过程包括识别出答案语句中的各个成分的过程,也就是在一个语句中哪些成分是必须的,哪些成分是可有可无的。对于句子中必须的成分,把它提取出来作为该句的关键词汇,对于那些可有可无的成分,则可以将其忽略不计。计算机若要具有这样的能力,就需要具有对句子拆分分析的能力,能够自动分析出句子中的重要成分。
最后,主观题最终分值的确定依托于学生答案跟参考答案之间的相似程度,学生答案越接近参考答案,得分越高;反之,则越低。而且人在阅卷的时候可以容许学生答案具有一定的随意性,所以学生答案不一定非要跟参考答案完全一致,只要意义相近或相同,表达上没有错误,也可以得到高分。这就需要计算机能够处理同义近义现象,当学生答案中的文字跟参考答案不一致时,计算机可以查看学生答案中的文字跟参考答案是否相似或相近,然后给出相应的分数。
1 自动阅卷算法的思想
本文的主观题自动阅卷的思想就是模拟上述教师阅卷主观题的过程。首先我们对考生答案进行分句分词处理,然后对学生答案进行语句分析,识别出答案中重要的成分,之后,将其进行关键词提取,将其中的实词、动词抽取出来与标准答案进行相似度计算,按照各标准答案关键字在整个试题得分中所占的比例,评定其小分,最后累加答案中各关键字的得分,并适当考虑考生答题时的文字组织情况,得到本试题的最终成绩。
2 自动阅卷算法的实现流程
主观题自动阅卷系统的具体流程为:先对学生答案进行分句处理,将由段落组成的答案分成各个子句;接着对答案的各个子句进行分词处理,将各个子句变成词的序列并对分词标记词性;再对各个子句进行语句分析,分析出语义树。然后根据一定的抽取规则抽取出各个语义树中的关键词汇;再按照模糊数学中贴近度思想把学生答案和参考答案进行严格贴近度计算,并辅助以一定的评分规则计算出整个子句的相似程度,最后根据各项分值得出学生的得分。
2.1 分句处理
分句处理是把答案以某些特定标点符号为分隔标志分成若干子句。在这里,根据关于语句、句群和篇章的定义,除了把通常所说的句号、感叹号、问号等传统句末标点符号作为子句分隔符号外,还把逗号、分号等也作为子句分隔符。人们在阅读某个自然语言语句的时候,由于自身拥有的一些知识或常识,能够知道语句中哪些是词哪些不是词,但计算机却并不具有像人类一样的知识或常识。当计算机面对一段文本或一句文本时,并不知道文本中哪些是词,哪些不是词。且汉语不像欧式语言,词与词之间有空格隔开,不需要计算机进行词的识别。所以对于汉语,在对语句进行成分分析之前,先要让计算机知道输入的文本中有哪些词汇,因而需要对中文文本进行分词处理。分词处理是后续句法分析以及关键词抽取阶段的前期基础工作。
2.2 分词处理
分词阶段也可以叫做词法分析阶段,分词标准的问题实际上是汉语词与语素、词与词组的界定问题。
假定平均每句话有10个汉语词,那么10句话中会错切2个词,含有切分错误的2句就不可能被正确处理。因此仅仅由于分词阶段的准确度不够,语言理解的准确率就会减少20%。可见选择合适的分词算法对句法分析相当重要。
2.3 句法分析
句法分析就是应用句法规则和其他知识,将输入句子中的词之间的线性次序变换成语法树那样的数据结构。句法分析一般都依赖于某种语法体系。语法体系的形式丰富多彩,各种语法形式都有各自的特点,不同的语法体系产生的句法结构形式不尽相同。这也需要我们事先将语法规则存储到文件中,让系统读取,然后用来分析语句。
2.4 相似度计算
基于字符串匹配的分词算法是按照一定策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其他的语言信息来进一步提高切分的精度,力图在分词阶段消除所有歧义准确率。
抽取完学生答案和参考答案的关键词之后,要对学生答案和参考答案的相应关键词集进行比较,依据相应的评分规则计算它们的相似程度,从而可以得出学生答案的正确程度,然后我们的评分规则是,根据各个关键字出现的频率赋予权重,即出现频率高的关键字权重高,这样就可以将所有关键字赋予一个权值,然后对学生答案的关键词分析结果进行分析计算,得出学生的最终得分。
3 自动阅卷算法的具体算法实现
一般参考答案和学生答案都以一段或几段文本的方式呈现,每段包括若干语句。为方便后续语义块识别以及关键词的抽取,首先需要对参考答案和学生答案分别进行分句和分词处理。
3.1 分句算法
分句算法设计,传统意义上,一个完整的句子以句号、感叹号、问号、省略号等句末标点符号作为该句结束的标志。但传统意义上的一个句子往往包含着若干个语句,这些语句称为“半句”,而这些半句往往以逗号、分号作为间隔;这些半句往往也表达了完整的语义信息。在本系统中,所有的可以作为分割符的内容都存放进了stop.txt中了。
本文对学生答案和参考答案进行分句处理的基本思路是,首先对答案进行分句预处理,去除答案前面和后面的空行;然后对经过预处理的答案进行分句处理,扫描整个答案,遇到分句标点符号就表示前一子句结束,后一子句开始,保存当前子句的内容到答案子句数组的相应元素中。在分句处理过程中,同时也去除了答案中间无用的回车换行。
⑴ 分句预处理算法
为简化后续的分句处理,本文专门设计了分句预处理算法来实现对答案分句前的预处理,去除答案前面和后面无用的回车换行。在本系统中,上述分句预处理算法具体体现在IDFCal的getTermList方法中,它就是用于消除语句中的回车符和换行符,把去掉这些无用符号的字符串保存在数组中。
3.2 分词算法
分词算法设计,汉语自动分词是自然语言处理过程的第一步。分词体现了汉语与英语的显著不同。英语文本是小字符集上的已分隔开的词串,而汉语文本是大字符集上的连续字串。把字串分隔成词串,就是自动分词系统需要做的工作。下面描述本系统所采纳的最大匹配算法。
⑴ 原子分词
原子分词,即找出所有的原子词素,可以理解为单个字符。
⑵ 分词调整
随后,还要对初次分词结果进行调整,主要是对时间、日期、数字等进行合并或拆分,找出所有可能的词组并发现词组间可能的关系,生成二叉图表,每个节点表示相邻两个词组的耦合关系。
3.3 成分分析
句子成分分析相关算法设计,句法分析的目标是分析合理的句法结构树。句法分析的输入是一个词串(含词性属性),通过对句子成分分析,得到一个由学生答案生成的语法树,之后就对该语法树进行关键词抽取。关键词抽取时只抽取出对句子意义表达关系重要的词汇,具体抽取时,可以判断它是否实词,若是,则抽取之,否则,不抽取。
3.4 相似度计算
依次遍历语义树中的各词语,抽出该词保留在数组中。开始在学生答案中查找是否有得分点,将标准答案关键字与学生答案相匹配,查看标准答案的关键字是汉字还是非汉字,是汉字则按照双字节处理,非汉字则按照单字节处理,求出标准关键字在学生答案中所占的比例,按照比例划分分值,这也就是本系统的评分规则。最后计算出学生答案与标准答案的相似度,得出学生答案的分值。
4 结束语
本文虽然在某种程度上实现了主观题的自动阅卷系统,但由于自然语言中知识的博大精深以及本人能力有限,有许多地方都有不足之处,致使系统打分跟教师的实际打分还是存在很大的偏差。如何用更好的分词方法来支持句法分析过程;怎样让知识库具备可扩充性,把人工智能和机器学习引入到汉语句法分析中来提高分析的准确率和效率;如何对语法树更好的进行关键词提取,是否有更好的方法对学生答案和正确答案进行相似度计算等等,这些问题都有待进一步研究。
参考文献:
[1] 金博,史彦军,滕弘飞.基于语义理解的文本相似度算法[J].大连理工
大学学报,2005.45(2):291-297
[2] 况姗芸.网络课程中主观题在线评阅系统的设计与实现[J].中国电化
教育,2004.3.
[3] Nghi Truong,Paul Roe. Static Analysis of Students' Java Programs[J].
Australian Computer Society,2004.
[4] 秦学勇.基于相似度计算的主观题阅卷系统设计[J].安徽建筑工业学
院学报,2010.4.
[5] 唐朝霞.一种基于特征提取的简答题阅卷算法[J].湖南工程学院学
报,2010.1.