代码查重是基于啥样的算法,准确度高吗?
首先对于伸手党(比如我),你可以选择的主要的查重的软件有:基于Token的MOSS:Plagiarism DetectionJPLAG : JPlagSIM:The software and text similarity tester SIM其优势是以文本结构及词法分析为主,解析速度非常快,时间复杂度比较低。其劣势是能抵抗变量重命名、代码重排等混淆,但难应对冗余代码植入、控制及数据流混淆等稍复杂的混淆手段。需要说的是SIM对于很多变量名都经过了替换,修改了注释,而且也改了缩进的风格这种情况来说,判别率依然非常高。其他的方法可以直接(基于树、图)https://faculty.ist.psu.edu/wu/papers/spd-survey-16.pdf或者这里有基于Python的Winnowing的思路:基于K-gram的winnowing特征提取剽窃查重检测技术(概念篇) - 编程小栈 - 博客频道 - CSDN.NET【代码克隆检测】基于K-gram hash 分析特征提取技术(代码篇)我觉得上面说的很清楚了。。。所以也不长篇大论引用了。。。
■网友
【代码查重是基于啥样的算法,准确度高吗?】 目前最流行的还是斯坦福出的Moss系统吧。找了好久终于在闲鱼找到了,感觉对比结果还是很准的,不修改逻辑结构的地方基本都能判断为相似。
■网友
虽然不清楚原理,但我知道怎么使用, 在PHP项目中使用Standford Moss,如果弄清原理,我想可以发几篇像样的论文了
推荐阅读
- |奥迪开发基于C-V2X校车警示系统
- 怎样对别人的代码进行适当修改使他永远也找不到问题出在哪
- 趣头条|海外媒体称大众正在开发两款基于MEB平台的小型车 ID.1与ID.2
- 基于OGRE的NeoAxis3D引擎和网易的NeoX引擎有啥关系吗
- 异乡好居说程序员删除代码是未经证实的传言吗
- 上汽大众|大众ID.3将于明年国产,基于MEB平台打造/三种续航
- 这段代码中对 vector 的访问为啥不会越界
- C语言指数函数代码
- 学计算机就是当码农吗
- 实习程序员第一个月除了看别人的代码还能干啥
