CN112230990A - 一种基于层级注意力神经网络的程序代码查重方法 - Google Patents
一种基于层级注意力神经网络的程序代码查重方法 Download PDFInfo
- Publication number
- CN112230990A CN112230990A CN202011250169.4A CN202011250169A CN112230990A CN 112230990 A CN112230990 A CN 112230990A CN 202011250169 A CN202011250169 A CN 202011250169A CN 112230990 A CN112230990 A CN 112230990A
- Authority
- CN
- China
- Prior art keywords
- code
- training
- program code
- model
- duplication checking
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 17
- 238000012549 training Methods 0.000 claims abstract description 32
- 238000013145 classification model Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims abstract description 11
- 239000013598 vector Substances 0.000 claims description 38
- 230000006870 function Effects 0.000 claims description 34
- 238000012512 characterization method Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000007781 pre-processing Methods 0.000 claims description 12
- 238000012360 testing method Methods 0.000 claims description 10
- 230000002457 bidirectional effect Effects 0.000 claims description 6
- 230000000306 recurrent effect Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 4
- 238000013135 deep learning Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 claims description 4
- 238000007373 indentation Methods 0.000 claims description 4
- 239000003607 modifier Substances 0.000 claims description 4
- 238000010200 validation analysis Methods 0.000 claims description 4
- 241000288105 Grus Species 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 claims description 3
- 239000004576 sand Substances 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims description 2
- 230000008676 import Effects 0.000 claims description 2
- 238000002372 labelling Methods 0.000 claims description 2
- 239000003550 marker Substances 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 3
- 239000000284 extract Substances 0.000 abstract description 3
- 238000003058 natural language processing Methods 0.000 abstract description 2
- 239000010410 layer Substances 0.000 description 20
- 238000011160 research Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/20—Education
- G06Q50/205—Education administration or guidance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Tourism & Hospitality (AREA)
- General Health & Medical Sciences (AREA)
- Strategic Management (AREA)
- Educational Technology (AREA)
- Data Mining & Analysis (AREA)
- Educational Administration (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种基于层级注意力神经网络的程序代码查重方法。该方法包括如下步骤:搭建代码查重系统步骤,程序代码预处理步骤,基于层级注意力网络的分类模型构建步骤,基于层级注意力网络的程序代码查重模型训练评估及预测步骤。利用本发明实施例,能够将自然语言处理的文本表征技术与程序代码查重任务相结合,提供一种抗干扰能力强、同时提取程序代码特征和程序结构特征、可处理长程序代码并且适用于多种高级语言的程序代码查重方法。
Description
技术领域
本发明涉及非自然语言文本的数据分析及处理领域,着重描述了一种基于层级注意力神经网络的程序代码查重方法。
背景技术
随着互联网的发展,人们开始逐渐依赖于使用搜索引擎从网络上搜寻问题的答案和解决方案,一方面使得全世界的人们可以更容易分享和获取知识,另一方面也使得从互联网上获取信息用于抄袭变得轻而易举。在计算机编程领域,程序抄袭的现象十分广泛。当我们通过互联网搜索某一编程题目时,往往会出现许多来源不同的答案,然而在这些不同版本的代码中,许多源代码是雷同的,其核心部分几乎完全一致。
在高校程序语言教学领域,代码抄袭现象则更加严重,尤其是在程序语言设计课程中,这对于学生的编程能力发展非常不利。因此近年来许多国内外的学者发表了对程序代码抄袭方面的相关研究。然而现有的抄袭检测大部分集中在自然语言文本中,对于程序代码的查重方法目前主要集中于基于属性特征统计、基于树或图的方法。基于属性特征统计的方法依赖于关键词的选择与提取,通过计算不同类别令牌的相似度量以判断代码对是否互为抄袭对,这种方法虽然在部分代码查重数据集上取得了较好的效果,但其鲁棒性较低,没有考虑到程序的结构特征,无法应对增加冗余语句、更改数据类型、等价替换控制逻辑结构等抄袭手段;基于树的查重方法考虑到了程序代码的语法特征,通过构建类自然语言的语法分析树以学习程序代码的语法结构信息,但构建语法树的代价很高,且无法应对代码块内语句重排序、操作数重排序等问题。
目前,代码抄袭手段越来越复杂,学生代码作业难度不断提升导致程序代码长度不断增加,传统的代码查重手段已不能满足需求,目前针对编程文本查重的研究也是屈指可数。针对以上问题,基于层级注意力神经网络的程序代码查重方法,可以通过深度学习的方法,训练程序代码抄袭判别模型,以解决复杂抄袭手段难以识别的问题。
发明内容
针对现有程序代码查重技术中存在的问题,本发明提出一种基于层级注意力神经网络的程序代码查重方法,目的是提供一种抗干扰能力强、能同时提取文本特征和结构特征、可处理长程序代码并且适用于python、C++和Java等多种高级语言源代码的程序代码查重方法。
为达到上述目的,本发明提出的基于层级注意力神经网络的程序代码查重方法包括下列步骤:
搭建代码查重系统步骤:搭建一个具有学生代码作业提交储存及教师访问管理功能的系统,应用于计算机类课程教学中,服务于程序语言课程教学老师;
程序代码预处理步骤:通过第一步的系统收集程序代码,标注后构建训练验证数据集,对程序代码进行数据预处理,并根据词频生成令牌(token)词典;
基于层级注意力网络的分类模型构建步骤:搭建由代码令牌级注意力神经网络和代码行级注意力神经网络构成的双层注意力神经网络表征程序代码的分类模型;
基于层级注意力网络的代码查重模型训练评估及预测步骤:利用第二步构建的训练集训练第三步所述模型,并利用验证集测试集进行模型选择与评估。
搭建代码查重系统步骤中,我们对代码查重系统进行了用户需求分析,总结出系统所需功能,进行数据库搭建、系统架构和系统流程设计,代码查重系统搭建具体过程如下:
1.根据系统的两类用户对系统功能的不同需求,为学生和教师提供登录以及个人信息管理功能并提供学生注册功能,针对学生用户提供作业代码上传和管理功能,针对教师用户提供学生代码管理、学生代码查重等功能;
2.本系统需要与数据库交互内容,利用基于MVC(Model、View、Controller)模式的Web开发框架Django,将定义的类及类的属性同步到数据库中的表和字段,通过在函数中调用类来操作数据库;
3.基于MYSQL建立数据库所需要的表,包括教师信息表、学生信息表、项目信息表等;教师信息表,包括姓名,教工号等,学生信息表包括学生学号、姓名、班级等,项目信息表包括如项目ID,文件位置等;
4.系统功能实现,允许学生进行注册、登陆、作业提交等功能,允许教师进行学生作业查询、作业下载、相似作业检索等功能,并保证仅教师可查询全量作业,学生仅可查询本人提交作业。
程序代码预处理步骤中,将第一步收集的程序代码进行标注后,构建程序代码数据集用于后续模型训练任务,具体过程如下:
1)从系统中下载学生提交的代码作业文本,将下载的K篇代码表示为 Y={y1,y2,y3,…,yk},将代码两两对比进行人工标注,互为抄袭标为1,反之标为0,构建由多个形如(yi,yj,s)样例构成的代码查重数据集,并按6:2:2的比例划分为训练集、验证集、测试集,其中yi,yj∈Y,S∈{0,1};
2)对程序代码进行数据预处理,对代码风格进行统一,移除无用文本包括注释,调用语句等,并替换常量、变量、及标识符使其形式统一;
3)计算预处理后的代码查重数据集的所有令牌的出现次数,即词频,并依据词频大小为每个token赋予token_id,生成针对本代码查重数据集的专属token词典。
基于层级注意力网络的分类模型构建步骤中,搭建由代码token序列编码器,代码token 级的注意力层,代码行级编码器,代码行级的注意力层,分类层构成的深度学习网络模型,具体过程如下:
1)通过词嵌入网络将每个token转为向量形式,假设一行代码中的单词为wit,t∈[0,T],输入嵌入网络后其表征向量可表示为xit=Wewit;
2)用双向GRU构建token序列编码器,从单词的两个方向汇总信息来获取单词的隐层状态;
3)将hit通过一个多层感知机以获得hit的隐藏层表达uit,计算方式如公式(4),通过 token层级的内容向量uw来衡量uit的重要程度,并用softmax函数得到一个归一化权重αit,将带有权重的词向量加权得到每行代码的表征向量si;
4)用双向GRU构建行序列编码器,对于每一行代码的表征向量si,根据和词编码层类似的方法获得每一行文本的隐层状态;
5)再次使用注意力机制,引入行级内容向量us,并使用该向量来度量每一行代码的重要性,获得整篇代码的表征向量si,计算方式如公式;
6)获得每个代码对中两个程序代码的特征向量后,将两个向量拼接起来,并输入到全连接层网络中,最后使用softmax层预测代码对类别。
基于层级注意力网络的代码查重模型训练评估及预测步骤中,利用训练集训练层级注意力分类模型,并利用验证集测试集进行模型选择与评估,具体过程如下:
1.使用训练集训练基于层级注意力网络的分类模型,并设定训练训练轮次,训练步数等超参数,使用交叉熵损失函数训练,边训练边验证直至损失收敛。
2.选取验证后保存的模型,用测试集分别对模型的召回率、精确率进行评估,召回率、精确率越高,模型对程序代码对是否互为拷贝的判别能力越强。
本发明的有益效果在于,相对于现有技术而言,本发明将自然语言处理的文本表征技术与代码查重任务相结合,提供一种抗干扰能力强、能同时提取文本特征和结构特征、可处理长程序代码并且适用于多种高级语言的程序代码查重方法。
附图说明
图1为本发明一种基于层级注意力神经网络的程序代码查重方法的步骤流程图;
图2为本发明实施例的代码查重系统界面图。
图3为程序代码预处理步骤流程图;
图4为基于层级注意力网络的分类模型构建步骤流程图。
具体实施方式
下面将结合附图对本发明具体实施方式进行详细说明。
图1是本发明的流程图,包括以下步骤:
步骤S1:搭建程序代码查重系统步骤;
步骤S2:程序代码预处理步骤;
步骤S3:基于层级注意力网络的分类模型构建步骤;
步骤S4:基于层级注意力网络的代码查重模型训练评估及预测步骤;
下面将对每个步骤进行具体的说明:
步骤S1搭建一个具有学生代码作业提交、储存及教师访问管理功能的系统,图2给出了该方法的具体流程,步骤如下:
1)系统需求分析:根据系统的两类用户对系统功能的不同需求,系统应具有以下基础功能:为学生和教师提供登录以及个人信息管理功能并提供学生注册功能,针对学生用户提供作业代码上传和管理功能,针对教师用户提供学生代码管理、学生代码查重功能;
2)系统框架设计:本系统需要与数据库交互内容,利用基于MVC(Model、View、
Controller)模式的Web开发框架Django,将Django中定义的类及类的属性同步到数据库中的表和字段,通过在python函数中调用类来操作数据库;
3)数据表设计:基于MYSQL建立数据库所需要的表,包括教师信息表、学生信息表、项目信息表等;教师信息表,包括姓名,教工号等,学生信息表包括学生学号、姓名、班级等,项目信息表包括如项目ID,文件位置等;
4)系统功能实现:实现学生进行注册、登陆、作业提交等功能,允许教师进行学生作业查询、作业下载、相似作业检索等功能,并保证仅教师可查询全量作业,学生仅可查询本人提交作业。
步骤S2进行程序代码的文本预处理,构建代码查重数据集并构建程序代码的词频词典,图3给出了该方法的具体流程,步骤如下:
1)构建代码查重数据集:从系统中下载学生提交的代码作业文本,将下载的K篇程序代码表示为Y={y1,y2,y3,…,yk},将程序代码两两对比进行人工标注,互为抄袭标为1,反之标为0,构建由多个形如(yi,yj,s)样例构成的代码查重数据集,并按6:2:2的比例划分为训练集、验证集、测试集,其中yi,yj∈Y,S∈{0,1};
2)对数据集中的程序代码进行数据预处理:
a)统一代码中的缩进风格,将Python中的缩进方式修改为{};
b)移除程序代码中的连续空白(空白大于1行)、注释、import声明、包调用声明、访问权限修饰词、范围修饰词;
c)将所有数字常量替换为一个标记串,将常量字符串与常量文字替换为另一个标记串;
d)用统一的标记串替代每个变量名;分别用标记串替换定义的方法名和类名;
e)将所有“int”、“float”等数据类型转化成一个标记串;
f)用一种循环结构替代所有循环变种(统一用for循环);
a)用一种条件判断替代所有条件判断变种(统一用if语句);
3)构建词频词典:计算预处理后的代码查重数据集的所有token的出现次数,即词频,并依据词频大小为每个token赋予token_id,生成针对本代码查重数据集的专属token词典。
步骤S3构建基于层级注意力网络的分类模型,搭建由代码token序列编码器,代码token 级的注意力层,代码行级编码器,代码行级的注意力层,分类层构成的深度学习网络模型,图4给出了该方法的具体流程,步骤如下:
1)token嵌入:通过词嵌入网络将每个token转为向量形式,假设一行代码中的单词为 wit,t∈[0,T],输入嵌入网络后其表征向量为xit=Wewit;
2)token序列编码:用双向GRU构建token序列编码器,从单词的两个方向汇总信息来获取单词的隐层状态,计算方式如公式(1)(2)(3);
3)利用注意力机制获取程序代码的行表征向量:将hit通过一个单层MLP以获得hit的隐藏层表达uit,计算方式如公式(4),通过token层级的内容向量uw来衡量uit的重要程度,并用softmax函数得到一个归一化权重αit,计算方式公式(5),将带有权重的词向量加权得到每行代码的表征向量si,计算方式见公式(6);
uit=tanh(Wwhit+bw) (4)
si=∑tαithit (6)
4)行序列编码:用双向GRU构建行序列编码器,对于每一行程序代码的表征向量si, 根据和词编码层类似的方法获得每一行文本的隐层状态,计算方式如公式(7)(8)(9);
5)利用注意力机制获取程序代码篇章的表征向量:再次使用注意力机制,引入行级内容向量us,并使用该向量来度量每一行代码的重要性,获得整篇代码的表征向量si,计算方式如公式(10)(11)(12);
ui=tanh(Wshi+bs) (10)
si=∑iαihi (12)
6)判别代码对是否拷贝:获得每个代码对中两个程序代码的特征向量后,将两个向量拼接起来,并输入到全连接层网络中,最后使用softmax层预测代码对类别。
以上结合附图对所提出的基于层级注意力神经网络的程序代码查重方法及各模块的具体实施方式进行了阐述。通过以上实施方式的描述,所属领域的一般技术人员可以清楚的了解到本发明可借助软件加必需的通用硬件平台的方式来实现,也可以通过硬件实现,但前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现,该软件产品存储在一个存储介质中,包括若干指令用以使得一台或多台计算机设备执行本发明各个实施例所述的方法。
依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
以上所述的本发明实施方式,并不构成对发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于层级注意力神经网络的程序代码查重方法,其特征在于,包括以下步骤:
搭建代码查重系统步骤:搭建一个具有学生代码作业提交储存及教师访问管理功能的系统,应用于计算机类课程教学中,服务于程序语言课程教学老师;
程序代码预处理步骤:通过第一步的系统收集程序代码,对程序代码进行标注后构建训练、验证和测试数据集,对程序代码进行数据预处理,并根据词频生成令牌词典;
基于层级注意力网络的分类模型构建步骤:搭建由代码令牌级注意力神经网络和代码行级注意力神经网络构成的双层注意力神经网络表征程序代码的分类模型;
基于层级注意力网络的代码查重模型训练评估及预测步骤:利用第二步构建的训练集数据对第三步所述模型进行训练,并利用验证集和测试集进行模型选择与评估。
2.如权利要求1所述的方法,其特征在于,搭建代码查重系统步骤中,我们对代码查重系统进行了用户需求分析,总结出系统所需功能,进行数据库搭建、系统架构和系统流程设计,代码查重系统搭建具体过程如下:
1)根据系统的两类用户对系统功能的不同需求,为学生和教师提供登录以及个人信息管理功能并提供学生注册功能,针对学生用户提供作业代码上传和管理功能,针对教师用户提供学生代码管理、学生代码查重等功能;
2)本系统需要与数据库交互内容,利用基于MVC(Model、View、Controller)模式的Web开发框架Django,将Django中定义的类及类的属性同步到数据库中的表和字段,通过在Python的函数中调用类来操作数据库;
3)基于MYSQL建立数据库所需要的表,包括教师信息表、学生信息表、项目信息表等;教师信息表,包括姓名,教工号等,学生信息表包括学生学号、姓名、班级等,项目信息表包括如项目ID,文件位置等;
4)系统功能实现,允许学生进行注册、登陆、作业提交等功能,允许教师进行学生作业查询、作业下载、相似作业检索等功能,并保证仅教师可查询全量作业,学生仅可查询本人提交作业。
3.如权利要求1所述的方法,其特征在于,程序代码预处理步骤中,将第一步收集的程序代码进行标注后,构建程序代码数据集用于后续模型训练任务,具体过程如下:
1)从系统中下载学生提交的代码作业文本,将下载的K篇程序代码表示为Y={y1,y2,y3,…,yk},将程序代码两两对比进行人工标注,互为抄袭标为1,反之标为0,构建由多个形如(yi,yj,s)样例构成的代码查重数据集,并按6:2:2的比例划分为训练集、验证集、测试集,其中yi,yj∈Y,S∈{0,1};
2)对程序代码进行数据预处理:
a)统一代码中的缩进风格,将Python中的缩进方式修改为{};
b)移除程序代码中的连续空白(空白大于1行)、注释、import声明、包调用声明、访问权限修饰词、范围修饰词;
c)将所有数字常量替换为一个标记串,将常量字符串与常量文字替换为另一个标记串;
d)用统一的标记串替代每个变量名;分别用标记串替换定义的方法名和类名;
e)将所有“int”、“float”等数据类型转化成一个标记串;
f)用一种循环结构替代所有循环变种(统一用for循环);
g)用一种条件判断替代所有条件判断变种(统一用if语句);
3)计算预处理后的代码查重数据集的所有令牌的出现次数,即词频,并依据词频大小为每个令牌赋予标识符,生成针对本代码查重数据集的专属令牌词典。
4.如权利要求1所述的方法,其特征在于,基于层级注意力的神经网络的分类模型构建步骤中,搭建由代码令牌(token)序列编码器,代码令牌级的注意力层,代码行级编码器,代码行级的注意力层,分类层构成的深度学习网络模型,具体过程如下:
1)通过词嵌入网络将每个token转为向量形式,假设一行代码中的单词为wit,t∈[0,T],输入嵌入网络后其表征向量为xit=Wewit;
2)用双向GRU构建token序列编码器,从单词的两个方向汇总信息来获取单词的隐层状态,计算方式如公式(1)(2)(3);
3)将hit通过一个多层感知机以获得hit的隐藏层表达uit,计算方式如公式(4),通过token层级的内容向量uw来衡量uit的重要程度,并用softmax函数得到一个归一化权重αit,计算方式公式(5),将带有权重的词向量加权得到每行代码的表征向量si,计算方式见公式(6);
uit=tanh(Wwhit+bw) (4)
si=∑tαithit (6)
4)用双向GRU构建行序列编码器,对于每一行程序代码的表征向量si,根据和词编码层类似的方法获得每一行文本的隐层状态,计算方式如公式(7)(8)(9);
5)再次使用注意力机制,引入行级内容向量us,并使用该向量来度量每一行代码的重要性,获得整篇代码的表征向量si,计算方式如公式(10)(11)(12);
ui=tanh(Wshi+bs) (10)
si=∑iαihi (12)
6)获得每个代码对中两个程序代码的特征向量后,将两个向量拼接起来,并输入到全连接层网络中,最后使用softmax层预测代码对的类别。
5.如权利要求1所述的方法,其特征在于,基于层级注意力网络的代码查重模型训练评估及预测步骤中,利用训练集训练层级注意力分类模型,并利用验证集和测试集进行模型选择与评估,具体过程如下:
1)使用训练集训练基于层级注意力网络的分类模型,并设定训练训练轮次,训练步数等超参数,使用交叉熵损失函数训练,边训练边验证直至损失收敛。
2)选取验证后保存的模型,用测试集分别对模型的召回率、精确率进行评估,精确率(Precision),召回率(Recall)计算方式如公式(13)(14),其中TP为将正类预测为正类的个数,FP为将负类预测为正类的个数,TN为将负类预测为负类的个数,FN为将正类预测为负类的个数,
精确率,召回率越高,模型对程序代码的查重能力越强。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011250169.4A CN112230990A (zh) | 2020-11-10 | 2020-11-10 | 一种基于层级注意力神经网络的程序代码查重方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011250169.4A CN112230990A (zh) | 2020-11-10 | 2020-11-10 | 一种基于层级注意力神经网络的程序代码查重方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112230990A true CN112230990A (zh) | 2021-01-15 |
Family
ID=74122359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011250169.4A Pending CN112230990A (zh) | 2020-11-10 | 2020-11-10 | 一种基于层级注意力神经网络的程序代码查重方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112230990A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113887610A (zh) * | 2021-09-29 | 2022-01-04 | 内蒙古工业大学 | 基于交叉注意力蒸馏Transformer的花粉图像分类方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165040A (zh) * | 2018-07-04 | 2019-01-08 | 东华大学 | 一种基于随机森林模型的代码抄袭嫌疑检测的方法 |
CN109558487A (zh) * | 2018-11-06 | 2019-04-02 | 华南师范大学 | 基于层次性多注意力网络的文档分类方法 |
CN109902175A (zh) * | 2019-02-20 | 2019-06-18 | 上海方立数码科技有限公司 | 一种基于神经网络结构模型的文本分类方法及分类系统 |
CN110852070A (zh) * | 2019-10-25 | 2020-02-28 | 杭州费尔斯通科技有限公司 | 一种文档向量生成方法 |
-
2020
- 2020-11-10 CN CN202011250169.4A patent/CN112230990A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165040A (zh) * | 2018-07-04 | 2019-01-08 | 东华大学 | 一种基于随机森林模型的代码抄袭嫌疑检测的方法 |
CN109558487A (zh) * | 2018-11-06 | 2019-04-02 | 华南师范大学 | 基于层次性多注意力网络的文档分类方法 |
CN109902175A (zh) * | 2019-02-20 | 2019-06-18 | 上海方立数码科技有限公司 | 一种基于神经网络结构模型的文本分类方法及分类系统 |
CN110852070A (zh) * | 2019-10-25 | 2020-02-28 | 杭州费尔斯通科技有限公司 | 一种文档向量生成方法 |
Non-Patent Citations (1)
Title |
---|
黄珊: "基于融合表情符号的两级注意力机制网络的情感分析", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113887610A (zh) * | 2021-09-29 | 2022-01-04 | 内蒙古工业大学 | 基于交叉注意力蒸馏Transformer的花粉图像分类方法 |
CN113887610B (zh) * | 2021-09-29 | 2024-02-02 | 内蒙古工业大学 | 基于交叉注意力蒸馏Transformer的花粉图像分类方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489538B (zh) | 基于人工智能的语句应答方法、装置及电子设备 | |
Wang et al. | Fret: Functional reinforced transformer with bert for code summarization | |
CN115357719B (zh) | 基于改进bert模型的电力审计文本分类方法及装置 | |
CN112417161B (zh) | 一种基于模式扩充及bert分类的知识图谱上下位关系识别的方法和存储设备 | |
Agarwal et al. | Autoeval: A nlp approach for automatic test evaluation system | |
CN115310551A (zh) | 文本分析模型训练方法、装置、电子设备和存储介质 | |
CN117454884B (zh) | 历史人物信息纠错方法、系统、电子设备和存储介质 | |
Dias et al. | State of the Art in Artificial Intelligence applied to the Legal Domain | |
CN114330483A (zh) | 数据处理方法及模型训练方法、装置、设备、存储介质 | |
CN112230990A (zh) | 一种基于层级注意力神经网络的程序代码查重方法 | |
Wang et al. | Difftech: Differencing similar technologies from crowd-scale comparison discussions | |
Yin et al. | Emulating Reader Behaviors for Fake News Detection | |
Zhao et al. | Classification Method of Aerobics Course Online Teaching Resources Based on Artificial Intelligence Technology | |
Wang et al. | Automatic Grading of Student Code with Similarity Measurement | |
Zhang et al. | Research on Defect Location Method of C Language Code Based on Deep Learning | |
Adewumi | Vector representations of idioms in data-driven chatbots for robust assistance | |
Varghese et al. | Question-answering versus machine reading comprehension | |
Moiseeva | Statistical natural language processing methods for intelligent process automation | |
Chong | Design and implementation of English grammar error correction system based on deep learning | |
CN110929265B (zh) | 一种面向阅读理解问答的多角度答案验证方法 | |
Fong et al. | Treebank parsing and knowledge of language | |
CN115905610B (zh) | 一种多粒度注意力网络的组合式查询图像检索方法 | |
Wu | Translation accuracy evaluation of english complex long sentences based on multi-label clustering algorithms | |
Chen | Identification of Grammatical Errors of English Language Based on Intelligent Translational Model | |
CN116910646B (zh) | So网站中知识单元的内部链接目的分类方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210115 |
|
WD01 | Invention patent application deemed withdrawn after publication |