基于DL和领域本体的题目自动生成技术
2012-08-16李慧
李 慧
(盐城师范学院,江苏 盐城 224000)
1 研究背景及意义
随着计算机技术的普及,计算机等级考试作为一种测试计算机应用知识掌握程度和上机实际操作能力的评判标准被迅速推广起来。为了更好地帮助学生掌握计算机基础知识,许多高校都建立计算机等级考试的试题库供学生学习、检测使用。然而,传统的试题库存在以下几点缺陷:一是试题库的维护需要花费大量的人力、物力和时间;二是随着试题库的不断增大,题库中的题目不可避免地会出现冗余和重复[1]。为此,本课题研究了利用本体技术建立一个计算机基础知识的知识库,通过分析现有的江苏省计算机等级考试的真题,总结出各类出题模式,并利用描述逻辑(Description Logic,DL)的有关理论生成多项选择题的干扰项,从而实现目前计算机等级考试中的理论题目(填空题、多项选择题和判断题)的自动出题。
目前自动出题系统虽然方法各异,但所有系统的基本框架都是一致的,通过总结,得出一个题目自动生成系统的一般框架如图1所示。
图1 题目自动生成系统一般构架
图中知识库、语料库和文档是试题题目的来源,一般只考虑一种,虚线框1是填空题必须经过的步骤,虚线框1和2是选择题必须经过的步骤。
2 自动出题系统分析和总体设计
2.1 可行性分析
文中以江苏省计算机一级考试的真题考试为研究对象,详细说明自动出题技术的技术可行性。文中随机选择了近几年的江苏省计算机一级考试的8份试卷,人工地将每份试卷中的与概念有关的试题提取出来,与概念相关的题目具体情况见表1。
表1 历年概念题题量分析表
由表1可见,与概念相关的试题题目的比例基本达到50%,有些甚至超过50%,这就说明利用本体技术可以解决计算机一级考试中的相当一部分试题题目。
综合一级考试的题目特点,文中完全可以利用本体技术和描述逻辑技术来解决本系统的出题技术。本体技术主要用来解决概念的问题,逻辑描述技术可以用来解决试题中的并、非、包含、等价等形式[2]。
2.2 系统总体设计
系统利用DL技术,利用本体中的概念及其关系和出题策略来生成一个完整的题目题干以及正确答案。系统共可以生成3种类型的题目:填空题、判断题和选择题,也即是系统共有3个模块。系统最后可以将生成的题目放入到试题库中。本系统的具体数据流程如图2所示。
图2 系统数据流程
3 自动出题系统本体的设计和出题模式
文中采用的是斯坦福大学研究开发的Protégé软件作为工具,并参考了当前比较常用的一些本体建立方法,选取了彭胜华老师主编的《大学计算机信息技术》中的第二、三章为知识源,建立了一个OWL(Web Ontology Language)测试本体[1]。
3.1 本体的建立
文中所建立的本体中,共列举了16个概念和术语。在这些概念中共建立了86个类,其中,计算机、电脑、主机、主板、显示器、鼠标等被定义为类;定义了9个属性(其中,5个对象属性,4个数据属性)。另外还建立了26个个体实例,如ENIAC、超级计算机、大型计算机等,本体定义了所选章节中具有多个属性值的个体,比如个体“ENIAC”具有的属性值有:所属国家美国,加法速度为5000次/s,乘法速度为300次/s等。
类的关系中主要建立了两类关系:一类是父类和子类的关系,如计算机和大型计算机的关系;另外一类是等价关系,即两个类表示同一个事物,如电脑和计算机为等价关系。在建立类的关系时,还要设置互不相交关系,计算机分为巨型、大型、中型、小型和微型计算机,这些类型的计算机之间互不相交。当然,除了个体类之间存在以上关系外,属性的关系也存在以上两种情况。
另外,分别建立了对象属性关系和数据属性关系,通过这些属性关系,建立了个体和个体之间的联系。比如“所属国家”属性是一个对象属性,用于连接两个个体,如“ENIAC”所属国家为“美国”[3]。
3.2 本体的层次结构
所建立的本体中,类的层次图如图3所示。
其中,owl:Thing类是由Protégé初始建立的,表示包含所有个体集合的概括类,其它任何由用户建立的类都是该类的子孙类。在owl:Thing类下,本体共定义了5个大类:电脑、硬件属性、国家、计算机和计算机系统,其中电脑和计算机属于等价类,实际上建立的类一共4个。国家类主要用于描述个体实例的所属地,它只有一个类元素组成。硬件属性类主要描述硬件中的一些属性指标,如字长、主频等。计算机类主要描述计算机的分类,如分为巨型、大型计算机等。计算机系统类主要描述计算机的组成与结构,下有软件和硬件类。
图3 类的层次图
本体所建立的属性层次图如图4所示。
图4 属性层次图
其中有1个属性“所属国家”为对象属性,专门用于描述各类计算机以及各种硬件、软件中的个体和国家类的个体之间的关系。数据类型属性共有4个。属性也可以有子属性。本体中所建立的个体有26个,一个个体可以属于多个不相矛盾的类。
3.3 基于DL Axiom的出题策略
为了更好地表示出题策略,文中根据DL和OWL的一些语法,定义了一些符号的规则:利用大写的A,B,C,D来表示Class,利用R,S来表示属性关系,利用小写的a,b,c来表示个体,利用A(a)来表示个体a属于类A,利用R(b,c)来表示个体b和个体c存在二元关系R,利用⊆,≡等符号来表示子关系、等价关系等。
3.3.1 基于Class的出题策略
3.3.1.1 SubClassOf关系
在本体中,一般情况下,一个类如果有子类,往往有多个子类,即Ci⊆D(i>=1)。这种情况可以填空、选择和判断题。
3.3.1.2 EquivalentClasses关系
判断题的出题策略为C≡D is True or C≡D is False。填空题与多项选择题的出题策略是:如果两个类是等价的,即C≡D,可以利用这种相等关系进行出题。如果是多项选择题,其干扰项可以利用C的父类、子类和兄弟类等。
3.3.1.3 DisjointUnion关系
不相交集主要表述的是一个类,是由其它几个类组成的,并且组成的这几个类互不相交,即C=D1∪…∪Di(i>1,Di∩Dj=Φ)。这种公理模式一般用以描述一个类的组成部分,如DisjointUnion(a:计算机a:软件a:硬件)。
3.3.2 基于Property的出题策略
3.3.2.1 SubPropertyOf和 EquivalentProperties关系
在基于属性的出题策略上,SubPropertyOf关系和SubClassOf的关系以及EquivalentProperties与EquivalentClasses的关系类似,其出题策略只需将类换成属性即可,在此不再赘述。
3.3.2.2 利用 ObjectProperty关系
ObjectProperty关系主要用以连接两个个体,以表达个体间的关系。
3.3.2.3 DataProperty关系
DataProperty关系主要用以连接一个个体和一个数值,即:R(a,Datatype),其中 Datatype可以是int,float等。对于多项选择题,干扰项的选取可以采用加倍的关系,由于计算机中均采用二进制,则一般可采用2的n次倍或者缩小2的n次倍的形式。
3.3.3 基于Individual的出题策略[4]
3.3.3.1 SameIndividual关系
SameIndividual关系主要用以描述两个个体虽然名字不同,但实际上是指的同一事物这种情况,即a=b,出题策略与EquivalentClasses相同,这里就不再赘述。
3.3.3.2 DifferentIndividuals关系
DifferentIndividuals关系主要描述两个个体不相同的情况,即a≠b。
3.3.3.3 Class Assertions
Class Assertions主要描述某一个个体a属于一个Class类的情况。例如,描述ENIAC是第一代计算机,利用类断言可以表示为:ClassAssertion(a:第一代计算机a:ENIAC)。
3.3.4 基于 Annotation的出题策略[5]
Annotation用以对本体中的各种Class,Property和Individual进行注释和说明。类的注释对于出题非常重要,类的注释一般用以描述对该类(概念)的解释、说明,有时候是定义,即:AA(C,String),AA 代 表 AnnotationAssertion,String为一个字符串。例如,AnnotationAssertion(计算机软件“计算机系统中的程序及其文档,程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐明性资料”)。对于多项选择题,干扰项可以选择C的兄弟类、父类、子类均可。
3.3.5 多种策略的组合[6]
以上所出的策略都是基于单个Axiom得出的,其句子结构往往都比较简单,为了能够构造复杂的出题策略,将以上策略通过并、交、连接等操作进行组合。
以上策略都是以判断题和子类关系为例,对于填空题和其它类型关系与前面所述类似,这里也就不再赘述。
3.3.6 自动出题系统功能实现[7]
系统根据算法中的出题策略,可以出填空题、判读题和单项选择题3种类型。系统对本体的访问和操作实现是通过HP公司的Jena开发包来完成的。
要利用本体出题,首先要将本体文件读入内存(Ontology Model)中,然后遍历整个本体,在遍历过程中,利用各个出题策略进行出题[8]。如果是单项选择题,则根据正确选项和干扰项生成原则生成干扰项,判断是否遍历结束,如果没有的话就继续遍历,直至完成遍历。将生成的题目存放到题库中备用。
系统要遍历本体中所有类、属性和个体,在遍历过程中,根据出题策略生成3种类型的题目,由于类、属性和个体的遍历的过程相似,详细步骤如图5所示[9]。
图5 自动出题的算法流程
[1]丁向民.基于本体的多项选择题自动生成技术研究[D]:[硕士学位论文].南京:南京航天航空大学,2008.
[2]Studer R,Benjamins V R,Fensel D.Knowledge engineering,principles and methods[J].Dataand Knowledge Engineering,1998,25(1/2):161-197.
[3]许春霞.基于本体和描述逻辑的信息检索研究[D]:[硕士学位论文].南京:东南大学,2009.
[4]李华.基于本体的应急领域知识表示与复用研究[D]:[博士学位论文].天津:天津大学,2008.
[5]吕秋培,解素芳,李新利,等.关于元数据及其应用[J].档案学通讯,2003(3):47-50.
[6]周明.基于领域本体的网络产品检索引擎的研究与实现[D]:[硕士学位论文].长沙:湖南大学,2009.
[7]刘秀琴.基于语义网的自适应学习系统中领域本体的创建研究[D]:[硕士学位论文].长春:东北师范大学,2008.
[8]禚全刚.企业应用集成中一种基于领域本体的WEB服务组合方法[D]:[硕士学位论文].济南:山东大学,2007.
[9]苏海华.基于本体的环境信息系统框架[J].长春工业大学学报:自然科学版,2006,27(4):89-92.