基于网络知识资源语义化的电子试卷自动生成系统研究_第1页
基于网络知识资源语义化的电子试卷自动生成系统研究_第2页
基于网络知识资源语义化的电子试卷自动生成系统研究_第3页
基于网络知识资源语义化的电子试卷自动生成系统研究_第4页
基于网络知识资源语义化的电子试卷自动生成系统研究_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、东华大学硕士学位论文基于网络知识资源语义化的电子试卷自动生成系统研究姓名:冯奇俊申请学位级别:硕士专业:计算机软件与理论指导教师:朱国进20080301皋十纠络知识资源语义化的了试卷臼动生成系统研究基于网络知识资源语义化的电子试卷自动生成系统研究摘要作为一个巨大的信息空间,已经成为人们获取学习资源的重要途径之一。当前,上涌现的大量程序设计题库(或称之为在线答题系统,)为程序设计学习者带来了丰富的学习资源。这些题库向初学者提供形式的程序设计题,它们大多要求做题者使用编程语言编写一个命令行的程序来解决问题。做题者向答题系统提交这个程序的源代码时,题库会给出一个答题代码正确性的判别。但是这些题库在提

2、供初学者练习的时候,并没有给予太多的学习指引只是告诉做题者答题代码是否正确,这样造成很多初学者感觉在练习时无从入手。究其原因可能有如下几点:)大部分题库没有针对知识点的难度分析和对所用到的知识点的统计,初学者很难判断哪些题目适合自己练习。)当初学者在做题过程中遇到困难时,题库无法提供有效的提示。)网上题库虽然拥有丰富的题目资源,却没有提供选题功能,程序设计课程教师或竞赛教练无法通过题库来方便地选择所需要的训练题。针对这些问题,本文通过把网上的题目资源语义化的方法,让计算机把有难度的程序设计题分解成一些小题使初学者更容易上皋删络知识资源语义化的了试卷自动生成系统研究手。同时,本文还通过大量实验数

3、据和前人的理论得出了一种适合于程序设计题的难度分析方法,并且开发了一个利用这种方法的基于语义化的试卷自动生成系统。本文的目标是研究出一种成熟的自动化程度高的程序设计出题出卷系统,能够使出题者方便的对网上现存题目或原创题目进行语义化,并且拆分成合适学习的小题,同时还能根据试题的难度来自动的选题生成试卷。本文的研究重点之一在于使用本体语言把网上的程序设计题语义化,使之成为计算机可以理解并且根据一定规则能够自动或半自动分解的题目。本文的另一项重要工作在于把本体语言描述的分解后的题目转为能够被普通人所理解的自然语言描述,这里主要应用了自然语言生成技术,使本体描述的题目内容能够直接生成自然语言。除了分解

4、题目,本文还论述了一种适合程序设计题的难度评估系统,改进了传统的纸上试题试卷的难度评估用在程序设计领域中的不足。通过这个评估系统,可以实现适合程序设计题的自动选题和出卷。本文在最后部分给出了原型系统在多次校内程序设计训练的实验结果,并对结果进行了一定的分析,验证本文所论述的理论和系统的可行性与正确性。本文的研究成果例如从本体生成自然语言和题目难度分析等不仅能应用在本课题所论述的程序设计领域,通过一些改进还可以用在很多其他领域,比如网上购物系统中的货物描述的自然语言生皋十州络知识资源语义化的【了试卷自动生成系统研究成等。说明了本课题所研究的方法具有一定程度上的通用性。关键字:语义化,本体,自然语

5、言生成,试题难度评估皋网络知识资源语义化的了试卷自动生成系统研究玳、入几,:),),果络知识资源语义化的了试卷臼动生成系统研究,(),壮十嗍络知识资源语义化的【了试卷自动牛成系统研究,:,皋十网络知识资源语义化的也了试:卷臼动生成系统研究一东华大学学位论文原创性声明本人郑重声明:我恪守学术道德,崇尚严谨学风。所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已明确注明和引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品及成果的内容。论文为本人亲自撰写,我对所写的内容负责,并完全意识到本声明的法律结果由本人承担。吼鬻矿日期:砂留年弓月日桀十网络知识资源语

6、义化的乜了试卷自动生成系统研究东华大学学位论文版权使用授权书学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅或借阅。本人授权东华大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密口,在年解密后适用本版权书。本学位论文属于不保密口。学位论文作者虢种隅伽弓月日指导教师签名:鞠蓼只期:协矽年雩月譬日皋十络知识资源语义化的【了试卷自动生成系统研究第一章绪论研究意义和背景引言年将由我校承办国际大学生程序设计竞赛()亚洲预赛上海赛区竞赛,这是我校以及学院向国

