MRITIS—一种远程智能试题录入系统

2013-07-11 09:36苏志同巩玲玲
计算机工程与应用 2013年5期
关键词:服务器端博客机器

苏志同,巩玲玲

北方工业大学 信息工程学院,北京 100041

MRITIS—一种远程智能试题录入系统

苏志同,巩玲玲

北方工业大学 信息工程学院,北京 100041

1 引言

试题组卷依赖于试题录入,而许多研究关注于试题组卷技术[1-2],很少涉及试题录入。目前试题的录入均需要人工方式,通常是提供专门的Web交互页面,在网页中设置不同的文本框,每个文本框约定好录入的内容。如有些文本框用于录入试题的题目,有些用于录入试题的答案或试题的解析等。这种录入方式往往比较繁琐,每次只能录入一道题,且需等前一道题上传成功后才能上传下一道题,不能实现批量录入,图片也需要每张都陆续上传,非常耗时。以上这些都造成当前试题录入速度慢、效率低的主要原因。

Microsoft Word 2007内置了Blog发布功能,可以在Word中直接编辑博客并发布到指定站点,提供了基本的FTP支持,可以将图片上传至指定位置。新浪、搜狐和网易等国内的大型博客发布平台支持用Microsoft Word 2007直接编辑和发布博客,由于这种方式方便快捷,越来越受到博客用户的欢迎。

因此,若能够利用Microsoft Word 2007的这种博客发布功能,将试题事先录入之后,批量上传至服务器端,并能够按照编Word中的录入格式显示在网页中,则可以大大提高试题的录入速度。Microsoft Word 2007基于多种标准博客API来进行博客发布,其中MetaWeblog API是一种基于XML-RPC技术[3-5]的API,使用了RSS Web feed格式,以结构化数据形式查看博客文章。这种集成使开发人员能够使用熟悉的模型创建、提交、管理和查询结构化的博客文章。MetaWeblog API支持使用任何支持它的软件包发布、检索和编辑博客文章。

本系统提出了一种基于MetaWeblog技术的教育网站试题录入系统,使得试题录入人员可以在Word中实现大批量的试题创建、提交、管理,大大简化了试题录入的复杂性,特别是对于图片的处理,不再需要试题录入人员的选择与上传等,只需在Word中插入或者粘贴图片即可完成。同时本系统利用正则表达式和机器学习技术对录入的试题进行分解,可将多道试题按题存储,并将每道题目的题型、题干、难度、答案、解析等分别存储,方便了试题录入人员对试题细节的修改,避免为改一道题需修改整个试卷的情况发生。

2 MetaWeblog数据包格式

2.1 MetaWeblog交互方式

MetaWeblog是基于XML-RPC(XML Remote Procedure Call)方式进行数据传送的,XML-RPC是一套允许运行在不同的操作系统、不同的环境的程序实现基于Internet过程调用的规范和一系列的实现。这种过程调用使用http作为传输协议,XML形式作为传送信息的编码格式。

Microsoft Word 2007利用MetaWeblog API函数上传至服务器端,在服务器端,服务程序也会利用MetaWeblog API函数对数据进行分析。Word与MetaWeblog服务器的交互过程以及所利用的API函数如图1所示。

图1 Microsoft Word 2007与MetaWeblog服务器交互图

2.2 格式分析

本文利用Wireshark抓包工具,对Word与网易MetaWeblog服务器之间相互传送的数据包进行了截取,部分格式样例如图2所示。

图2 MetaWeblog数据传输格式抓包截图

从图2可以看出,应用层数据部分实际上是一个XML文件。数据包主要由API函数名和此函数所需要的函数组成。包含本次数据发送所需要调用的MetaWeblog API函数名,所携带的参数名以及相应的取值,图2(b)中可以看出,服务器一般会返回提交成功后,图片所对应的图片发布地址(URL地址)。因此只需要在服务器端,首先读取API函数名,了解本次传输的作用,然后根据API函数的标准说明,依次从XML文件中分解出对应的参数,就可以调用API函数进行相关操作。

3 系统设计

3.1 系统结构

整个系统主要分成三个部分,客户端、MetaWebLog服务器以及数据库服务器,如图3所示。

图3 系统结构图

制定基本的录入规则,用户可以利用Word 2007编辑试题,然后基于XML-RPC通信方式,与MetaWebLog进行交互。

MetaWebLog监听程序负责实时接收所发送过来的XML消息,而后交由XML解析模块进行处理。请求处理模块根据解析后的结果调用响应的MetaWebLog API程序,进行相应处理。服务器端对图片的处理比较复杂,基于MetaWebLog技术在利用XML-RPC格式传送图片时,使用的是图片的二进制流,服务器端的图片转换模块利用blogger.newMediaObject方法,可以将二进制流读取成图片存储。数据存储模块负责数据库方面的操作,便于保存各种需要的试题信息。

