您的位置:首页 > 参评方案展示 > 智慧校园

华南理工大学:基于LMS3.0的作业辅助评改模型的研究

  编辑点评:本文运用层次聚类方法构建了一个学生作业辅助评改模型,对使用相同抄袭源的学生进行归类作加权分析,为是否存在抄袭关系提供评判依据,经多次验证,具有较好的判定结果参考价值。

  1. 研究概况

  抄袭检测技术广泛应用于知识产权保护领域,知网的学术不端检测系统依托其庞大的文献数据库,对论文抄袭进行检测,武汉大学的ROST反剽窃系统提供待查论文与现存文献的相似度判断服务,国外的Plagiarisma等开源抄袭检测平台通过搜索引擎的支持来提供抄袭检测服务,华南理工大学特色专业教学平台(LMS2.0)的作业抄袭检查模块[1-4]可以在班级内部发现作业抄袭情况。

  Underwood[5]对在线学习(e-learning)环境的研究中发现,学生抄袭的来源主要集中在本地和全局两类,如果学生的作业或者论文的全部或者部分内容是从学习社区(大学、班级或学习小组)之外获取,那么这种抄袭被称之为全局抄袭,在全局抄袭中,抄袭来源相对比较广泛,包括互联网、学术专著、纸质出版物、P2P网络等。针对全局抄袭,目前有很多商业或非商业的系统可以提供检测服务,其中最著名的的系统之一是美国iPlagiarism公司开发的Turnitin系统,目前国际上主流的e-learning系统,如Blackboard、WebCT、ANGEL和Moodle等,都在直接使用Turnitin系统或者其提供的插件。

  现有抄袭检测系统大多是根据时间轴关系来判定抄袭关系[6],两篇相似度较高的论文间,抄袭者一定是发表日期靠后的论文。但学生提交作业的时间顺序与学生作业抄袭间没有必然关系,因此时间轴关系无法用于判断学生作业抄袭关系,LMS2.0的作业抄袭检测模块也只能判断可能存在抄袭关系的作业集合,无法判定在这个集合中,谁是抄袭者,谁是被抄袭者。Yannakoudakis[7]分析了论文型作业,发现学生平时的学习习惯与其对待作业的态度有一定的关系,平时学习认真的学生,对待作业也相对比较认真。我们在LMS3.0中记录学生各种学习行为数据,并在原有抄袭检测模块的基础上,设计了一个作业辅助评改模型,用于解决学生作业抄袭关系判定问题。

  2. 评改模型的设计

  基于LMS3.0的作业辅助评改模型如下图所示:

  图1 作业辅助评改模型架构图

  我们将抄袭检测的判定分为三个阶段,第一阶段是作业相似度判定,利用相似度检测算法从学生提交的作业中发现相似度阈值达到一定程度的作业以及其相似特征;第二阶段通过层次聚类法,将相似度阈值达到一定程度的作业按照抄袭源进行聚类,输出来自同一抄袭源的作业清单及其对应的学生名单;第三阶段是对LMS3.0采集到的学生的学习行为和学习结果数据根据其可靠性和重要性,赋予不同的权重,形成学习评价权重向量,使用层级分析法计算上一步输出的学生名单中的学生在每一个评价指标上的评价值,从而得出使用同一抄袭源的所有学生学习综合得分表,为抄袭者判定提供依据。

  2.1 作业相似度判定

  本文沿用LMS2.0的作业抄袭检测模块中的相似度算法。在LMS2.0的作业抄袭检测模块中,我们使用了不对称相似度来判断学生作业间的相似程度,给定两个文档a、b,文档a与文档b的相似程度可以用文档a、b的抽样指纹集合中相等的指纹数与文档a的总指纹数的比率来表示,这个比率又称文档a被b包含率,表示为:

  其中,A、B分别为文档a和b的抽样指纹集合。从上式可知,文档的相似度是非对称矩阵,即,。通过不对称相似度,可以很清楚的得知作业间的包含与被包含程度。

  在本文中,我们关注的是文档间相关关系的密切程度,因此,我们采用相关系数来表示作业间的相关性:

  相关系数和不对称相似度间的关系可以由下式推导出来:

  由上式可知的大小表示两个文档向量间的线性相关程度。越接近1,两文档向量线性关系越密切;反之表示两向量的线性相关越弱。我们用来表示文档向量的距离,值越小,表示两个文档的相似度越高。

  2.2层次聚类

  这一阶段的目的是将可能存在互相抄袭的作业进行聚类,以便后续在每一个聚类中判断谁是抄袭者。为了实现这个目的,我们采用凝聚式层次聚类方法按照上一阶段得出的作业间的距离自底向上分析目标文档,距离最小的文档最先被合并成一个类,依次类推,直至所有文档都被合并为一个类或者达到某个阈值,在本文中,我们最终将所有作业都合并成一个类。

  聚类前,首先将每个文档向量作为一个类,类间距离即文档向量的距离。在聚类过程中,如果有k个文档合并为一个类,则该类与其它类间的距离我们定义为:

  其中k和m分别为两个类中文档向量的个数,表示两个类的距离,该距离为两个类中所有文档间距离最小值。

  通过层次聚类方法,我们对一个《计算机技术发展概述》作业进行抄袭相关性分析,结果如下图所示:

  图2 作业相关性谱系分析图

  图中,纵坐标表示作业间的相关距离,横坐标每个数字代表学生所交作业的编号。根据层次聚类的定义,相关距离越小,两个文档间的相似程度越高。从图中可以看出,假设以0.1作为相似作业判定阈值,通过层次聚类,我们找到8个来自于同一抄袭源,且与抄袭源相似程度超过90%的作业抄袭群体。

  2.3 抄袭者判定

  在若干份相似作业中判断谁是抄袭者是一个相对主观的行为。在对LMS2.0中的具有抄袭关系的学生进行详细分析发现,学生的日常学习行为和学习效果与作业抄袭间存在一定的关联关系,具有良好学习习惯和学习效果的学生存在抄袭的可能性较低。根据这一现象,本文提出层次分析法,通过LMS3.0采集到的单元测验结果(X1)、课程访问频次(X2)、学习进度(X3)、课内交流参与度(X5)和考勤结果(X5)等5个学习评价指标建立层次结构模型如下图所示。

  图3 层次结构模型图

  设X={X1,X2,X3,X4,X5}为决策目标影响因素,预先设定其影响因子得到成对比较矩阵,并将其标准化后得到学习评价权重向量。{Y1,Y2,Y3…,Yn}是通过层次聚类得到的抄袭相关学生名单,计算各学生在X中每个指标上的成对比较矩阵并标准化后可以得到相应的评价矩阵:

  其中为第j个学生在第i项指标上的评价得分。将学习评价权重向量与评价矩阵进行如下运算得到学生的学习评价综合得分,其中,得分越低的学生抄袭别人作业的可能性越高。

  3.应用和结论

  本文提出的作业辅助评改模型已在华南理工大学特色专业教学平台抄袭检测模块的基础上实现,利用层次分析模型对教学平台采集的学生学习行为数据进行分析并得出评价结果,为教师判定抄袭者提供依据。模型上线后,我们抽查了教学平台上不同课程的15次作业,抽查结果表明,利用模型得出的判断结果正确率达到81%。在下一步的工作中,我们将在模型中加入学生作业质量辅助评价功能,为教师给学生作业评分提供依据。

  参考文献:

  [1]Zou D, Long W J, Ling Z. A Two-Phase Plagiarism Detection Method[C]// Internet Technology and Applications (iTAP), 2011 International Conference on. IEEE, 2011:1-4.

  [2]Zou D, Long W J, Ling Z. A cluster-based plagiarism detection method[C]//Notebook Papers of CLEF 2010 LABs and Workshops, 22-23 September. 2010.

  [3]邹杜, 陈育青, 张凌. 基于语义匹配的抄袭检测方法[J]. 华南理工大学学报:自然科学版, 2013, 41(7):131-136.

  [4]邹杜, 唐文军, 龙卫江, 等. 基于斜率密度聚类的相似文本标定[J]. 通信学报, 2013 (Z2): 30-162.

  [5]Jean Underword, Attila Szabo. Academic offences and e-learning:individual propensities in cheating[J]. British Journal of Educational Technology, 2003,34(4):467-477

  [6]Vanja Pupovac, Lidija Bilic-Zulle, Mladen Petrovecki. On academic plagiarism in Europe: An analytical approach based on four studies[J]. Digithum, 2008,10:13-19

  [7]Yannakoudakis H, Cummins R. Evaluating the performance of Automated Text Scoring systems[J]. Silver Sponsor, 2015: 213-223.

  作者单位:唐文军、张凌为华南理工大学计算机科学与工程学院;邹杜为华南理工大学信息网络工程研究中心

来源:CERNET第二十三届学术年会论文集作者:唐文军、邹杜、张凌
var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "//hm.baidu.com/hm.js?b841bd73360946ada23db9fa82c9c6ae"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();