7、内外同行展示学术科研水平的绝好机会。而这次竞赛能否成功举办的关键之一是网上竞赛平台的建设。此外,随着国内外程序设计水平的不断提高,设计一套先进的训练环境来大幅提高我校程序设计水平,争取在承办这次竞赛前再次冲入国际大学生程序设计竞赛世界总决赛,并在总决赛上取得好成绩。根据以上的需求,当前需要设计和实现一个基于先进技术的程序设计训练与竞赛平台【】。因此本文论述了一个基于网络资源语义化的试卷自动生成系统,作为程序设计训练与竞赛平台的题目和试卷来源。本文的作者和这个系统的开发团队都是在国际程序设计竞赛上屡次获奖的选手,并且退役后担任校程序设计竞赛的助理教练,这个系统的许多实验数据都是经过多次国际国内比

8、赛获得的第一手资料,此外本文还参考了国内外其它专家在这个领域的研究成果,结合自己的实验数据,提出了一些适合程序设计题目的选题和难度评定方法。网上程序设计题库如同传统的考试,在程序设计竞赛训练中,做题是关键环节之一,一套高质量的训练试题对程序设计训练有极大的帮助。而程序设计学习的过程中,做题也是提高水平的有效途径。但是本文所说的题目和传统的笔试的题目不同,是提出一个实际问题然后让做题者用一个命令行程序来解决问题,比如最简单的程序设计题是,也就是要求做题者编写程序读入两个数,把这两个数相加的结果输出。而网上题库中比较著名的是西班牙大学的,耩十网络知识资源语义化的了试卷(动生成系统研究其网址是:羔主

9、巳;么么垒堡:望!垒:笪。在这个题库中截止本文成文时有道题目,有位来自全世界各地的程序设计爱好者使用这个题库,其题目数和用户数还在不断的增加。类似的题库网站还有不少比如北京大学的,浙江大学的,这些题库上的题目是程序设计训练和学习的丰富资源。而从程序设计题的本质来说,它是一种知识资源,因为题目本身是知识的载体,每一道题目都是训练程序设计中的某几项知识。哪怕是最简单的程序设计题,比如上文所提到的都会有知识。用到的知识如下:)整数的定义。)输入语句。)加法运算。)输出语句。以上这些都是概念级知识点(概念级知识点是指和编程语言无关的,抽象级别上的知识点,相对应的是语言级知识点),还未涉及到具体的编程语

10、言,如果涉及到具体编程语言,比如或,就能列出更多的知识点。出此可以把题目中蕴含的知识总结成一个个的知识点,如上文中就可以得出个概念级的知识点,如何采集和整理知识点将在下文中详细论述。此外,本文所论述的试卷也并非传统的纸上试卷,而是一种电子试卷。电子试卷的内容是上文所提到的程序设计试题的集合,而电子试卷的格式是以能够和计算机交互的文件形式存储的,比如。而本文下面所提到的试题和试卷都是指代用来存储程序设计试题的电子试题和试卷。如上文所述,网上有丰富的题库资源,那么利用网上的题库资源进行程序设计训练是一个简单高效的方法,因为网上的题目量大而丰富,并且覆盖的知识点广泛。但是在如此丰富的题目资源中,如何

11、选择合适的题目来进行训练是每个程序设计竞赛教练和教师所面临的问题。传统试卷生成方法的不足无论是程序设计竞赛还是训练,其题目以及整体试卷质量的高低直接关系桀二州络欠识资源语义化的【了试卷白动生成系统研究到竞赛成功与否和训练是否达到效果。以往出题出卷工作基本都是由出题者人工完成的,一般出卷方式有两种,一种是程序设计竞赛用的试卷,由程序设计方面的专家为这场比赛专门原创的题目组成,但是由于出题者的背景知识的偏向和对参加竞赛或训练选手的水平估计不充分,往往有可能使题目的难度过难或过易,或者试卷整体所用知识点偏向性严重而影响了竞赛的公下性和训练的效果;另一种是平时训练以及每月的月赛使用的试卷,这种试卷由于

12、需求数量比较大,每次都采用原创的试题,显然工作量很大也很困难,因此常规训练以及月赛需要从网上现有的题库中抽取一定的题目来比赛。每次程序设计竞赛训练都会有一定针对性和目的,比如某次训练需要集中训练动态规划算法。当前大多数训练的选题工作都是由教练根据这次训练的目的来手动选题,这样的选题出卷方式,给出题者带来很大的不便,他必须从网上数以千计的题目中选择合适的有针对性的题目,这样工作量很大,而且出的试卷带有很大的主观性。综上所述,需要一套科学合理并且最好自动化的选题系统来使程序设计竞赛训练和选题更加科学和高效。但是现有的传统纸上试卷的自动选题方法如果用到程序设计题上来也是不合适的,包括一些现存的在计算

