大数据环境下作业抄袭检测研究

2015-09-10 07:22冯凌凌刘海霞
考试周刊 2015年51期

冯凌凌 刘海霞

摘 要: 作业是检验教学效果的一种重要手段,但是不可避免存在作业抄袭的现象。随着网络的进一步发展,学生作业的抄袭从简单的同学间抄袭延伸到从网络抄袭,如何从几十亿网页中找到抄袭的源头成了亟待解决的问题。文章结合MapReduce及Nutch提出在大数据环境下作业抄袭检测的设计方案。

关键词: MapReduce Nutch 抄袭检测

1.背景

随着校园网和Internet的不断普及,师生的生活、学习、工作方式发生了巨大变化,学生作业的上传不再是单一传统的手工书写批改模式,开始采用网络上传方式,网络广泛使用极大地方便了师生的教与学,但是作业直接在网络上传让部分学生钻了空子,直接拷贝同学的作业或是直接从网上拷贝。这种连答案里面写的内容都不清楚的行为严重影响了教学效果,但是若靠老师的手工检测,工作量太大,则现实中难以实现。

前期已经有不少专家针对抄袭检测推出了不少系统及方案,但是前期的系统及方案主要解决在现有数据库中查找抄袭情况[1][2][3]。目前网络资源瞬息万变,有很多从网络抄袭的情况无法检测出来。针对现状,笔者结合MapReduce及Nutch提出了新的抄袭检测方案。

2.相关概念

Mapreduce[4]:MapReduce是一种编程模型,用于大规模数据集的并行运算。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。

Nutch:是一个网络搜索引擎,是在Java平台上开发的开源网络爬虫工具。该引擎主要分为两个部分:爬虫crawler和查询searcher。Crawler主要用于从网络上抓取网页并为这些网页建立索引。Searcher主要利用这些索引检索用户的查找关键词来产生查找结果。

N-Gram模型[5]:是大词汇连续语音识别中常用的一种语言模型,对中文而言,我们称之为汉语语言模型(CLM,Chinese Language Model)。该模型基于这样一种假设,第n个词的出现只与前面N-1个词相关,而与其他任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计N个词同时出现的次数得到。

3.作业抄袭的模块的分析与设计

根据题目的种类(主观题、客观题),我们采用两种不同的检测机制,教师可以根据需要针对主观题或是客观题进行抄袭检测。

客观题:本地检测,抄袭判断条件:错误题目的答案都一致。

主观题:网络检测,抄袭判断条件:满足Z.B.Andrei定义的文档相似性度量公式[6]。

3.1客观题部分抄袭检测

客观题包括单选题、多选题、判断题,对于此部分作业,若同学间错误的答案完全一致,我们就认为此同学间存在抄袭嫌疑。判断流程如下图所示:

图 客观题抄袭检测流程图

各部分操作步骤如下(下面各步骤序号与上图中的序号保持一致):

步骤1:输入学生作业的客观题部分。

学生作业上传可能包含主观题与客观题,在此部分只截取学生作业的客观题部分。

步骤2:对文档进行预处理。

目前系统要求学生客观题部分的标准输入是题号答案(如1A,代表第1题的答案是A),但是学生输入的时候可能会存在如下与标准不符的答案,对于这部分的输入,系统先进行预处理:

(1)学生直接输出的答案,没有题号,答案之间用空格相隔。

处理办法:从左到右扫描,在空格处补上题号。

(2)对于没有答案的题目直接省略,如直接输出1A3C,缺少题号2与第2题的答案

处理办法:在1A的答案后面补充2 (空格)。

(3)题号或答案前后有空格

处理办法:删除空格。

步骤3:与老师答案匹配。

按照整篇文本的粒度对文本进行分块,字符逐个匹配。

步骤4:答案有错的学生作业。

与老师的答案出现不一致,说明学生作业中的部分答案是错误的,以学生的作业作为一个输出单位,每个输出文档中包含学生所有的客观题部分的答案,包括正确的与错误的。

步骤5:是否存在完全一致的作业比较。

在这个步骤中采用两两匹配的算法:

for( i =1;i

for (j=i+1;j<=n;j++) {

if (学生i的答案==学生j的答案) {

把学生i,j的信息放到文件中

删除学生j的文档

n=n-1

}

else

j++;

}

i++;

}

3.2主观题部分的抄袭检测

目前因特网规模飞速膨胀,每天都会产生大量的新网页,且有大量网页失效,如何获取有效信息至关重要,Nutch让这个想法成了可能。在这轮检测中我们先利用Nutch crawler帮助获取有用的网络信息,然后利用Nutch Searcher通过关键字查询获取教师所需的文本放入对应的数据库中。整个主观题检测的运行流程有两个方案,具体如下描述:

3.2.1方案一:在主观题相似性检测方案一中,各部分操作步骤如下(下面各步骤序号与上图中的序号保持一致):

图 主观题相似性检测方案一

步骤1:Nutch crawler操作。