服务器最重要的一个模块是试题分割模块,由于Word 2007通过XML-RPC发送到服务器端的试题的内容部分是按照HTML格式编码的,为了能够按照网站的格式在页面上显示试题,还需要对这些原始的HTML文本进行处理。主要是提取试题的题型、题干、难度、答案、提示信息、解析等,并且可以分别将抽取出来的内容保存到数据库中。本文设计的系统,包含了两种试题分割方式,正则表达式法和基于机器学习的分割法。若所发送的HTML文本比较规整,且每份试题所要抽取的相同内容项,其上下文的HTML标记基本一致,则正则表达式法效果就比较明显。然而通常HTML文本并不规范,很难书写出匹配所有可能的上下文正则表达式。而基于机器学习的方法,以其特有的优势能够获取更好的扩展能力。

3.2 基于正则表达式的试题分割法

一般来说,同一科目的试题,其上下文信息会比较类似,本文设计的系统针对每种科目的试题,分别书写不同的正则表达式,以提取题型、题干等内容。如图4所示为抽取Word发往服务器的内容HTML源码,要提取原始的输入信息中的“正确答案”以及其对应的文本格式,则可以通过规则“(<p(.*?)(s)*(.*?))?(正确答案:|正确答案:)[sS] *?(提示:|提示:|提示一:|提示一:)”来实现,内容提取后将存入数据库。

图4 正则表达式发分割试题实例

3.3 基于机器学习的试题分割法

采用基于正则表达式的试题分割法虽能满足将试题各个部分内容提取出的要求,但这种分割模式要求人工录入时有严格的录入规则.而实际人工录入过程中,很难定义统一的录入标准,人与人之间的录入习惯差异很大,若采用正则表达式方法,必须对每一种录入习惯建立一套规则,这显然降低了灵活性,增加了录入成本,通用性差。

为此本文提出了采用基于机器学习的分割方法。机器学习分割方法在分割试题的训练中能够学习试题录入规则,具有极强的自适应性和通用性。

判断复杂的试题录入规则,实际上属于基于实例的学习范畴,因此基于机器学习的方法是比较有效的,目前尚未其他合理的方法可以代替。

3.3.1 分割流程与特征定义

本文基于机器学习的分割方法,其流程为:(1)首先利用简单的正则表达式,把HTML编码的试题的各个部分粗略地大致分开;(2)然后利用训练好的判别式来识别各部分所属类别。

若采用机器学习方法来分割试题,则需要对所识别的对象赋予一定的特征。本文的思想是,选取一部分HTML标记,其集合记为H,并按照某种顺序进行排列,其在排列中的序号作为其编码。对粗略分开的各部分内容,按照阅读顺序检查每一个HTML标记h,若在选取的标记集合H中,则将h的编码依次记录下来。最终选取前m个HTML标记的编码来作为这个部分的特征。

如图4所示,若H={<p>,<span,font>},m=8,则原始HTML编码内容部分的特征为x=<12,3,3,1,2,3,3>。本文针对每种科目的试题进行训练和学习,其分类决策均采用最小化错误分类的方法。数据集合记为:

3.3.2 基于生成模型的方法

基于生成模型的方法,本文采用的是贝叶斯推断[6],利用MAP(Maximum A Posterior)来进行参数估计。

MAP即等价于最大化对数似然:

对于先验概率 p(Ck),本文通过挑出一些典型试题并人工分割来近似估计。若记人工挑出的试题数量为N,每种抽取类别在试题中的实例数量为Mik,则有:

3.3.3 基于判别模型的方法

基于判别模型的方法,本文采用逻辑斯蒂回归[7],利用梯度下降法进行参数学习,即

若记学习速度为η,第t个样本的实际输出为rtj,则梯度更新方程为:

3.3.4 基于判别函数的方法

基于判别模型的方法,本文采用支持向量机(Support Vector Machine,SVM)方法[8]。其主要思想是使用Karush-Kuhn-Tucker条件,解决如下公式的对偶问题,从而得到最佳分离的超平面:

为了得到更好的识别效果,本文采用基于核函数的SVM方法,核函数采用径向基函数:

4 实验与分析

4.1 数据集

本文设计的系统应用于实际教育网站的试题录入中,并对1 500份5种科目试题的录入进行了初步的分析与测试。测试工作分成了5个小组,平均每个小组2个人,随机抽取300份试题。分别用传统人工录入和使用本系统录入的方式。试题基本信息如表1所示。

表1 待录入试题基本信息

4.2 效率比较

本实验部分主要比较传统的录入方式与通过本系统录入方式的试题录入效率,如图5和图6所示。其中所使用的时间是按照每天工作最多8 h,除去非工作日的实际天数计算的,并且保证录入人员的试题录入速度的水平相当。

图5 每组录入天数比较

图6 每种题型录入天数比较

从图5可以看出无论是每组的录入情况还是每种类型试题的录入情况,基于本文的系统的录入时间几乎是传统方式的50左右。图6表明,图片较多的试题类型改善效果明显,题目类型数量最多的英语,效率提升最大,时间缩短了76%。这是由于传统方式中,题目类型越多,排队时间越长,上传速度不固定,所耗费的时间也就越多,本文的系统能够实现批量上传,避免了中间等待时间。

4.3 试题分割性能