13、机考试中的选题和出卷方法【】也很难直接适用于程序设计竞赛选题和出卷。程序设计试题有自己的特点,主要体现在题型和难度的评估上。程序设计题作为大题的形式,每次竞赛或考试只有道题,但是必须全部答对测试数据才能给分,而不像传统考试中的大题,答对部分便能得分。这里答对所有意思是:程序设计题的解题程序输入题目的输入测试数据后,输出的结果必须完全和题目给出的标准输出数据一致,这就类似软件测试中的黑盒测试方法()【。比如这题,题目给出的输入测试数据可以如图所示。图的输入数据图中有组测试数据,每组一行包括两个数字。要求解题程序能够把上面皋嘲络知识资源语义化的了试卷自动生成系统研究组数据中的个数字相加的结果输出,

14、而标准输出数据可以如图所示。图的输出数据如果解题程序的输出如图,则得到这题的分数。否则,如果解题程序由于整型溢出问题把第组数据算错了,则这题将不得分而不是传统题目中的答对三分之一数据而得三分之一的分数。这样在选题出卷中必须尤其谨慎并采用合适的方法,如果使用传统的难度评估和选题方法很有可能让做题者“颗粒无收”。这部分内容将在第章中会有详细论述。另外,大多数现存的程序设计竞赛的练习卷中,题目和题目日是没有联系的,也就是说如果做题者做不出某题的话,换一题就相当于另起炉灶重新读题做题。如果能够在生成的一张练习卷中所有的题目都有一定的联系,而且这种联系能够帮助做题者解题和学习的话,就能让练习卷起到引导做

15、题者的作用。当作题者某题做不出的时候,可以在其它题目上得到提示进而做出自己本来做不出的题目同时学到知识,以达到更好的学习效果。电子试卷自动生成的应用背景如上文所述,需要进行题目问有联系的试卷生成,那一种比较直接的方法便是选用现有题库中的部分本身就有联系题目进行生成。这里说的联系主要可以有两种关系:一种联系是题目之间解法相似;另一种联系是个问题是另一个问题的子问题。前一种联系是横肉联系,也就是做题者通过另一道比较简单的题目来学习一种解题方法,然后解决当前比较难的问题。而后一种联系是用来引导做题者先解决子问题后再解决总的问题。对于第一种联系,从题库中寻找相似解法的题目,只要计算机能理解题目的主要解

16、法和知识点并且能够判别难度即可实现,然而这种方法的缺陷在于题库中并不定有合适知识点和难度的题目。但是第二种联系在题库中寻找就更加困难了,因为一道程序设计题可雉于纠络戈识资源语义化的匕了试卷自动生成系统研究能包含很多子问题,要寻找到包含这些子问题并且不包含其它问题的题目(因为有其它问题的话,可能会增加做题者的难度)。除非题库内题目有一定数量的题目,否则这很难做到。因此,如果能用一定的方法把道题分解成一些单独的子问题,这样就可以生成符合要求的试卷了。但是要完全实现分解任何题目有一定的难度,因此本文会就一些特定的子问题研究一些比较实用的方法来分解题目。除了分解试题以外,本文还将介绍一种方法来进行试卷

17、组合以适应练习,竞赛和考试的需求。研究问题及解决方法网络知识资源的语义化研究从上文的论述可以看出,电子试卷自动生成的主要问题有三个:题目内容的计算机可理解表示方法,拆分题目和题目的生成,以及组合试卷的方法。首先,题目内容如果能用计算机可理解的方式来表示的话,就能自动根据题目的内容来抽取和组合成试卷,这个就是题目的语义化。其次,拆分方法主要需要解决的内容是如何拆分题目,拆题的依据是什么,然后又以什么方法来组合成试卷。最后,题目的生成问题主要在于题目拆分后的内容如何自动生成人们可理解的题目描述。对于第一个问题,本文的方法是采用语义化【】的方法来把题目转化为计算机可理解的表示形式。由于程序设计题语义

18、化后,将会部署在网上以语义题库的形式发布,因此本文根据当前流行的语义网的标准,把程序设计题以本体()【】的形式来表现,以提高题目的兼容性和可扩展性。对于第二个问题主要解决方法是知识词典和方法库,这两个系统是本课题组的另外两个项目的工作,下一节将对它们做一个简单介绍。同时本文还提出了一种方法来进行试题自动挑选并生成各种目的的试卷。对于第三个问题,主要解决方法是自然语言的生成法()】也就是在有基于语义化的拆分方法后,再从本体的实例利用的部分理论来自动生成合适的自然语言描述。这旱需要说明的是,一道程序设计题一般包括自然语皋于网络知识资源语义化的了试卷自动生成系统研究言描述的题目描述,输入输出描述。用