此处利用Nutch crawler从网络上搜索我们指定网站或全网的相关网页信息,并放入数据库A中。

步骤2:教师查询请求操作。

此处用到了Nutch Searcher功能,教师根据作业中将会涉及的关键字从数据库A中获取相关网页链接,并截取网页中的文本信息放入分布式数据库中,即查询结果数据库Part1,查询结果数据库Part2……查询结果数据库Part n,同时教师输入认定有抄袭嫌疑的阀值。

步骤3:学生作业上传。

把所有学生作业中主观题部分按学生作业1,2……n上传到各个分布式系统中,以便与网络上的信息进行相似度检测。

步骤4:相似度检测。

通用的文档复制(抄袭)检测系统如下图所示[7]

输入模块:输入待检测文档与数据库中存储已注册的文档。在本系统中待检测的文档就是学生上传的作业,数据库中存储的已注册文档即为从网络中获取的文档信息。

比较模块:基于N-Gram模型[8][9],结合Z.B.Andrei给出的文档相似性度量公式计算文档的相似度。

Z.B.Andrei定义的文档相似性的度量公式,如下所示:

公式中:A为待检测文档,B为数据库中已有文档;S(A,w)和S(B,w)分别表示文档A、B中大小为w的所有子序列的集合。

两个文档A,B的相似性是在0到1中的某个数字,两篇文档的相似性越高,说明这两篇文档雷同的成分越多。反之,则说明两篇文档的雷同成分越少。假设系统规定的阀值为。如果SimW(A,B)≥阀值,那么就认为查询文档A抄袭了已注册文档B的内容。

步骤5:合并。

输出有抄袭嫌疑多个作业清单,部分同学的作业可能与网络多个文档相似度都高于老师设定的阀值,取相似度最高的纪录,删除该同学的其他记录,以保证获取最有可能抄袭的网络信息。

3.2.2方案二:

图 主观题相似性检测方案二

步骤1:同方案一中的步骤1。

步骤2:同方案一中的步骤2。

步骤3:jobtracker在hadoop中监控分布式系统中每个节点运行情况,在本方案中是用来监控哪个作业与网络资源的相似度已经超过了老师设定的阀值,并通知其他分布式设备节点无需再对此作业进行相似度匹配。

步骤4:jobtracker有两个功能:(1)发现有作业与网络资源的相似度已经超过了老师设定的阀值,上报给jobtracker;(2)接收jobtracker的广播,即接收来自jobtracker关于哪份作业已经有抄袭嫌疑的通知,对此作业进行标记,该分布式节点后续不再进行相似度检测。

步骤5:学生作业主观部分上传:学生的作业按序错开上传到各个分布式设备中,如学生作业1,2……n上传到分布式设备1中,学生作业10,11……n,1,2……9上传到分布式设备2中,以此类推。用错开方式上传的目的是当该学生与网络中文档相似度检测时达到老师设定的阀值,jobtracker可以在该作业还没有被其他设备检测前及时通知到这些分布式设备,以便提高检测效率;

步骤6:同方案一中的步骤4。

步骤7:合并,简单把前面输出的各个抄袭嫌疑,清单归并,输出给教师。

3.2.3两种方案比较

表 主观题抄袭检测的方案比较

4.结语

抄袭检测研究虽然已经有多年历史,但是结合大数据的抄袭研究还是一个较新的研究领域。本文探讨了基于mapreduce与Nutch的抄袭检测方案,给出了相应的实现方案,采用了此方案可以让数据库中存储的已注册文档为网络中的最新文档,以适应网络资源的快速发展。同时本方案中采用的mapreduce思想可以使用户更方便,快捷地使用大规模数据集并行运算,以减轻服务器的负担。

参考文献:

[1]秦新国,丁国勇.作业抄袭检测系统的设计与实现[J].南京审计学院学报,2008-08-20.

[2]邓爱萍,徐国梁.基于串匹配方法的源代码复制检测技术研究[J].科学技术与工程,2006.12.

[3]付兵,谢本贵.网络环境与机房环境下电子作业反抄袭策略[J].实验室研究与探索,2013.4.

[4]Linda DiGeronimo,Filomena Ferrucci,Alfonso Murolo,Federica Sarro."A Parallel Genetic Algorithm Based on Hadoop MapReduce for the Automatic Ge neration of JUnit Test Suites.”IEEE,2011.

[5]百度百科.

[6]Z.B.Andrei.On the Resemblance and Containment of Documents Compression and Complexity of SEQUENCES 1997,Salerno Intaly,1997:21-29.

[7]卢小康 .中文文本复制检测技术研究[D].杭州杭州电子科技大学 ,2009.

[8]吴斐 .基于N-gram的程序代码抄袭检测方法研究[D].重庆 西南大学,2012.

[9]王小华 ,卢小康 .基于N-Gram的文本去重方法研究[J].杭州电子科技大学学报 ,2010.

教改基金项目(kyjg1416)。