CN116302088B - 一种代码克隆检测方法、存储介质及设备 - Google Patents

一种代码克隆检测方法、存储介质及设备 Download PDF

Info

Publication number
CN116302088B
CN116302088B CN202310012780.0A CN202310012780A CN116302088B CN 116302088 B CN116302088 B CN 116302088B CN 202310012780 A CN202310012780 A CN 202310012780A CN 116302088 B CN116302088 B CN 116302088B
Authority
CN
China
Prior art keywords
node
ast
cfg
code
call
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.)
Active
Application number
CN202310012780.0A
Other languages
English (en)
Other versions
CN116302088A (zh
Inventor
苏庆
列志毅
黄剑锋
林志毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN202310012780.0A priority Critical patent/CN116302088B/zh
Publication of CN116302088A publication Critical patent/CN116302088A/zh
Application granted granted Critical
Publication of CN116302088B publication Critical patent/CN116302088B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • G06F8/751Code clone detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及代码克隆检测技术领域,公开了一种代码克隆检测方法、存储介质及设备,通过同时提取M‑AST的语法信息和M‑CFG的语义信息用作代码克隆检测,可以检测到只用AST所检测不到的代码结构,并且通过将语法特征向量和语义特征向量融合生成特征向量的检测方式,提高对代码克隆检测的通用性,克隆检测成功率高。

Description

一种代码克隆检测方法、存储介质及设备
技术领域
本发明涉及代码克隆检测技术领域,特别是涉及一种代码克隆检测方法、存储介质及设备。
背景技术
在软件开发中,复制或修改现有的代码片段并将它们粘贴到代码的其他部分中是一种常见的行为,称为代码克隆(code clone)。代码克隆能够加速软件开发效率,但当原始代码存在缺陷时,克隆的代码通常也存在相同缺陷,会使得缺陷在软件系统中散播开来,增加软件维护成本。现有研究表明,20%–50%的大型软件系统中都包含代码克隆。因此,如何对软件系统中存在的代码克隆现象进行有效检测,成为了软件工程领域的一个重要问题,并且随着软件应用广泛应用于社会的各个生产生活领域,这个问题的重要性日趋明显。
现有研究将代码克隆根据克隆程度大致分为4类:类型1的代码克隆是指两段代码除了在空格、布局和注释方面不同外,其他部分完全相同;类型2的代码克隆是指两段代码除了变量、类型、文字和函数的名称有所不同外,其余代码片段相同;类型3的代码克隆是指在类型2的基础上,对部分语句做添加、删除、修改等操作,但仍然保持代码功能相同;类型4的代码克隆是指两段代码实现了相同功能,但是实现的方式却不同。
目前,代码克隆检测方法主要分为以下5类:基于文本的检测方法、基于词法的检测方法、基于语法的检测方法、基于语义的检测方法和基于度量值的检测方法。类型1、类型2、类型3的代码克隆可以被许多现有方法很好的检测到,但这些方法对类型4的克隆检测上往往效果不佳,此外,基于语义的检测方法虽然可以检测到类型4的克隆,但对其它类型的克隆检测不能达到同样好的效果。这是由于现有方法往往只使用单一的语法或语义信息,没有同时充分利用代码的语法信息和语义信息。
现有技术公开了一种基于GAT图神经网络模型的代码克隆检测方法,包括以下步骤:根据克隆代码的定义,从编程竞赛网站和现有代码克隆数据集提取生成相应定义的克隆代码数据;解析代码文本生成AST抽象语法树;在AST抽象语法树的基础上增加人工定义的附加边生成表示图;将代码表示图输入GAT网络模型训练获得图表征向量;拼接克隆代码对的表征向量输入二分类网络;判别输出代码克隆预测结果,该现有技术只使用基于AST语法特征信息的克隆检测方法,对于某些实现相同功能的不同代码片段,其AST结构可能并不相同,对其提取的结构信息差异较大,存在通用性不高的问题,容易导致克隆检测失效。
发明内容
本发明的目的是:提供一种代码克隆检测方法、存储介质及设备,以解决现有技术存在的只使用单一的语法或语义信息,通用性不强,容易导致克隆检测失效的问题。
为了实现上述目的,本发明提供了一种代码克隆检测方法,包括:
S1、构建代码数据集,所述代码数据集由源代码对及克隆标签组成;
S2、从代码数据集中获取数据,对数据中的源代码对进行解析并且生成每个源代码的AST和CFG,访问AST和CFG中的所有节点,若当前访问的节点中,其节点属性中的源代码信息和行号信息在序列中,则标记该节点为Method_call节点,将Method_call节点的父母节点指向被调用函数的AST的根节点,生成M-AST,将Method_call节点的上一个节点指向被调用函数的CFG的入口节点,然后将被调用函数的CFG的出口节点指向Method_call节点所指向的下一个节点,生成M-CFG;
S3、从M-AST和M-CFG的节点信息中生成语法特征向量和语义特征向量,然后将语法特征向量和语义特征向量融合生成特征向量h;
S4、源代码对融合生成两个特征向量分别为h1和h2,然后通过二分类神经网络完成分类预测;
S5、通过步骤S2-S4构建代码克隆检测模型,将步骤S1中的代码克隆数据集分为训练集和测试集,通过训练集和测试集不断更新代码克隆检测模型的参数权重,直到迭代结束,得到训练好的代码克隆检测模型;
S6、将待检测的代码输入训练好的代码克隆检测模型,获得检测结果。
优选的,在步骤S2中,生成M-AST和M-CFG的过程如下:
S2-1、对源代码进行解析,生成每个函数的AST和CFG;
S2-2、解析源代码,得到每个函数的调用图,根据调用图,构造函数的调用关系序列Q1
S2-3、访问AST和CFG中的所有节点,若当前访问的节点中,其节点属性中的源代码信息和行号信息在序列Q1中,则标记该节点为Method_call节点;
S2-4、将Method_call节点的父母节点指向被调用函数的AST的根节点生成M-AST,所述M-AST为模块级抽象语法树,将Method_call节点的上一个节点指向被调用函数的CFG的入口节点,然后将被调用函数的CFG的出口节点指向Method_call节点所指向的下一个节点生成M-CFG,所述M-CFG为模块级控制流程图。
优选的,在步骤S3中获得特征向量h的过程如下:
S3-1、对获取到的M-AST进行先序遍历,得到M-AST的节点信息序列Q2,然后将所有的节点信息序列Q2输入到词向量方法中进行训练,得到词向量模型;
S3-2、将M-AST和M-CFG的每个节点信息通过词向量模型转化为16维的向量,然后将转化为16维向量后的M-AST和M-CFG转化为图数据结构;
S3-3、使用由多个图注意力层堆叠组成的GAT来提取转化为图数据结构后的M-AST的语法特征,更新M-AST的节点信息;然后通过由平均池化和最大值池化组成的混合池化层来聚合M-AST的所有节点信息,以获得M-AST的语法特征向量hg1
S3-4、使用由多个图卷积层堆叠组成的GCN来提取转化为图数据结构后的M-CFG的语义特征,更新M-CFG的节点信息,然后通过平均池化层来聚合M-CFG的所有节点信息,以获得M-CFG的语义特征向量hg2
S3-5、采用自适应特征融合策略,调节语法特征向量hg1和语义特征向量hg2的权重,进行融合从而得到特征向量h。
优选的,在步骤S3-1中所述的词向量方法为gensim.models.Word2Vec。
优选的,在步骤S3-3中,所述GAT的计算步骤如下:
输入一个节点个数为n的图,其初始化节点特征集合X={x1,x2,…,xn},每层图注意力层的计算公式为:
其中参数W是用于完成每个节点的特征维度变换的可训练参数,参数a是可训练的参数向量,||表示串联操作,对向量进行拼接,eij表示邻居节点j到节点i的注意力系数,aij表示计算得到的节点i和j之间的权重,σ表示非线性激活函数,x′i表示将节点xi更新后得到的节点特征。
优选的,在步骤S3-3中,所述语法特征向量hg1计算公式如下:
hg1=Max(Hg)+Mean(Hg)
参数Hg表示为M-AST上所有节点特征向量的特征矩阵,Max表示最大池化函数,Mean表示平均池化函数。
优选的,在步骤S3-4中,所述语义特征向量hg2计算公式如下:
hg2=Mean(Hg)
参数Hg为表示M-CFG上所有节点特征向量的特征矩阵,Mean表示平均池化函数。
优选的,在步骤S3-5中,所述特征向量h计算公式如下:
h=ahg1+(1-a)hg2
其中a是可学习的权重参数。
本申请还提出一种计算机存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述任意一项所述的一种代码克隆检测方法。
本申请还提出一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述任意一项所述的一种代码克隆检测方法。
与现有技术相比,其有益效果在于:
本发明通过同时提取M-AST的语法信息和M-CFG的语义信息用作代码克隆检测,可以检测到只用AST所检测不到的代码结构,并且通过将语法特征向量和语义特征向量融合生成特征向量的检测方式,提高对代码克隆检测的通用性,克隆检测成功率高。
附图说明
图1是本发明实施例的代码克隆检测方法的流程图;
图2是本发明实施例的代码克隆检测模型的模型结构图;
图3是本发明实施例的代码克隆检测方法中生成M-AST和M-CFG的流程图;
图4是本发明实施例的代码克隆检测方法中获得特征向量h的流程图;
图5是本发明实施例的代码克隆检测方法中Factorial函数和Absolute函数的AST生成M-AST的示例图;
图6是本发明实施例的代码克隆检测方法中Factorial函数和Absolute函数的CFG生成M-CFG的示例图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例一
如图1所示,本发明优选实施例的一种代码克隆检测方法,包括:
S1、构建代码数据集,代码数据集由源代码对及克隆标签组成;
本发明中采用的数据集是OJClone,该数据集包含104个编程任务,每个任务有500个源代码。
本发明将实现相同功能的源代码之间视为代码克隆对,实现不同功能的源代码之间视为非代码克隆对,构建克隆对数据集。
S2、从代码数据集中获取数据,对数据中的源代码对进行解析并且生成每个源代码的AST(抽象语法树)和CFG(程序流程图),访问AST和CFG中的所有节点,若当前访问的节点中,其节点属性中的源代码信息和行号信息在序列中,则标记该节点为Method_call节点,将Method_call节点的父母节点指向被调用函数的AST的根节点,生成M-AST,将Method_call节点的上一个节点指向被调用函数的CFG的入口节点,然后将被调用函数的CFG的出口节点指向Method_call节点所指向的下一个节点,生成M-CFG。
S3、从M-AST和M-CFG的节点信息中生成语法特征向量和语义特征向量,然后将语法特征向量和语义特征向量融合生成特征向量h。
S4、源代码对融合生成两个特征向量分别为h1和h2,然后通过二分类神经网络完成分类预测。
S5、通过步骤S2-S4构建代码克隆检测模型,将步骤S1中的代码克隆数据集分为训练集和测试集,通过训练集和测试集不断更新代码克隆检测模型的参数权重,直到迭代结束,得到训练好的代码克隆检测模型。
本发明中将步骤S1中的代码克隆数据集分为训练集和测试集,初始化代码克隆检测模型中的参数,将训练集和测试集的数据划分为多个批次,每次将一批次的训练集的数据输入到代码克隆检测模型中进行训练,获得训练集输出结果,用训练集输出结果与训练集的克隆标签对比,得到当前批次的损失值,然后根据损失值更新代码克隆检测模型的各层参数,用一批次的测试集去测试更新后的代码克隆检测模型,获得测试集输出结果,用测试集输出结果与测试集的克隆标签进行对比,验证克隆检测的准确性,最终得到训练好的代码克隆检测模型。
如图2所示为代码克隆检测模型结构,解析源代码对,生成函数级别的AST和CFG,将函数级别的AST和CFG合并成为模块级别的M-AST和M-CFG,使用GAT来提取转化为图数据结构后的M-AST的语法特征,通过混合池化层来聚合M-AST的所有节点信息,以获得M-AST的语法特征向量,使用GCN来提取转化为图数据结构后的M-CFG的语法特征,更新M-CFG的节点信息,然后通过平均池化层来聚合M-CFG的所有节点信息,以获得M-CFG的语义特征向量,并将语法及语义特征向量进行融合,得到源代码对特征向量,然后将源代码对特征向量输入到克隆分类器中,判断该源代码对是否为克隆。
S6、将待检测的代码输入训练好的代码克隆检测模型,获得检测结果。
优选的,在步骤S2中,生成M-AST和M-CFG的过程如下:
S2-1、对源代码进行解析,生成每个函数的AST和CFG。
S2-2、解析源代码,得到每个函数的调用图,根据调用图,构造函数的调用关系序列Q1
S2-3、访问AST和CFG中的所有节点,若当前访问的节点中,其节点属性中的源代码信息和行号信息在序列Q1中,则标记该节点为Method_call节点。
S2-4、将Method_call节点的父母节点指向被调用函数的AST的根节点生成M-AST,M-AST为模块级抽象语法树,将Method_call节点的上一个节点指向被调用函数的CFG的入口节点,然后将被调用函数的CFG的出口节点指向Method_call节点所指向的下一个节点生成M-CFG,M-CFG为模块级控制流程图。
在步骤S3中获得特征向量h的过程如下:
S3-1、对获取到的M-AST进行先序遍历,得到M-AST的节点信息序列Q2,然后将所有的节点信息序列Q2输入到词向量方法中进行训练,得到词向量模型。
S3-2、将M-AST和M-CFG的每个节点信息通过词向量模型转化为16维的向量,然后将转化为16维向量后的M-AST和M-CFG转化为图数据结构。
本发明中所述转化为图数据结构是指将M-AST和M-CFG的边和点的信息转化为图神经网络模型所适用的格式。
S3-3、使用由多个图注意力层堆叠组成的GAT来提取转化为图数据结构后的M-AST的语法特征,更新M-AST的节点信息,然后通过由平均池化和最大值池化组成的混合池化层来聚合M-AST的所有节点信息,以来获得M-AST的语法特征向量hg1
S3-4、使用由多个图卷积层堆叠组成的GCN来提取转化为图数据结构后的M-CFG的语法特征,更新M-CFG的节点信息,然后通过平均池化层来聚合M-CFG的所有节点信息,以获得M-CFG的语义特征向量hg2
S3-5、采用自适应特征融合策略,调节语法特征向量hg1和语义特征向量hg2的权重,进行融合从而得到特征向量h。
在步骤S3-1中的词向量方法为gensim.models.Word2Vec;
gensim是一个基于Python的深度学习框架,gensim.models.Word2Vec是gensim中的一种方法,用于将文本单词转化为指定维度的特征向量。
在步骤S3-3中,GAT的计算步骤如下:
输入一个节点个数为n的图,其初始化节点特征集合X={x1,x2,…,xn},每层图注意力层的计算公式为:
其中参数W是用于完成每个节点的特征维度变换的可训练参数,参数a是可训练的参数向量,||表示串联操作,对向量进行拼接,eij表示邻居节点j到节点i的注意力系数,aij表示计算得到的节点i和j之间的权重,σ表示非线性激活函数,x′i表示将节点xi更新后得到的节点特征。
对图的每一个节点进行更新得到的节点特征,以此作为下一个图注意力层的输入,完成所有图注意力层的计算后,输出图中各节点的特征向量。
在步骤S3-3中,语法特征向量hg1计算公式如下:
hg1=Max(Hg)+Mean(Hg)
参数Hg表示为M-AST上所有节点特征向量的特征矩阵,Max表示最大池化函数,Mean表示平均池化函数。
在步骤S3-4中,语义特征向量hg2计算公式如下:
hg2=Mean(Hg)
参数Hg为表示M-CFG上所有节点特征向量的特征矩阵,Mean表示平均池化函数。
在步骤S3-5中,特征向量h计算公式如下:
h=ahg1+(1-a)hg2
其中a是可学习的权重参数。
实施例二
本申请还提出一种计算机存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述任意一项的一种代码克隆检测方法。
实施例三
本申请还提出一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述任意一项的一种代码克隆检测方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。

Claims (7)

1.一种代码克隆检测方法,其特征在于,包括:
S1、构建代码数据集,所述代码数据集由源代码对及克隆标签组成;
S2、从代码数据集中获取数据,对数据中的源代码对进行解析并且生成每个源代码的抽象语法树AST和控制流程图CFG,访问AST和CFG中的所有节点,若当前访问的节点中,其节点属性中的源代码信息和行号信息在序列中,则标记该节点为Method_call节点,将Method_call节点的父母节点指向被调用函数的AST的根节点,生成M-AST,将Method_call节点的上一个节点指向被调用函数的CFG的入口节点,然后将被调用函数的CFG的出口节点指向Method_call节点所指向的下一个节点,生成M-CFG;
S3、从M-AST和 M-CFG的节点信息中生成语法特征向量和语义特征向量,然后将语法特征向量和语义特征向量融合生成特征向量
S4、源代码对融合生成两个特征向量分别为和/>,然后通过二分类神经网络完成分类预测;
S5、通过步骤S2-S4构建代码克隆检测模型,将步骤S1中的代码克隆数据集分为训练集和测试集,通过训练集和测试集不断更新代码克隆检测模型的参数权重,直到迭代结束,得到训练好的代码克隆检测模型;
S6、将待检测的代码输入训练好的代码克隆检测模型,获得检测结果;
在步骤S2中,生成M-AST和M-CFG的过程如下:
S2-1、对源代码进行解析,生成每个函数的AST和CFG;
S2-2、解析源代码,得到每个函数的调用图,根据调用图,构造函数的调用关系序列
S2-3、访问AST和CFG中的所有节点,若当前访问的节点中,其节点属性中的源代码信息和行号信息在序列中,则标记该节点为Method_call节点;
S2-4、将Method_call节点的父母节点指向被调用函数的AST的根节点生成M-AST,所述M-AST为模块级抽象语法树,将Method_call节点的上一个节点指向被调用函数的CFG的入口节点,然后将被调用函数的CFG的出口节点指向Method_call节点所指向的下一个节点生成M-CFG,所述M-CFG为模块级控制流程图;
在步骤S3中获得特征向量的过程如下:
S3-1、对获取到的M-AST进行先序遍历,得到M-AST的节点信息序列,然后将所有的节点信息序列/>输入到词向量方法中进行训练,得到词向量模型;
S3-2、将M-AST和M-CFG的每个节点信息通过词向量模型转化为16维的向量,然后将转化为16维向量后的M-AST和M-CFG转化为图数据结构;
S3-3、使用由多个图注意力层堆叠组成的GAT来提取转化为图数据结构后的M-AST的语法特征,更新M-AST的节点信息;然后通过一个由平均池化和最大值池化组成的混合池化层来聚合M-AST的所有节点信息,以获得M-AST的语法特征向量
S3-4、使用由多个图卷积层堆叠组成的GCN来提取转化为图数据结构后的M-CFG的语义特征,更新M-CFG的节点信息,然后通过平均池化层来聚合M-CFG的所有节点信息,以获得M-CFG的语义特征向量
S3-5、采用自适应特征融合策略,调节语法特征向量和语义特征向量/>的权重,进行融合从而得到特征向量/>
2.根据权利要求1所述的一种代码克隆检测方法,其特征在于,在步骤S3-1中所述的词向量方法为gensim.models.Word2Vec。
3.根据权利要求1所述的一种代码克隆检测方法,其特征在于,在步骤S3-3中,所述语法特征向量计算公式如下:
参数表示为M-AST上所有节点特征向量的特征矩阵,/>表示最大池化函数,/>表示平均池化函数。
4.根据权利要求2所述的一种代码克隆检测方法,其特征在于,在步骤S3-4中,所述语义特征向量计算公式如下:
参数为表示M-CFG上所有节点特征向量的特征矩阵,/>表示平均池化函数。
5.根据权利要求4所述的一种代码克隆检测方法,其特征在于,在步骤S3-5中,所述特征向量计算公式如下:
其中是可学习的权重参数。
6.一种计算机存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1~5任意一项所述的一种代码克隆检测方法。
7.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1~5任意一项所述的一种代码克隆检测方法。
CN202310012780.0A 2023-01-05 2023-01-05 一种代码克隆检测方法、存储介质及设备 Active CN116302088B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310012780.0A CN116302088B (zh) 2023-01-05 2023-01-05 一种代码克隆检测方法、存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310012780.0A CN116302088B (zh) 2023-01-05 2023-01-05 一种代码克隆检测方法、存储介质及设备

Publications (2)

Publication Number Publication Date
CN116302088A CN116302088A (zh) 2023-06-23
CN116302088B true CN116302088B (zh) 2023-09-08

Family

ID=86826446

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310012780.0A Active CN116302088B (zh) 2023-01-05 2023-01-05 一种代码克隆检测方法、存储介质及设备

Country Status (1)

Country Link
CN (1) CN116302088B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117609005A (zh) * 2023-10-19 2024-02-27 广东工业大学 一种代码相似度检测方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781086A (zh) * 2019-10-23 2020-02-11 南京大学 一种基于程序依赖关系和符号分析的跨项目缺陷影响分析方法
CN112764738A (zh) * 2021-01-19 2021-05-07 山东师范大学 基于多视图程序特征的代码自动生成方法及系统
CN113434418A (zh) * 2021-06-29 2021-09-24 扬州大学 知识驱动的软件缺陷检测与分析方法及系统
CN113961241A (zh) * 2021-11-02 2022-01-21 南京大学 一种基于gat图神经网络模型的代码克隆检测方法
CN115146279A (zh) * 2022-06-28 2022-10-04 湖南大学 程序漏洞检测方法、终端设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11893385B2 (en) * 2021-02-17 2024-02-06 Open Weaver Inc. Methods and systems for automated software natural language documentation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781086A (zh) * 2019-10-23 2020-02-11 南京大学 一种基于程序依赖关系和符号分析的跨项目缺陷影响分析方法
CN112764738A (zh) * 2021-01-19 2021-05-07 山东师范大学 基于多视图程序特征的代码自动生成方法及系统
CN113434418A (zh) * 2021-06-29 2021-09-24 扬州大学 知识驱动的软件缺陷检测与分析方法及系统
CN113961241A (zh) * 2021-11-02 2022-01-21 南京大学 一种基于gat图神经网络模型的代码克隆检测方法
CN115146279A (zh) * 2022-06-28 2022-10-04 湖南大学 程序漏洞检测方法、终端设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于深度学习的代码克隆检测技术研究;刘复星等;电脑知识与技术;14(18);全文 *

Also Published As

Publication number Publication date
CN116302088A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
CN111737535B (zh) 一种基于元结构和图神经网络的网络表征学习方法
EP3846034B1 (en) Systems and methods for automated testing using artificial intelligence techniques
CN112699215B (zh) 基于胶囊网络与交互注意力机制的评级预测方法及系统
CN112529071B (zh) 一种文本分类方法、系统、计算机设备和存储介质
CN116302088B (zh) 一种代码克隆检测方法、存储介质及设备
CN115145551A (zh) 一种面向机器学习应用低代码开发的智能辅助系统
CN113010683B (zh) 基于改进图注意力网络的实体关系识别方法及系统
CN115775116B (zh) 基于bim的路桥工程管理方法及系统
CN111695024A (zh) 对象评估值的预测方法及系统、推荐方法及系统
CN114816997A (zh) 一种基于图神经网络与双向gru特征抽取的缺陷预测方法
CN112100486A (zh) 一种基于图模型的深度学习推荐系统及其方法
CN112015890B (zh) 电影剧本摘要的生成方法和装置
CN114546365A (zh) 一种流程可视化的建模方法、服务器、计算机系统及介质
CN112465929B (zh) 一种基于改进图卷积网络的图像生成方法
CN111159424B (zh) 标注知识图谱实体的方法,装置,存储介质及电子设备
CN113010687B (zh) 一种习题标签预测方法、装置、存储介质以及计算机设备
CN114254199A (zh) 基于二分图投影和node2vec的课程推荐方法
CN111897832A (zh) 模型部署方法、设备及可读存储介质
CN117151247B (zh) 机器学习任务建模的方法、装置、计算机设备和存储介质
CN111027318A (zh) 基于大数据的行业分类方法、装置、设备及存储介质
CN112307227B (zh) 一种数据分类方法
CN113065321B (zh) 基于lstm模型和超图的用户行为预测方法及系统
CN115270802B (zh) 一种问题语句的处理方法、电子设备及存储介质
CN110457543B (zh) 一种基于端到端多视角匹配的实体消解方法和系统
CN113297511B (zh) 商户排序模型的构建方法、装置、服务器及存储介质

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
GR01 Patent grant
GR01 Patent grant