19、来给做题者说明题目的内容以及题目的输入格式如何。比如上文例子中的这题,节中给出了他的输入输出形式,那么在题目的输入输出描述中将会有类似以下的文字来给做题者说明,如图所示。图的输入输出描述有了如图的输入输出描述,做题者才能写出解题程序的输入输出部分。而分解后生成的新题目也必须有这些自然语言的输入输出描述,因此需要有一种方法来自动生成新题目的自然语言输入输出描述。电子试题和试卷之问的关系首先,试卷是由试题组成的,也就是兑试题是生成试卷的基础。试卷的内容就是以试题组成的,试题的质量和难度高低完全取决于各个试题的质量与难度。因此本系统首先需要解决的便是试题的问题,也就是试题的分解,以及分解出的题目的自

20、动生成,节将论述这个问题。其次,试题的选择是由试卷的总体目标决定的,也就是说在出卷时,一般都是先制定试卷的目标,然后决定难度等,也就是根据出卷的目标来选择题目。也就是说,试题和试卷的关系是相辅相成的题库的知识点决定了试卷的选择范围,而试卷则根据自己的要求从题库中选择合适的题目,因此本文前半部分将论述有关试题生成的内容,后半部分将论述试卷的生成以及题目难度评论的问题。堆十州络知识资源语义化的了试卷自动生成系统研究利用知识词典的电子试题分解电子试题的分解其关键在于如何让计算机理解题目,当计算机可以理解题目后,就能利用一定的方法进行自动或半自动的分解了。而如何让题目被计算机所理解的过程即是语义化的过

21、程【】。知识点是语义化的核心问题,语义化的主要目的就是赋予题目以知识点,同时这些知识点又是计算机可理解的。如何使知识点被计算机理解,这是本课题组另一个项目知识词典的工作。这个知识词典完成后,将会包含一个相对完整的知识点体系,这些知识点之间存在各种各样的联系,并且以本体模型【】来描述,使之能被计算机所理解。有了这样一个知识词典后,本系统的主要工作就在于如何赋予题目以知识点。主要是如何从现有的网上题库的题目中提取知识点,当得到了题目的知识点后,便可以利用知识词典建立这些知识点之间的联系,并赋予题目以知识点。于是题目语义化的主要部分知识点便有了,接下来就是对题目的输入输出进行语义的描述。出于分解题目

22、不单单是把题目的知识点分解出来,而且分解出来的题目必须由自己的测试数据,输入输出和题目描述,这样才能成为一道完整的题目,否则光有知识点的堆砌并不能成为题目。因此,如何把分解出来的知识点整合成新的题目是分解题目的难点之一。本文根据程序设计题的输入输出特点,建立了输入输出各个元素之间的关系的语义化描述,于是计算机也能形式化的理解题目的输入输出格式,并进行格式的自然语言生成,这样分解出来的题目输入输出描述有了。此外,对建立了输入输出各个元素之间的关系的语义化描述后,还能让计算机理解测试数据,并根据一定规则分解原题的测试数据并整合到新题目中去。本文第章将集中讲述如何采集题目的知识点,第章将讨论输入输出

23、的描述结构以及生成自然语言的方法。电子试题的自动生成如节所论述的试题的自动生成中,所要解决的主要问题是如何使分解后的新题目生成人可读的自然语言描述。这里采用的主要方法是:建立输入输出各个元素之问的关系的语义化描述后,把以语义化的描述通过一定的方攘十网络欠识资源语义化的了试卷白动生成系统研究法,转换成自然语言的题目输入输出描述。在本文所论述的原型系统中,语义化描述主要采用曲本体语言(曲,)的形式。自然语言生成技术主要有两种实现方法【】,一种是基于模板的生成,另一种是基于规则分析的生成。其中基于模板的生成实现简单效率高,但它不能生成非常复杂的文本。基于规则分析的生成实现起来比较复杂效率低,但是它可

24、以生成比较丰富的语意。本系统生成的信息主要由部分组成,一部分是本体中的实例信息,主要是本体的实例及其关系,出于本体的复杂性,很难使用模板来描述,因此使用规则分析的方法来生成。而另一部份是文档的上下文信息,主要是有关输入输出内容基础信息的介绍,他们结构简单有章可循,因此可以使用基于模板的生成。本系统以程序设计题目的输入输出实例描述作为输入。因此,在进行单个实例的自然语言生成时,使用规则分析的方法来生成。在总体的文档生成时,使用基于模板的上下文生成规则,最后生成自然语言的描述。个性化选题服务无法给初学者提供个性化的选题服务也是各种现存网上题库所存在的问题,但是这个问题并不是本文研究的范围,本课题组

