[发明专利]一种基于层级注意力神经网络的程序代码查重方法在审
| 申请号: | 202011250169.4 | 申请日: | 2020-11-10 |
| 公开(公告)号: | CN112230990A | 公开(公告)日: | 2021-01-15 |
| 发明(设计)人: | 刘瑞芳;张茜铭;易芃尧 | 申请(专利权)人: | 北京邮电大学 |
| 主分类号: | G06F8/75 | 分类号: | G06F8/75;G06F16/2455;G06Q50/20;G06N3/04 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 100876 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 层级 注意力 神经网络 程序代码 方法 | ||
本发明实施例公开了一种基于层级注意力神经网络的程序代码查重方法。该方法包括如下步骤:搭建代码查重系统步骤,程序代码预处理步骤,基于层级注意力网络的分类模型构建步骤,基于层级注意力网络的程序代码查重模型训练评估及预测步骤。利用本发明实施例,能够将自然语言处理的文本表征技术与程序代码查重任务相结合,提供一种抗干扰能力强、同时提取程序代码特征和程序结构特征、可处理长程序代码并且适用于多种高级语言的程序代码查重方法。
技术领域
本发明涉及非自然语言文本的数据分析及处理领域,着重描述了一种基于层级注意力神经网络的程序代码查重方法。
背景技术
随着互联网的发展,人们开始逐渐依赖于使用搜索引擎从网络上搜寻问题的答案和解决方案,一方面使得全世界的人们可以更容易分享和获取知识,另一方面也使得从互联网上获取信息用于抄袭变得轻而易举。在计算机编程领域,程序抄袭的现象十分广泛。当我们通过互联网搜索某一编程题目时,往往会出现许多来源不同的答案,然而在这些不同版本的代码中,许多源代码是雷同的,其核心部分几乎完全一致。
在高校程序语言教学领域,代码抄袭现象则更加严重,尤其是在程序语言设计课程中,这对于学生的编程能力发展非常不利。因此近年来许多国内外的学者发表了对程序代码抄袭方面的相关研究。然而现有的抄袭检测大部分集中在自然语言文本中,对于程序代码的查重方法目前主要集中于基于属性特征统计、基于树或图的方法。基于属性特征统计的方法依赖于关键词的选择与提取,通过计算不同类别令牌的相似度量以判断代码对是否互为抄袭对,这种方法虽然在部分代码查重数据集上取得了较好的效果,但其鲁棒性较低,没有考虑到程序的结构特征,无法应对增加冗余语句、更改数据类型、等价替换控制逻辑结构等抄袭手段;基于树的查重方法考虑到了程序代码的语法特征,通过构建类自然语言的语法分析树以学习程序代码的语法结构信息,但构建语法树的代价很高,且无法应对代码块内语句重排序、操作数重排序等问题。
目前,代码抄袭手段越来越复杂,学生代码作业难度不断提升导致程序代码长度不断增加,传统的代码查重手段已不能满足需求,目前针对编程文本查重的研究也是屈指可数。针对以上问题,基于层级注意力神经网络的程序代码查重方法,可以通过深度学习的方法,训练程序代码抄袭判别模型,以解决复杂抄袭手段难以识别的问题。
发明内容
针对现有程序代码查重技术中存在的问题,本发明提出一种基于层级注意力神经网络的程序代码查重方法,目的是提供一种抗干扰能力强、能同时提取文本特征和结构特征、可处理长程序代码并且适用于python、C++和Java等多种高级语言源代码的程序代码查重方法。
为达到上述目的,本发明提出的基于层级注意力神经网络的程序代码查重方法包括下列步骤:
搭建代码查重系统步骤:搭建一个具有学生代码作业提交储存及教师访问管理功能的系统,应用于计算机类课程教学中,服务于程序语言课程教学老师;
程序代码预处理步骤:通过第一步的系统收集程序代码,标注后构建训练验证数据集,对程序代码进行数据预处理,并根据词频生成令牌(token)词典;
基于层级注意力网络的分类模型构建步骤:搭建由代码令牌级注意力神经网络和代码行级注意力神经网络构成的双层注意力神经网络表征程序代码的分类模型;
基于层级注意力网络的代码查重模型训练评估及预测步骤:利用第二步构建的训练集训练第三步所述模型,并利用验证集测试集进行模型选择与评估。
搭建代码查重系统步骤中,我们对代码查重系统进行了用户需求分析,总结出系统所需功能,进行数据库搭建、系统架构和系统流程设计,代码查重系统搭建具体过程如下:
1.根据系统的两类用户对系统功能的不同需求,为学生和教师提供登录以及个人信息管理功能并提供学生注册功能,针对学生用户提供作业代码上传和管理功能,针对教师用户提供学生代码管理、学生代码查重等功能;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011250169.4/2.html,转载请声明来源钻瓜专利网。