本实验部分比较正则表达式分解方法,以及各种基于机器学习技术的分割方法的性能。对与机器学习方法,本文事先对每种类型的试题,平均人工标注了1 000份,作为训练样本。在利用本系统录入1 500份试题过程中,MetaWeblog服务器端基于各种方法分别对同一份提交的试卷进行分割,并保存到不同的数据库中,最后人工检验分割的正确性。对于基于贝叶斯方法的机器学习,通过对每种科目抽取了100份典型试题对其先验概率进行了估计,贝叶斯中假定采用高斯密度估计。各种方法的在测试集上的性能比较如表2所示。

表2 试题分割正确率比较 (%)

从实验效果来看,正则表达式的分割正确率最低,因为在人工录入过程中,无法使用严格的规则。而机器学习的方法正确率相对较高,其中贝叶斯正确率改进效果最差,这是由于在较少的样本情况下,很难估计出比较合理的密度函数。逻辑斯蒂直接对后验概率进行估计,效果略比贝叶斯明显。而SVM在小样本的学习中具有较好的优势,分割正确率最高。

5 结束语

本文针对教育网站传统试题录入方式的不足,引入了MetaWeblog和机器学习技术。通过对Word 2007的博客传输数据格式进行分析,结合MetaWeblog API,设计了一种新颖的教育网站试题录入系统。用户可以利用Word 2007批量编辑和上传试题,避免了传统录入方式中不必要的等待时间。并且利用正则表达式和机器学习方法,对上传的HTML编码的试题内容进行分割,将抽取的有用信息保存到数据库中。实验表明,本文提出的系统具有较高的录入效率和分割正确率。本文的不足之处是科目种类还较少,训练样本也较少,只能在一定条件下表现出较好的性能,下一步的工作是通过大规模的实验来继续完善本文提出的系统。

[1]李铁军,张德强.智能化专家系统试题库的实现途径[J].辽宁工业大学学报:自然科学版,2011,(6):358-360.

[2]杨世达,金敏,梅磊.面向自动组卷问题的改进类电磁算法[J].计算机工程与应用,2011,47(35):51-53.

[3]肖君,张永忠,陈祝华.基于XML-RPC技术的分布式教育资源库系统[J].计算机工程,2005(20):217-219.

[4]刘纯波,李琦,承继成.基于XML-RPC的分布式地理信息系统计算模型研究[J].计算机工程与应用,2003,39(26):106-108.

[5]罗玲,白晓颖.基于XML的RPC技术分析[J].计算机科学,2004 (2):167-170.

[6]林士敏,王双成,陆玉昌.贝叶斯方法的学习机制与问题求解[J].清华大学学报,2000,40(9):61-64.

[7]王济川,郭志刚.Logistic回归模型方法与应用[M].北京:高等教育出版社,2001.

[8]CortesC,Vapnik V.Supportvectornetworks[J].Machine Learning,1995,20:1-25.

SU Zhitong,GONG Lingling

School of Information Engineering,North China University of Technology,Beijing 100041,China

To improve the remote test input work efficiency and simplify complex test input and image uploading procedure,a MWA(MetaWeblog API)based remote intelligent test input system is proposed.The blog publishing packet format of Microsoft Office Word 2007 is intercepted and analyzed using WireShark,and then the test input interaction modules are designed based on WMA.The server segments the test content and exacts the single topic.Each topic is stored in the database.The experimental results show that MRITIS is more efficient than the tradition method with lower error.MRITIS proposed in this paper is of great value in applications.

MetaWeblog API;machine learning;test input;regular expression

为提高远程试题录入的工作效率,简化复杂的录入和图片上传步骤,提出了一种基于MWA(MetaWeblog API)的远程智能试题录入系统(MWA based Remote Intelligent Test Input System,MIRITIS)。利用WireShark对Microsoft Office Word 2007博客发布功能的数据包格式进行截取和分析,并基于MWA设计了试题录入交互模块。服务器端采用正则表达式和机器学习技术对试题进行分割和提取,并存入到数据库中。实验结果表明,MIRITIS相对于传统方式提高了效率,且错误率较低,具有一定的实用价值。

MetaWeblog API;机器学习;试题录入;正则表达式

A

TP311

10.3778/j.issn.1002-8331.1203-0646

SU Zhitong,GONG Lingling.MRITIS—remote intelligent test input system.Computer Engineering and Applications, 2013,49(5):140-143.

国家自然科学基金(No.61105045,No.51075423)。

苏志同(1963—),男,教授,研究领域为管理信息系统与计算机网络、数字媒体技术;巩玲玲(1985—),女,硕士,研究方向为管理信息系统与计算机网络、数字媒体技术。E-mail:crystalgong2012@hotmail.com

2012-03-28

2012-07-13

1002-8331(2013)05-0140-04

◎图形图像处理◎

猜你喜欢
服务器端博客机器
机器狗
机器狗
Linux环境下基于Socket的数据传输软件设计
未来机器城
浅析异步通信层的架构在ASP.NET 程序中的应用
基于Qt的安全即时通讯软件服务器端设计
博客天下
网页防篡改中分布式文件同步复制系统
博客相册
博客相册