25、另一个子项目:个人知识档案库会解决这个问题。而本系统有一个重要的功能就是提供给个人知识档案子系统以个性化选题的服务。个性化选题是指对于拥有不同的知识背景的做题者提供给他不同的题目,以做到个性化的教学。个人知识档案子系统将会给本出卷系统提供一个做题者的需要练习的知识点集合,然后本系统将根据这个集合推荐合适其学习的题目,并把题目根据难易程度编成一个题目序列提供给做题者以供其练习。有关个性化选题方法的内容将在下面第五章中介绍。电子试卷的自动生成如前文所述,本系统能够提供自动语义化和分解试题,但是试题最终要以试卷的形式提供给做题者。因此,除了能够生成题目以外,本系统的主要功能攮寸二叫络知识资源语义化的

26、【了试卷自动生成系统就是选题和生成试卷。从知识点来看,它描述了一道题目内部知识的结构与联系,因此用来分解题目是很合适的。而选题和生成试卷则需要用到不同题目之间的联系,因此必须使用方法库,方法库是本项目组另一个子项目的内容。方法库的作用在于找出题目或题目的一种解题方法之间的联系,以及他们的相似度。这样就能把题库中的所有题目之间的联系组成一张图,根据这张图上的联系试卷生成系统依照一定的方法以及题目的难度系数,把所需要的题目使用广度优先搜索【】后其他方法找到并组成试卷,。本文将结合以及改进传统的选题出卷方法,并根据程序设计题本身的特点和知识点分析得出一种适宜于程序设计题的难度评判方法。这部分内容将在

27、第五章详细论述。试卷自动生成系统已在我校协会活动中多次使用并得到了一定的效果和非常有用的实验数据,给系统的改进提供了极大的帮助。并且也对系统的可行性作了一个有效的评估,在大多数情况下,题目的拆分非常有用,但是有一小部分题目其拆分方法仍然有待改进。总体来说,这套系统将对初学者学习程序设计有极大的帮助,而对于程序设计训练来说也能在一定程度上减轻教练选题的负担。论文主要工作)研究本体论以及语义的相关知识。学习和探索语义化和本体的建模方法。)使用本体来描述程序设计题所包含的知识点之间的联系以及电子试卷所需的语义信息,提出了一种题目知识点的采集方法。)采用本体描述语言描述程序设计题的输入输出描述的模型,

28、使该模型能够让计算机理解。)基于知识库进行试题分解的研究,并研究出一些通用的方法来分解某些特定的子问题。)对于分解出来的基于本体描述的试题实现自动生成其自然语言的描述,并研究从试题描述本体生成自然语言的方法。)制作试卷自动生成器和出题器的人机交互平台,并使其能表达丰富的语幕于网络知识资源语义化的了试卷臼动生成系统研究义信息。()与程序设计训练与竞赛平台整合,并实现每次月赛的试卷自动生成。论文的组织结构本文分七个章节,前两章是介绍性的章节,主要对本文的技术路线以及所论述的系统进行一个概述,第三、四、五章节是根据分解的步骤来详细论述题目分解的过程,第六章主要是实验结果和实例,第七章是结束语。有关三

29、、四、五章的排列顺序可用图来表示。图文章章节内容概括如图所示,本系统分解题目和组成试卷的过程一共分步,可以概括为语义化及分解,分解后的题目描述生成,分解后题目重组成试卷。而三,四,五章的内容则分别对应这三部分。其中题目描述的语义化和描述的自然语言生成联系非常紧密,因此放在第四章中论述。本章小结本章主要对论文进行一个概述,把论文的主要工作以及研究路线作了一个简要的说明,为下文进一步详细论述打基础。桀十川络知识资源语义化的了试卷臼动生成系统研究第二章相关技术及其研究与应用当前网上知识资源及其语义化在本文标题中所提到的网络知识资源】是网上题库资源,虽然题库中的题目本身并不直接向人们传授知识,但是每道

