← 最新论文
💻 computer science

Can Code Evaluation Metrics Detect Code Plagiarism?

本文通过实证研究证明,代码评估指标(尤其是 CrystalBLEU)能够有效检测不同修改程度下的源代码抄袭,且在应用预处理后,其表现往往优于或可媲美 Dolos 和 JPlag 等专用抄袭检测工具。

原作者: Fahad Ebrahim (The University of Warwick), Mike Joy (The University of Warwick)

发布于 2026-04-29
📖 1 分钟阅读☕ 轻松阅读

原作者: Fahad Ebrahim (The University of Warwick), Mike Joy (The University of Warwick)

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象你是一位老师,正在批改数百份编程作业。你怀疑有些学生抄袭了彼此的作品,但他们试图通过更改字体、重命名变量或调整代码顺序来掩盖这一行为。这就是源代码抄袭问题。

多年来,老师们一直使用特殊的“侦探工具”(如JPlagDolos)来揪出这些作弊者。这些工具就像专为查找抄袭代码而设计的专业法医扫描仪。

但最近,一种新型工具在科技界变得流行起来:代码评估指标(CEMs)。你可以把它们想象成“质量检查器”,它们最初是为不同的任务而构建的:将计算机生成的代码与完美的参考代码进行比较,以评估计算机完成作业的质量。它们并非为了抓作弊者而建,而是为了评估人工智能。

这篇论文提出了一个简单的问题:这些“质量检查器”(CEMs)能否也充当“抄袭侦探”?

以下是作者如何通过简单的类比来测试这一假设的故事。

实验:“复制 - 粘贴”的等级

研究人员不仅观察明显的抄袭行为。他们针对六种不同等级的“隐藏”盗窃行为测试了这些工具,难度从简单到几乎不可能:

  • 等级 1(表面修饰): 就像更改字体颜色或添加额外空格。(容易识别)。
  • 等级 2-3(重命名游戏): 将"myVariable"改为"x",或交换语句顺序。(中等难度)。
  • 等级 4-5(结构重组): 将一个循环转换为另一种类型的循环,或将一个大函数拆分为三个小函数。(困难)。
  • 等级 6(逻辑重写): 重写整个逻辑,使其看起来完全不同,但执行完全相同的功能。(非常困难)。

他们使用两组真实的学生代码,测试了五种不同的“质量检查器”(CEMs)与两种“法医扫描仪”(JPlag 和 Dolos)。

工具:它们如何“思考”

要理解结果,了解这些工具如何“看待”代码会有所帮助:

  • 词法工具(如 CrystalBLEU): 这些工具查看单词(标记)。想象阅读一本书并计算有多少单词匹配。CrystalBLEU很聪明;它会忽略像"import java"或"public class"这样的通用短语(即“样板代码”),以免被所有人使用相同模板的情况所迷惑。
  • 结构工具(如 TSED): 这些工具查看代码的形状,就像比较两栋建筑的骨架。
  • 语义工具(如 CodeBERTScore): 这些工具试图理解代码的含义,就像人类读者一样。

发现:谁赢得了比赛?

1. “原始”测试(无预处理)
当工具直接查看学生提交的代码(包含注释、额外空格和模板)时:

  • Dolos(专职侦探)是总体获胜者。它在识别作弊者方面最为一致。
  • 然而,CrystalBLEU(质量检查器)以微弱劣势紧随其后,击败了老牌侦探JPlag
  • “联手”策略: 作者尝试将前三名质量检查器组合成一个名为FusionTop3的超级工具。这个组合的表现几乎与最佳侦探 Dolos 相当。

2. “预处理”测试(先清理代码)
在测试之前,研究人员“清理”了代码:去除了注释、额外空格和标准模板行。这就像在寻找指纹之前先清除犯罪现场的灰尘。

  • 转变: 清理之后,质量检查器的表现大幅提升。CrystalBLEUFusionTop3组合在总体排名中实际上超越了 Dolos。
  • 原因? 清理过程消除了让质量检查器感到困惑的“噪音”,使它们能够专注于实际的代码结构。

3. 难度曲线("L4"墙)
这是最关键的发现。

  • 等级 1、2 和 3: 所有工具(无论是专职侦探还是质量检查器)都表现出色。它们几乎揪出了所有作弊者。
  • 等级 4 及以上: 所有人的表现都急剧下降。
  • 类比: 想象一个学生抄袭了一份食谱,但改变了食材、烹饪方法和步骤顺序,然而这道菜的味道却完全一样。即使是最好的工具也难以断言:“这是同一份食谱!”
  • 例外: 即使在最难的等级(等级 6),CrystalBLEU仍然表现出惊人的强劲,而其他工具则更加吃力。

局限性:它们的失败之处

  • CodeBERTScore(“含义”阅读器): 这个工具彻底失败了。它对所有内容都给出了高相似度分数,甚至包括未被抄袭的代码。这就像一名保安,因为所有人都长得像人类,就认为大楼里的每个人都是小偷。
  • TSED(“骨架”阅读器): 当学生更改语法(单词)但保留逻辑时,它显得力不从心。它无法应对“重命名游戏”。
  • "L4"墙: 没有任何工具,无论是专职侦探还是质量检查器,都能在不过高误报率的情况下可靠地检测出最复杂的抄袭形式(等级 4、5 和 6)。

结论:这意味着什么?

论文得出结论,代码评估指标确实可以检测抄袭,在某些情况下(特别是在清理代码后),它们的表现与专为该任务构建的专业工具一样好,甚至更好。

然而,它们并非灵丹妙药。

  • 最佳用途: 它们非常适合筛查。它们可以快速对提交内容进行排序,向老师展示:“嘿,先看看这 10 对;它们看起来很可疑。”
  • 不适用于最终裁决: 由于它们难以应对复杂的逻辑变更(等级 4 及以上),最终决定权应始终由人类老师掌握。

核心启示: 你不需要抛弃你专用的抄袭检测器。相反,你可以将这些新的“质量检查器”作为一种强大的互补工具来使用——尤其是如果你先清理代码——以帮助揪出那些试图掩盖行踪的作弊者。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →