基于CNN的代码相似度检测研究与代码查重系统

来源 :北京邮电大学 | 被引量 : 11次 | 上传用户:luobo330
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
互联网的快速发展促进了信息共享途径的不断增多,也为代码抄袭问题提供了良好的便利;在高校教学领域,代码抄袭现象屡禁不止甚至愈演愈烈。这严重影响教学工作秩序与教学质量。本文的工作主要研究大学程序语言教学中编程作业的代码查重解决方案。一方面基于传统的代码文本相似度检测方法,提出一种检测效果更好的无监督相似度检测方案;另一方面基于卷积神经网络(CNN)提出一种端到端的有监督相似度检测模型,能够实现代码内容与抄袭手段的自动学习。在两种方案的基础上,构建一个适用于教学任务的代码查重系统。本文首先研究基于winnowing算法的传统代码文本相似度检测方法的优化方案。考虑到winnowing算法对代码文本预处理的依赖性,根据已有200G学生作业代码统计出八种代码抄袭手段,设计可与抄袭手段对抗的预处理规则。首次将simhash算法引入代码文本相似度检测领域,综合simhash算法与winnowing算法的特点设计一种基于simhash,winnowing,以及代码属性度量的加权模型,称为sim-win三权法,在作业代码数据集上的准确率远高于传统代码文本相似度检测方法。进一步地,本文考虑将无监督的相似度计算拓展到有监督的相似度学习模型,考虑CNN在图像和文本特征抽取上的优势表现,基于CNN构建一个适用于代码文本相似度检测的端到端模型,称为CPOC(Code Plagiarism On CNN),模型的输入为代码原文本,通过网络模型学习代码文本特征,基于大量训练样本学习新的抄袭手段,实现自适应的代码文本相似度检测模型。实验证明,CPOC方法的表现大大优于传统代码文本相似度检测方法,也大大优于其他基于神经网络模型(如LSTM)的相似度检测算法。接着,本文完整地设计了一个代码查重系统。包括系统架构的设计、数据库结构的设计与实现、数据的交互、前后端开发。通过建立一个服务于程序语言教师的代码查重系统,一方面将上述的研究算法投入功能性应用,另一方面方便了教师对学生作业代码的管理与评估。代码查重系统现已在校内网进行部署并投入使用。
其他文献
目的探讨经腹部微创切除子宫肌瘤的可行性和有效性。方法回顾性分析安徽医科大学第二附属医院2011年6月~2013年6月我院开展的倒L切割法经腹微创切除子宫肌瘤46例的临床资料。
随着高校扩招等因素的出现,大学生就业中的困难也逐渐突显出来,如何拓宽毕业生的就业门路成为高校面临的重要问题,医学院校也不例外。医学类本科生失业率较高,存在着毕业生专
“虾好不要贪,早卖早安心。”——目前,业界一直在讨论对虾养殖的病害问题,在销售上普遍认为有虾卖就有钱赚。不过,有网友却觉得:“养殖户要会养虾,更要会卖虾,才会赚大钱。”该网友
改革开放以来我国经济发展水平不断提高,总量非常可观。但近几年我国国民经济发展速度逐步放缓,经济增长速度在7%左右,特别是供给侧结构改革期间经济发展压力陡增,形势不容乐观。在这样的背景下,需要改变过去那种过度依赖投资和出口拉动经济的发展方式,转而把重点放在消费上面,提高居民消费的质量,全面推动消费结构升级。从全国经济发展来看,居民生活质量得到了极大改善,社会公众的需求偏好也在改变,带来居民消费理念的
文章介绍了2019年4月13日至14日在北京外国语大学举办的“第二届(功能)语言学融合与发展高端论坛”。6位主旨报告专家围绕“语言研究与人文、社会和自然科学”“语言学学科内
当今社会处于新、旧转型期,政治体制、经济文化都发生了相应变化,人们的思想也应该发生相应的变化。文章立足于当今社会的时代特征、潮流趋势和时代主题的转换,分析影响传统
儿童是一个具有特殊生理特点的群体,其用药有别于成人,药物有治病和致病的双重作用,故用药时应充分考虑药物的治疗指数以及儿童成人生理机构上的差异,本文就儿童不合理用药作
提出了一种利用微信控制智能家居的物联网系统,传感层采用了Zigbee技术、传输层使用WIFI技术、Internet和移动通信技术,应用层利用云平台和微信。实现了家居环境温度、湿度、
对目前的智能家庭监控系统进行了研究,提出了一种基于微信公众平台的智能家庭监控系统。整个监控系统的底端是数据采集端,采用带有Linux操作系统的Tiny6410开发板,核心控制器
目的:探讨新生儿病房的护理风险管理。方法针对新生儿病房存在的护理风险因素进行评估并采取相应的防范对策进行管理。结果该院自实施护理风险管理以来,未发生1例护理缺陷事