30、题目都会考察一定的程序设计知识,而做题者做题的目的也是练习或学习相应的知识。因此题目归根到底也是知识的集合,只不过其形式和一些直接教授知识点的资源如网上的学习资料有所不同。因此题库中的题目也是一种知识资源的一种表现形式,但是这罩的知识资源并没有语义化而是使用的的形式,也就是其内容无法被计算机所理解只是对人可读,而本文的主要工作之一便是把这些知识语义化。当今网上这样的资源非常之丰富,仅仅是题库,截止本文成文时,这个题库中共有道题目,而且这个题库还是动态更新的,不断有新的题目加入。但是多次比赛干)练的实验数据显示,这个题库的题目仍然有一定的难度。对于初学者来说并不适合。因此,本文所要丌发的系统虽然

31、目标是能够把网上题库的大部分题目进行有效的语义化,但是第一步的原型系统将以另一个更为适合初学者的题库为例。经过整理后,题库中共有道题目,同时这些题目所用到的知识点已经建立了一个知识词典。本文利用知识库对题库进行语义化,使这些知识资源从只能人可读变为计算机可理解。语义网和语言当今信息化时代,互联网已经越来越成为人们生活的重要部分之一。现在互联网上的主要信息都是提供给人阅读的,而在下一代互联网一一语义网()】中互联网上的信息不但能给人阅读,还可以提供给计算机理解。语义网的方法是研究开发能够将信息表现成计算机可以处理的形式的语言【】。这晕最常用的语言就是,本体语言()是推荐的本体描述语言,由和所结合

32、演变皋十网络知识资源语义化的了试卷自动生成系统研究而来,是用束定义和实例化本体的。()适用的应用中,不仅仅需要提供给用户可读的文档内容,而且希望能够处理文档的内容信息。能够被用于清晰地表达词汇表中的词条()的含义以及这些词条之间的关系【】。而这种对词条和它们之间的关系的表达就称作本体()。相对、和拥有更多的机制来表达语义,从而超越了、和仅仅能够表达网上机器可读的文档内容的能力。【但是在语义网的发展过程中伴随产生了一个问题:给人阅读的信息和给计算机理解的信息其中可能存在不一致的问题。举例来泌,对于计算机理解,比较重要的一点就是对于程序输入的定义,然而在人所理解的程序输入定义如何和计算机的理解不一

33、致的话,就会导致程序输入有问题。比如计算机理解的输入数据应该是个整数,而用户在说明中看到的却是英文字母,那么很有可能程序便无法运行。对于普通人来说,由于专为计算机理解所设计的,因此它并不便于普通人理解。对于这个问题,当前还没有太多的办法来解决,主要难点在于自然语言的理解】。因此,当前语义网络的学者们试图通过其他方法来建立计算机可理解的本体与自然语言之间的桥梁。其中研究得比较多的一种方法是语义注释()】。例如,等人在年论述了一种半自动的文档语义注释工具来连接自然语言的文档和本体【,而在年研究出了一种基于的比较先进的语义注释方法【。但是在大多数语义的方法中,文档的来源是人写的文本,因此,它很难保持

34、动态更新,比如本体做了改动后无法自动的更新文本。同时,对于一个现有本体的新个体()每次都要重新撰写自然语言的文档也是非常耗时的。为了克服这些缺点,需要一种从本体自动转化为自然语言文档的方法。当前还没有一种通用的方法来完全解决这个问题,但是有一些学者在特定领域中对这个方面有不少研究成果,比如,】等等。他们的原理很相近,能够基于一个现存本体的个体()生成自然语言的报告。但是这些方法用在本文的系统中并不完全合适,因此需要对之进行改进。皋十网络则识资源语义化的了试卷自动生成系统研究自然语言生成分析自然语言生成(,)是从一种具有意义的表示()中生成文本【。它是人工智能和计算机语言学的交叉领域,它主要用来

35、使计算机能够产生人类可读的自然语言文本。一般来说,自然语言生成系统以一种非自然语言的具有意义的表示作为输入,然后系统根据语法规则以及这个系统的应用背景和领域知识来自动得生成文档,报告,帮助信息等。自然语言生成是当前受到广泛关注和应用的领域,它给人工智能和人机交互学带来了新的课题。从长远来看,自然语言生成将在人机交互中扮演重要角色并在不久的将来使计算机能够在交流方面更加智能化。【当前,已经有大量的能够实用的自然语言生成系统,比如参考文献】中的基于模板的答复系统,这样的系统已经在中得到越来越广泛的应用了。虽然由于用词和语言的不同,本体描述语言和自然语言的用词又很大的差别【。而随着自然语言生成技术的

