用c语言编写程序相似性检测,程序代码相似性检测在论文抄袭判定中的应用

⽤c语⾔编写程序相似性检测,程序代码相似性检测在论⽂抄袭
全球地震带分布图
判定中的应⽤
摘要:现⾏的论⽂检测系统,只针对⽂字部分进⾏判定,⽆法判断论⽂中所包含的代码的独创性。理⼯科学⽣的毕业论⽂,通常包含的⼤量代码。因现⾏系统对代码默视为原创,⽽最终影响了对论⽂整体抄袭⽐例的判定,使准确性⼤打折扣。⽂章尝试探讨在现⾏的检测系统中,添加⼀个针对代码检测判定的模块,提⾼对理⼯科学⽣毕业论⽂抄袭判定的准确性。
关键词:论⽂;抄袭;检测;代码;判定
中公教育黑龙江分校
中图分类号:TP311⽂献标识码:A⽂章编号:1007-9599 (2010) 09-0000-02
Code Similarity Detection in the Determination of Plagiarism
Wang Minghao
very much
(Putian College,Putian351100,China)
Abstract:The present paper detection system,only the text part for the judge,can not determine the thes
is contained in the original code.Thesis of science and engineering students,usually contains a large number of the code.Silent due to the current system code as the original,and ultimately affect the whole paper copy of the proportion for the judge,so that accuracy of the greatly reduced.This article attempts to explore the existing detection system,add a test for the determination of the module code,improve science and engineering students to determine the accuracy of the thesis plagiarism.
Keywords:Paper;Plagiarism;Detection;Code;Determine
根据09年年底,汤森路透集团发布的报告《全球科研报告:中国》(Global Research Report:China)中称,近年来,中国的科研论⽂数量呈爆炸性发展,仅次美国,⾼居世界第⼆[1]。⽽与之形成鲜明相⽐的是,中国论⽂的被引⽤率低,质量不⾼和原创性内容不多。这⼀⽭盾产⽣的主要原因在于⾼校论⽂互相抄袭的现象。随着⽹络技术的⽇益普及,这股学术不端之风更深深的影响了在校学⽣。学术浮夸和论⽂抄袭现象⼤量的出现在应届学⽣的毕业论⽂之中。现有的学术不端检测系统主要是针对⽂字的检测,对纯理论的论⽂的抄袭判定⽐较准确。但是与⽂科学⽣不同,理⼯科学⽣的毕业论⽂中常会引⽤⼀定数量的代码,这些代码的独创性不被判断。致使部分理⼯科毕业⽣在毕业论⽂中⼤量引⽤代码,以减少⽂字部分引⽤率的百分⽐。为了解决这个问题,亟需在现有的学⽣不端检测系统中建⽴针对理⼯科学⽣的程序代码相似性检测模块。
⼀、研究背景
程序代码相似性的检测最早是源于对重复代码的检测和对代码的优化。对于程序代码相似度的度量研究,国外起步的⽐较早,相关的研究也⽐较多。早在⼆⼗世纪七⼗年代,国外就有学者开始研究检测代码相似性的理论,和基于理论构建的检测系统。⽬前常⽤的代码检测技术有两类:⼀是最早于1976,由Purdue⼤学的K.J.Ottenstein提出的基于属性计数法(Attribute Counting)[2];⼆是1996年,由Verco KL 和Wise MJ提出的基于结构度量法(Structure Metrics)[3]。
⼆、代码检测在毕业论⽂中的应⽤
(⼀)相似代码的判定
代码抄袭定义为:⼀个程序在经过了若⼲常规性的修改得到的程序[4]。修改的⽅法主要归为⼗类,见表1。学⽣在毕业论⽂中的代码的抄袭主要体现在前8种。
基于这些常规的修改⽅式,以C语⾔代码的判定为例,常⽤的检测思路之⼀是,将代码视为⼀系列Token(标记)的集合,由词法分析程序将源代码转换为Token流。记录两份代码为x和y,两者经过分解的Token流集合分别为X和Y,抄袭的判定条件满⾜表2。
(⼆)系统的构建
戈尔巴乔夫近况1.设计思路。
对于学⽣毕业论⽂中代码抄袭的具体判定包括以下三个⽅⾯:识别,检测和确认。
(1)识别阶段:根据代码中的关键词进⾏⽐对,确定代码使⽤的何种程序语⾔。
(2)检测阶段:根据识别的结果,选定特定程序语⾔的代码数据库,进⾏检测,判定代码的相似度。
(3)确认阶段:根据检测阶段对相似度的判定,输出结果。
与现有的纯代码复制相似性检测,以及纯⽂字相似检测系统不同,针对理⼯科学⽣毕业论⽂的代码检测的系统必须实现以下功能:
(1)代码和⽂字的分离。将代码从论⽂中分离,对不同的代码段落编号,各段单独存储。将分离代码后的论⽂的⽂字部分,形成单个⽂本,统⼀存储。
德育陶冶法(2)针对⽂字和代码建⽴不同的检测数据库。
(3)根据不同的代码类型,必须建⽴有特征识别功能,能针对不同语⾔分别检测的分析系统和相关数据库。
2.系统构架。
根据系统的需求,系统主要功能模块在论⽂中代码分离基础上,包括两⼤部分:针对代码检测的模块和针对⽂字检测的模块。具体见图1
分离模块主要实现代码和⽂字的分离,根据代码和⽂字的不同特征,将其分离为代码部分和⽂字部分,并将分离后的⽂字和代码进⾏存储。后台数据库包括存储数据库和代码特征数据库两个部分。其中存储数据库⽤来存储预处理之后的⽂字和代码;代码特征数据库⽤于存储不同程序语⾔的特征,以C语⾔为例,代码特征数据库中需要存储的内容包括有代表性的操作符和关键字。代码特征数据库的主要作⽤包括两个⽅⾯。第⼀,⽤于判定⼀段字母构成的⽂字是否为程序代码,以及该程序段由何种语⾔写成。第⼆,在代码检测时,⽤于划分代码的结构构成。代码数据库存储⽤于⽐对相似性的⼤量原始代码信息。针对中⽂论⽂的检测,分离模块以段落为单位,判定三种情况:纯中⽂,纯字母和中⽂字母夹杂。纯中⽂可以直接判定为论⽂的⽂字部分。纯字母的可以⽐照代码特征数据库,判定是否为代码。如果是代码,以代码的形式单独存储,否则,以⽂字的形式统⼀存储。中⽂字母夹杂的段落,可在去除了中⽂后,按照纯字母的情况进⾏处理。
代码检测模块包括代码预处理、代码相似度检测和代码相似度判定三个功能。预处理⽤于去除代码中的冗余信息。根据表1中的定义,针对其中的2,3,9项,预处理模块消除了源代码中的注释,空格,换⾏和对程序输出效果⽆效的代码。同时,预处理模块还消除了常见代码段,如预处理命令和标准输⼊输出语句等。预处理之后的代码作为输⼊,由相应的算法进⾏检测,并得出相似度评判结果。
⽂字检测模块将分离的⽂字由相应算法进⾏检测,得出相似度判定结果。
输出模块根据代码检测判定和⽂字检测判定,输出最终检测结果:标记所引⽤或抄袭的部分的出处,以及所站论⽂总字数的百分⽐,最后给出综合的判定。
三、总结和展望
对代码独创性的判定是⼀项细化⽽复杂的任务。要真正形成完善的系统,还要⼤量⼯作要做,如对于代码判定的⼀系列数据库的建⽴,和更完善的判定算法的选择和实现,并在实际投⼊使⽤后进⼀步完善。
参考⽂献:
[1]Jonatha Adam,Christopher King,Nan Ma.Global Research Report ChinaCResearch and Collaboration in the New Geographic Science[R].Thomson Reuter,2009
[2]K.J.Ottenstein.An Algorithmic Approach to the Detection and Prevention of Plagiarism[J].CSD-TR200,1976,103,2:32-39
[3]Verco KL,Wise MJ.Software for Detecting Suspected Plagiarism Comparing Structure and Attribute-counting
sda
Systems[J].Proceedings of the 1st Australian Conference on Computer Science Education,Sydney,1996,102,2:3-5
[4]Edward L Jones.Metrics Based Plagiarism Monitoring.The Consortium for Computing in Small
Colleges.Vermont.2001:253,261
[5]史彦军,腾弘飞,⾦博.抄袭龙纹识别研究与进展[J].⼤连理⼯⼤学学报,2005,45,1:50-57
[6]张鹏.C程序相似代码识别⽅法的研究与实现[D].⼤连:⼤连理⼯⼤学,2008
[7]付兵.基于信息隐藏技术的电⼦作业防抄袭研究[J].微计算机信息2009,25,6-3:63-64,70

本文发布于:2024-09-22 15:38:27,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/129586.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:代码   检测   判定
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议