基于主题词的试题库系统重题筛查
来源:用户上传
作者: 葛芝宾
摘要:本文针对试题库中的重题及重题筛查进行了讨论,并对试题入库和组卷阶段提出不同的筛查策略。重点介绍了主题词的概念、主题词库的组织、试题主题词的切分和提取等,在此基础上,阐述了在组卷阶段采用试题主题词进行重题筛查的算法。本文所述内容,对提高试题库管理效率和组卷质量具有实用和参考价值。
关键词:试题库重题筛查主题词
1重题及重题筛查概述
所谓试题库中的重题,是指那些考查相同知识的试题。
显然,某一门课程的试题库中通常保存着该课程的大量试题,这些试题属于各知识单元、各种题型(如选择题、填充题、判断题、解答题等)、具有不同的难易度。这样,重复试题的表现形式可能较多,但可归结为如下两类:
(1) 试题文字内容完全相同、或者文字内容非常相近且答案相同的试题;
(2) 试题的文字表述不同、或者题型不同、但考查的知识相同;
第(1)类重题表现出它们互为副本,对于这一类重题,不必要也不应该保存在试题库中,应该在试题录入(更新)阶段加以筛查(滤除),我们采用最大匹配算法,对同一知识单元、同一题型的试题进行筛查。而第(2)类重题,则在组卷阶段需要进行筛查,因为在同一试卷中,同一知识单元可能考查多个知识,但同一知识的试题不应该出现多个。本文仅就组卷阶段的重题筛查进行详细讨论。
2主题词及相关处理
2.1主题词
若试题由文字表述,我们定义试题的主题词为:用于表述试题考查知识的关键词。
例如选择题(本文引用试题均摘自网络《数据结构1800题》第5章、并保留原题号):
3. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1 到8 ,j的值为1 到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为()。
A. BA+141B. BA+180
C. BA+222D. BA+225
该试题所考查知识的主题词有:数组、元素、地址;另一方面,按汉语语法抽去修饰句子的附加成分[6],该试题的主干成分为:数组元素的地址||为||()。这说明提取的主题词与汉语语法理论一致,根据汉语语法结构,可以确定,一个试题的主题词至少有2个(主+谓)、或数个。同样,如下的填充题和应用题:
2.设二维数组A[-20..30,-30..20], 每个元素占有4 个存储单元, 存储起始地址为200.如按行优先顺序存储,则元素 A[25,18]的存储地址为(1) ;如按列优先顺序存储,则元素A[-18,-25]的存储地址为(2)。
1. 数组A[1..8,-2..6,0..6]以行为主序存储,设第一个元素的首地址是78,每个元素的长度为4,试求元素A[4,2,3]的存储首地址。
2.2主题词库(数据表)的结构
一般地,试题中的主题词多为专业词语,这样也便于通过预先建立“小容量”主题词库,来对试题进行自动主题词提取(切分)。为了便于利用试题的主题词进行重题筛查,试题库系统需要附加一个主题词库(数据表),用以保存该课程试题的所有主题词。
考虑到许多专业词汇具有多个同义词,例如:地址、存储地址、存储首地址。在重题筛查时必须将同义词作为同一主题词对待,所以,每个主题词除了有唯一的主题词标识TWid(我们采用4位十进制数字串表示),还有同义词属性SynonymId来记录其同义词的TWid。当有新的主题词加入主题词时,如果未指定主题词库中的同义词,那么其SynonymId存储其自身的主题词标识TWid;否则,则该主题词的SynonymId就记录指定同义词的的SynonymId值,这样就保证所有互为同义词的主题词的SynonymId取相同值。
2.3试题库的相关修改
题库是试题库系统的重要组成,其结构与组卷操作密切相关。为实现重题筛查,除了通常所需的试题属性之外[1]-[4],需要为试题库中的试题记录增加一个“主题词”属性(TopicId),用以记录该试题的所有主题词的标识,其值为该试题所有主题词的SynonymId数字串连接而成。此外,为试题增加Filter属性,记录该试题是否参与筛查。这是因为,试题库和试卷中通常有多种题型的试题,如按试题的答案不同,可分为填充题、选择题、判断题和解答题;按试题的认知能力不同,可有概念题、认知题、应用题和综合应用题等类型。填充题、选择题、判断题的题分较小(例如每道选择题1分、每道填充题2分等)、试题所涉及的知识范围小(试题只涉及一个知识单元)、试卷包含的题目数量多;而解答题的题分较大、特别是综合应用类试题所涉及的知识范围(单元)和题分更大、试卷包含的试题数量少。考虑到综合应用类试题可以通过其知识单元和题分分布来避免重复,所以,我们仅对如下试题进行重题筛查:
1) 选择题、填充题、判断题中,由文字表述题意的试题;
2) 解答题中,只涉及一个知识点且以文字表述题意的试题。
这类试题的Filter属性标志为“真”。
3基于主题词的重题筛查
基于主题词的重题筛查是在组卷阶段选题时进行。目前,组卷策略(或算法)有所不同,有些组卷策略是逐个地选取试题,而有些组卷策略(如遗传算法[2])则是根据题库中试题的相关信息首先确定选取的题、然后将这些试题再从题库中取出放入试卷。前者,重题筛查可以在每一试题选取过程中进行,若为后者,则需要对放入试卷中的试题进行筛查。无论如何,总可以将试题分为两个集合,设T为待筛查的试题集合,P为已确认的试题集合(初始为空),那么,筛查步骤如下:
1)当筛查未结束时重复如下操作
(1)从T中选取一道试题ti,若其Filter为真,则取ti的TopicId属性值,分离出其所有的主题词标识,计算其主题词数目TopicNumT;否则,转2)。
(2)当P中存在与ti同一知识单元的试题时,重复(筛查):
(a)从P取出一道与待定试题同一章的试题pi,计算主题词数目TopicNumP,将ti的主题词标识与pi的TopicId进行匹配、统计出相同主题词标识的数目TopicCount;
(b)计算D=TopicCount/ MIN(TopicNumT, /TopicNumP),若D> Dup(阀值),那么放弃待定试题,转(1);
2)若ti已满足组卷算法的要求,则将ti放入P,转1);
3)结束。
上述算法的步骤1)的(1)、(2)与重题筛查有关。显然,如果D等于1,那么说明ti、pi的主题词集是包含关系,可确认为重题;若D为75%,则表明,若ti(pi)有4个主题词,其至少有3个主题词与pi(ti)的主题词相同,那么它们所考查的知识相近,可以通过阀值Dup调整筛查要求,我们取Dup=0.7。
参考文献:
[1] 乐光学、彭小宁、曾志峰,试题库自动组卷系统的算法设计及实现[J],计算机应用2001,Vol.21(No.8):198-200
[2] 闭应洲、苏德富、陈宁江,基于矩阵编码的遗传算法及其在智能组卷中的应用[J],计算机工程,2003,Vol29(No6):73-75
[3] 余胜泉、何克抗,网络题库系统的设计和实现[J],中国远程教育,2000.9(总164):53-57
作者:
葛芝宾 江苏省盐城师范学院
转载注明来源:https://www.xzbu.com/5/view-1375153.htm