我个人为我们课程DIY过一个知网查重的软件工具,是基于数据流分析的,效果还不错,反正修改变量名,提取函数这些小伎俩是完全无用的,甚至可以做到一定的跨语言查重(只把c#代码copy到java里,然后改一改跑起来是会被发现的)。说明程序代码也会进行对比查重算抄袭重复率。下面具体说说程序代码进行知网查重的方法,具体如下:
以c为例,具体流程大概是,先调用预处理器把注释干掉,把macro展开,因include <>而弄进来的那波标准库头文件特殊标记一下,然后建立CFG(control flow graph)进行知网查重。因为CFG关心的是变量的值会怎么传播,所以在中间插入一大堆无副作用的语句是不会有任何效果的,把变量换个名或挪个位置(比如加多一层block)也没啥卵用。
c++的话就会麻烦很多,毕竟在c++里就算a + b这么个简单语句,因为operator+可以重载,所以指不定执行完这个语句就可以把地球都炸了呢,而且这个重载在不同namespace里还可能不同,比如namespace A是用地球,
namespace B是对整个地球播一段爱的供养神马的……在c++里建立CFG会是个噩梦……程序代码进行知网查重的方法比较复杂吧!!
程序代码被知网查重很复杂
不过说起来我们的课程比较特殊,因为作业用的是类ACM的提交系统,所以对运行环境有比较严格的限制,这保证了程序代码知网查重查重的准确率。如果是完全开放性的程序代码知网查重(即对语言和第三方lib等等都不做限制的话)恐怕会很困难。
=== 举个例子 ===
以下是前几天刚刚检测到的抄袭代码片段……下面两段java代码被检测出有高度匹配(右图里getARGBData函数只是把二维数组给复制4份凑成一个三维数组而已,没干其他事)……
知网查重时程序代码一样被算重复
另外一点,为了减少漏网之鱼,知网查重时一般都会用低阈值初筛,再人工介入复核。此外建立回溯机制,比如如果某人现场考试的成绩和作业排名差异较大的话,会触发重查,专门为他调低阈值重查一遍+人工复核。不过正因为有人工复核,所以思路相同一般是不至于误判的,毕竟只要代码行数一多,思路再相同,代码风格上也会有很大差异。
在之前的知网系统里面没有这个库,以往知网系统把声明、目录、参考文献自动排除,不算作正文查重,并根据目录和参考文献,判断文章的分段及引用情况。致谢作为正文,参与检测。支持文字、公式、表格、图片格式的内容的检测。增加“源代码库”后,论文中代码也需要查重。可以说升级后的知网系统,查重范围更广了。
改变量名,for/while转换,if/switch转换以及加注释这些都没什么用,代码查重软件看的是逻辑相似度不是变量名,实际上代码查重软件看的是语法生成树,计算机相关专业到了大三学了编译原理就知道了,因为之前提到的那些在语法生成树的视角下都是一样的。
插入大量无意义代码来躲避查重没有任何意义,随便一个编译器都能实时检测到没有意义的代码或者变量,并提示你删掉,代码查重软件同样可以检测出来。
如果避免重复?
拿到一个demo后,如果原来逻辑在一个函数里,就把他抽离到几个函数去;如果原来逻辑在几个函数里,你就把他合并成一个函数。上面三种方法看似一样但在代码查重软件里是完全不一样的逻辑,活用多层嵌套函数可以搞定市面上大多的代码查重软件,如果用得好,还可以搞定大学计算机老师的人肉查重,这有什么意义想必你一定能知道。当然你要是有现成的代码但是连拆分和合并函数都整不明白,那就没办法了。
会查重的。
各个学校不一样,全文重复率在30%一下(而有的学校,本科是20%)。每章重复率应该没有要求,这个每个学校会出细则的,并且学校也出给出他们查重复率的地方--基本都是中国知网。具体打电话问老师,每界每个学校要求都不一样
相关查重系统名词的具体作用:查重率的具体概念就是抄袭率,引用率,要用专业软件来测试你的文章与别人论文的相似度,杜绝抄袭。基本就这意思。
一个是自写率就是自己写的;
一个是复写率就是抄袭的;
还有一个引用率就是那些被画上引用符号的,是合理的引用别人的资料。
扩展资料:
毕业论文查重包括:
1、论文的段落与格式
论文检测基本都是整篇文章上传,上传后,论文检测软件首先进行部分划分,上交的最终稿件格式对抄袭率有很大影响。
不同段落的划分可能造成几十个字的小段落检测不出来。因此,可以通过划分多的小段落来降低抄袭率。
2、数据库
论文检测,多半是针对已发表的毕业论文,期刊文章,还有会议论文进行匹配的,有的数据库也包含了网络的一些文章。
3、章节变换
很多同学改变了章节的顺序,或者从不同的文章中抽取不同的章节拼接而成的文章,对抄袭检测的结果影响几乎为零。
4、标注参考文献
论文中加了参考文献的引用符号,但是在抄袭检测软件中,都是统一看待。软件的阀值一般设定为1%,例如一篇文章有5000字,文章的1%就是50字,如果抄袭了多于50,即使加了参考文献,也会被判定为抄袭。
5、字数匹配
论文抄袭检测系统相对比较严格,只要多于20单位的字数匹配一致,就被认定为抄袭,但是前提是满足第4点,参考文献的标注。
参考资料来源:百度百科——论文检测服务