36、发展,在一定的领域中从本体语言直接生成自然语言的文档成为了可能。在参考文献】中,对网上的现存本体进行了一个统计,得出了本体可以作为自然语言生成资源的结论。而当前大多数自然语言生成系统都是基于一定的应用领域的【】,这样可以给生成的自然语言带来一定的限制,方便建立领域词典。本文在一些其他学者的研究基础上,通过总结和改进,提出了一种适合于程序设计输入输出描述的从本体生成自然语言的方法,并且把这种方法应用到一个基于这个本体的有关描述命令行程序输入输出的系统中,也就是前文所提到的本文的实验系统程序设计试卷自动生成系统中的试题描述生成部分。由于程序设计基础的题目都是基于命令行的程序,而本系统的目的就是为这

37、些程序自动生成符合其实际情况的输入和输出描述。因为训练用题的数量比较巨大,如果由人手工来写程序的输入输出很花时问,更重要的是由于人手工写的文本很有可能会产生与计算机所理解的输入输出格式有不一致性,因此,自动生成符合其实际情况的输入和输出描述在题目生成这部分中是一项很重要的工作。皋十列络知识资源语义化的【了试卷自动生成系统研究知识词典与方法库如第一章所论述的,知识词典与方法库是本系统所依赖的两大组件,他们分别提供了题目的知识和方法上的支持,下面将分两节论述他们的在本文所论述的系统中的主要作用。知识词典图灵奖()获得者曾在他的得奖演说一一“”】中指出了软件开发过程中的关键问题之一,即软件开发中,缺

38、少的并不是技术,而是领域知识()。而本文所论述的试卷自动生成系统中的领域知识的来源正是基于程序设计基础知识的知识词典。知识词典并不是一个静态的只提供查询功能的知识点数据库,而是能够根据外部的需求提供有关知识点的智能服务的词典。知识词典的最大作用是为题目进行知识点的标注,也就是通过知识词典的支持语义化的赋予题目以知识点。最基本的支持方法是通过代码来获取知识点,知识词典将会通过程序的代码分析来得出代码中包含哪些基本的语言级知识点。得到语言级的知识点后,知识词典还能够通过这些语言级知识点之间的联系来分析出一些高级的概念级知识点。这里需要说明的是在知识词典中,语言级知识点是那些与具体程序设计语言比如,

39、等有直接联系的知识点,如的输入语句这个知识点直接和语言挂钩。而概念级的知识点则是比较高级的与具体程序设计语言脱离的知识点。比如“标准输入”这个知识点,并不与具体的程序设计语言挂钩,而是泛指任何程序设计语言的标准输入这个知识。除了分析代码,还有通过测试数据等方式来得到知识点,但是这些方法比较复杂也需要人工干预,在下面相关的章节中会详细介绍这方面内容。知识词典除了提供知识点的标注服务外,还会在进行题目分解时提供知识点上的支持。堆于纠络知识资源语义化的了试卷自动生成系统研究方法库方法库提供的主要是解题方法所包含的知识点以及他们之间的联系。首先,方法库可以通过知识词典的支持来整理出每一种解题方法所包含

40、的知识点组合,这样就可以通过给定的知识点来判别所用的方法。本系统将利用到方法库的这个服务来分解试题,其主要作用在于对题目的知识点进行拆分后,必须知道哪些知识点的组合是可以生成题目的。因为并不是所有的知识点组合都能给出合适的题目。本文将在第三章中论述如何结合知识词典和方法库进行题目的分解。其次,每道题目都有其解题方法,不少题目还有多种解题方法。雨不同的解题方法之间可能存在一定的联系,特别是一些概念级的知识点,他们所用的解题方法可能有很多相似之处。比如贪心算法,揣有这个知识点的题目,他们的解题方法中必然有相似之处。这样就给选题带来了方便,出卷者可以根据一道捐有贪心算法的题目联系到其他类似的题目。另

41、一方面,不同于知识库,方法库描述的是题目与题目之间的联系,而且可以有多种联系,因此对于出卷就有很大的意义。因为出卷就是要找出一定的题目来整合成一张试卷,而在一张试卷中的题目一般都是根据一定的法则挑选出来的,也就是说很大程度上存在一定的联系。本文的第五章将整理这些联系并提出出卷的方法。本章小结本章主要论述了本文所设计到的各种相关技术及其应用,并且把这些技术的当前发展情况做了一个简单的介绍。璀十网络知识资源语义化的了试卷自动生成系统究第三章题目知识语义化及分解研究程序设计题的语义化步骤程序设计题的语义化一共分两个步骤:一是知识点的提取;二是题目描述的语义化。下如上文所述,知识点的提取是语义化的重要

42、步骤,取得了题目的知识点,才能让计算机有效的分解题目。而分解除了需要知识点外,还有一个很重要的问题就是分解后的题目描述。由于原题只有个题目描述,而分解后的题目必须拥有自己的题目描述才能独立成为一题,因此产生新题目的描述是分解题目的关键之一。当前网上的程序设计题题库中题目的主要形式是以实际问题编程为主。题目主要由部分组成:问题描述,输入描述,输出描述,输入数据,输出数据。其中部分输入数据和输出数据作为例子让做题者看到,其他则看不到。题目要求做题者编写程序来解答题目,而这个程序必须把所有的输入数据进行处理使其符合输出数据的要求。程序设计题从其本质上来说是考察做题者对一个知识点集合的熟悉程度。因为程

43、序设计题出题时,从目的上来说和传统的纸上试题出题相似,都是考察某些知识点,以及知识点的组合,只不过是以实际应用编程的形式来考察。假设做题者对题目所有知识点都熟悉并对他们之闯的组合能够熟练运用的话,就有很大可能性解出这道题目。反之,如果做题者在某个知识点上有一定困难的话,很有可能他就无法解出这道题目。综上所述,做题者无法解出题目的关键在于,做题者并不知道自己在哪个知识点没有掌握,或者是做题者知道自己的困难在哪罩,但是不清楚具体是如何应用知识点。本章下面几节会着重论述程序设计题知识点的提取这一步骤并在提取的基础上论述如何根据提取到的知识点进行分解题目,最后本章将会给出各个分解方法的实例。而为了论述

44、方便起见题目描述的语义化和分解将在第四章中论基十洲络知识资源语义化的了试卷自动生成系统形究述。试题知识点的获取知识点的语义注释本课题组在这方面曾做过一些前期的研究,使用的方法是当时比较流行的语义注释的方法,并且采用作为语义注释的载体,图是语义注释的【:图语义注释的如图所示,标签以上的是题目的基本信息,下面则是题目所包含的知识点和方法的信息。语义注释是一种赋予题目以知识点的很有效的方法,但是知识点本身的来源贝是另一个重要问题。知识点的来源也分为两个问题,一是必须有一个知识点的总体集合,二是如何获得当前题目知识点的集合,当前题目知识点的集合必然是知识点总集的一个子集。课题组前期使用进行语义注释时,

45、直接采用基十网络知识资源语义化的了试卷自动生成系统研究()作为知识点总集,而当前题目的子集则采用的是手工输入的方法。只是一个标准,其中涵盖了大量知识点,但是这些知识点的并不都适合程序设计题,而其组织形式也并不适合初学者学习。因此本课题组构建了适合于程序设计题的知识词典与方法库作为知识点的总集,这两部分是本课题组另外个子项目,在第二章中有所介绍。而如何采集当前题目的知识点则是本章所要论述的问题之一。由于本系统有知识词典和方法库的支持,因此,本系统在上面格式的基础上以及本课题所在理论研究项目,添加了知识点与知识词典的联系以及方法与方法库的联系。也就是使用者可以通过标注的知识点,很方便的找到这个知识

46、点的定义以及相关的举例。更重要的是本系统可以根据知识点来分解题目,以达到更好的指引做题者练习的目的。下面将介绍三种知识点的来源。而本文所论述的原型系统将分几个层次综合应用这三种方法,有关他们在分解中的应用方法将在节中详细论述。通过代码来获取知识点一般的程序设计题都会有解题程序,因此所有解题所需要的程序设计基础知识都能通过分析代码来得出。比如在程序代码中定义了数组,那么本题必然用到了数组这一知识点。由于这罩分析用的程序大多是出题者给出的标准解答代码,因此这里不考虑解题代码存在的不规范性,比如定义了数组而不去使用。表即是一道题目代码分析采集知识点的样例。表题目名称:问题简述:输入两数,输出他们相加

47、的结果。源代码:的代码知识点【】【】(),;()桀十叫络知识资源语义化的【了试卷自动生成系统形究;】);)所川知识点一览:知识点序号(【】知识点名称使频度函数的定义整数的定义标准输入循环标准输出整数相加函数返同表便是这题的程序代码知识点分析,由于语言级的知识点完全可以通过代码关键字来标注,因此采用自动的代码分析器(类似编译器)就可以比较完整的列出所有程序设计基础知识点,然后通过知识点的排列组合分析,可以分析出一些比较高级的知识点。这罩的分析就需要通过知识库给出知识点之间的联系,通过联系来得出高级知识点。这种获取知识点的方法已经比较成熟,对于程序设计基础级的知识点能够有很高的自动化水平,准确率也极高。这里的大部分工作都是由知识词典来分析和完成,而题库系统所要做的是把解题程序的代码输入知识词典,并得到相应知识点,然后加入语义化的题目。通过测试数据来获取知识点虽然代码能够得出所有程序设计基础的知识点

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论