导入
项目描述:抄袭检测器
简要了解“抄袭检查器”,并学习本项目中我们将实现的功能。
简介
剽窃是指将他人的作品冒充为自己的作品。随着互联网的出现,剽窃变得非常容易。剽窃检测应用程序能够查找某人作品或文档中相似内容的实例。该应用在学术领域被广泛使用,用于发现学生作业中的剽窃行为。
本章将讨论的场景和问题,聚焦于识别相似内容的功能,以及如何改进这一功能。
任务说明
假设你是一名被教育机构雇佣的开发者,负责改进他们现有的剽窃检测应用程序。该机构希望你增加一项功能:能够检测多名学生代码片段之间的剽窃情况。
我们将采用一种新策略:将代码片段转换为特定的字母标记(token)。这些标记可以相互比对,以判断哪些内容相同以及相同内容的比例。学生可能在复制的内容之间插入无意义的语句或注释,试图干扰检测系统。因此,我们的应用程序必须具备应对这类修改的鲁棒性。此外,我们还需要返回某个文档可能源自多少个原始来源,并突出显示两份文档中相似的部分。
功能需求
为了实现上述功能,我们需要引入以下特性:
-
特性 #1:将一名学生的代码与全班其他学生的代码样本进行比对,识别出可能的匹配数量。
-
特性 #2:比对两名学生的代码样本,识别出哪些部分被复制并经过修改以规避剽窃检测。
理解这些功能需求并设计相应的解决方案,将有助于我们实现所要求的剽窃检测功能。在接下来的课程中,我们将讨论这些特性的推荐实现方式。在开始之前,建议你先思考一下自己会如何实现这些功能。在思考过程中,你会意识到需要解决的一些底层问题。而这些问题的解决方案,同样适用于常见的编程面试题。