CN113656066B - 一种基于特征对齐的克隆代码检测方法 - Google Patents

一种基于特征对齐的克隆代码检测方法 Download PDF

Info

Publication number
CN113656066B
CN113656066B CN202110936377.8A CN202110936377A CN113656066B CN 113656066 B CN113656066 B CN 113656066B CN 202110936377 A CN202110936377 A CN 202110936377A CN 113656066 B CN113656066 B CN 113656066B
Authority
CN
China
Prior art keywords
code
feature
bidirectional
convolution
tree
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
CN202110936377.8A
Other languages
English (en)
Other versions
CN113656066A (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.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
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 Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN202110936377.8A priority Critical patent/CN113656066B/zh
Publication of CN113656066A publication Critical patent/CN113656066A/zh
Application granted granted Critical
Publication of CN113656066B publication Critical patent/CN113656066B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于特征对齐的克隆代码检测方法,将源代码解析成抽象语法树,并分割为语句树序列,然后进行词嵌入和语义树编码;接着,利用双向因果卷积神经网络,提取具有丰富结构和语义信息的代码片段的特征表示;在特征提取之后,通过稀疏重建,以数据驱动的方式,学习表示两个代码片段之间对应关系的对齐矩阵,从而对齐两个代码片段,得到两个代码的相似度。与现有技术相比,本发明能够提取更丰富的特征,并解决功能相似的代码因语句位置不同而导致的结构差异问题,获得更高的检测精度。

Description

一种基于特征对齐的克隆代码检测方法
技术领域
本发明属于软件代码分析技术领域。
背景技术
代码克隆检测的目的,是通过度量两个代码片段的相似性来做出决策。在整个软件开发生命周期中,代码克隆检测已经被证明是有价值的。识别文本、语法或功能上相似的代码片段是许多软件工程任务的基础,如代码分类、代码重构、bug检测和恶意代码检测等。近年来,深度学习技术在代码克隆检测中取得了很好的结果,尤其是解决功能相似的代码克隆检测。
然而,现有的技术仅仅关注如何从源代码中提取更多的区别性特征,而一些问题,如功能相似的代码的结构差异,并没有明确解决。软件开发过程中,当程序员复制一个代码段时,经常添加或删除几个语句,或者使用更灵活的语法结构来实现同样功能,这导致复制前后的代码语句错位,产生结构差异。
代码片段通常被转换为抽象语法树或程序依赖图,后续采用CNN或RNN学习特征表示,计算特征之间的相似度,来决策是否为相似代码。学习到的特征通常是二维张量,为了生成计算相似度的向量,通常采用全局池化操作。然而,全局池化在解决代码错位方面本质上很薄弱,特征的错位依然存在。计算结构不同、而功能相似代码对的相似度时,特征错位会导致其相似度变低,从而可能导致决策错误。对代码特征进行对齐操作,可以帮助弥合功能相似代码存在的结构不同的鸿沟。
发明内容
发明目的:为了解决上述现有技术存在的问题,本发明提供了一种基于特征对齐的克隆代码检测方法。
技术方案:本发明提供了一种基于特征对齐的克隆代码检测方法,具体为:将目标代码x和代码y输入至训练好的克隆代码检测模型中;所述训练好的克隆代码检测模型输出代码x和代码y的相似度,根据代码x和代码y的相似度判断代码x和代码y是否为相似的代码;所述克隆代码检测模型对输入的代码x和代码y做如下处理:
步骤1:利用代码解析工具生成代码x的抽象语法树Tx和代码y的抽象语法树Ty
步骤2:根据抽象语法树Tx的状态节点,将Tx划分为多个语句树,并按照原抽象语法树Tx先序遍历的顺序,将该多个语句树组成语句树序列STx;根据抽象语法树Ty的状态节点,将Ty划分为多个语句树,并按照原抽象语法树Tx先序遍历的顺序,将该多个语句树组成语句树序列STy
步骤3:构建语句向量矩阵:对每个语句树序列中每个语句树的节点实体进行词嵌入,采用编码器将词嵌入后的语句树编码成语句向量,根据该语句树序列将与该语句树序列对应的语句向量构成语句向量矩阵;
步骤4:采用双向因果卷积网络对代码x的语句向量矩阵Xx和代码y的语句向量矩阵Xy分别进行特征提取,从而得到代码x的代码特征Fx,代码y的代码特征Fy
步骤5:采用稀疏重建的方法计算代码特征Fy对于代码特征Fx的对齐特征
Figure BDA0003213350850000021
以及代码特征Fx对于代码特征Fy的对齐特征
Figure BDA0003213350850000022
步骤6:计算
Figure BDA0003213350850000023
并分别对Rxy和Ryx进行最大池化操作得到相似度特征向量Vxy和Vyx
步骤7:将Vxy和Vyx在特征维度上进行连接,再将连接后的向量输入至全连接层,将全连接层的输出输入至sigmoid函数层,sigmoid函数层输出代码x和代码y的相似度S。
进一步的,所述步骤4中双向因果卷积网络包括相互连接的第一双向因果卷积模块和第二双向因果卷积模块,所述第一、二双向因果卷积模块结构相同,均包括1×1卷积层,第一双向因果卷积层和第二双向因果卷积层;将1×1卷积层、第一双向因果卷积层和第二双向因果卷积层输出的结果相加作为双向因果卷积模块的输出;所述第一双向因果卷积层为卷积核为3×1的双向因果卷积层,第二双向因果卷积层为卷积核为3×1且步长为2的双向因果卷积层。
进一步的,所述双向因果卷积层对输入的特征进行如下操作:
Figure BDA0003213350850000024
Figure BDA0003213350850000031
Figure BDA0003213350850000032
其中,
Figure BDA0003213350850000033
为双向因果卷积层的输入特征中第t个特征向量,t=0,1,2,…,T’;当对代码x进行特征提取时,T’为语句树序列STx的长度;当对代码y进行特征提取时,T’为语句树序列STy的长度;k为双向因果卷积层的卷积核大小,
Figure BDA0003213350850000034
为卷积核,f和b分别代表前向和后向,*=f或b;
Figure BDA0003213350850000035
为双向因果卷积层中前向卷积操作输出的第t个特征向量,
Figure BDA0003213350850000036
为双向因果卷积层中后向卷积操作输出的第t个特征向量,concat表示连接,将双向特征向量连接起来,得到双向因果卷积层的第t个输出特征向量Ft
进一步的,所述步骤5具体为:
计算代码特征Fy对于代码特征Fx的对齐特征
Figure BDA0003213350850000037
具体方法为:
通过稀疏重建,构建代码特征Fy对齐到代码特征Fx的目标函数:
Figure BDA0003213350850000038
其中Wyx为稀疏重建系数;β为平衡系数;
采用最小二乘法求解目标函数得到
Figure BDA0003213350850000039
Iy为大小为
Figure BDA00032133508500000310
Figure BDA00032133508500000311
的单位矩阵,T为转置,
Figure BDA00032133508500000312
为语句树序列STy的长度;从而得到
Figure BDA00032133508500000313
计算代码特征Fx对于代码特征Fy的对齐特征
Figure BDA00032133508500000314
具体方法为:
通过稀疏重建,构建代码特征Fx对齐到代码特征Fy的目标函数:
Figure BDA00032133508500000315
其中,Wxy为稀疏重建系数;
采用最小二乘法求解目标函数得到
Figure BDA00032133508500000316
从而得到
Figure BDA00032133508500000317
Figure BDA00032133508500000318
其中Ix为大小为
Figure BDA00032133508500000319
的单位矩阵,
Figure BDA00032133508500000320
为语句树序列STx的长度。
进一步的,所述克隆代码检测模型的损失函数为:
Figure BDA0003213350850000041
其中,N为训练集中样本的总个数,所述一个样本中包括两个代码,yj为第j个样本的标签,Sj为第j个样本中两个代码之间的相似度。
有益效果:本发明通过双向因果卷积网络对代码进行特征提取,可以双向捕获上下文信息,提高代码的表示能力,比其他方法采用的双向RNN网络参数更少,克隆代码检测的速度更快,准确率更高。通过稀疏重建对代码特征进行对齐操作,可以有效消除代码特征错位带来的影响。对于更加困难的克隆代码类型,即存在增加、删除、修改语句的相似代码,以及语义相同、语法结构差异很大的相似代码,本发明能够显著提高检测准确率和召回率。
附图说明
图1是本发明的方法流程图;
图2是代码对齐的方法示意图;
图3是双向因果卷积网络示意图,其中图(a)为双向因果卷积网络的结构示意图,图(b)为双向因果卷积模块的结构示意图。
具体实施方式
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
本实施例提供了一种基于特征对齐的克隆代码检测方法,具体为:将代码x和代码y输入至训练好的克隆代码检测模型中;所述训练好的克隆代码检测模型输出代码x和代码y的相似度,根据代码x和代码y的相似度判断代码x和代码y是否为相似的代码;所述克隆代码检测模型将原代码片段对转换为抽象语法树后,将所述抽象语法树分割,生成由若干个语句树组成的语句树序列,并构建语句向量矩阵,利用双向因果卷积网络提取特征,利用所提出的稀疏重建特征对齐方法将特征对齐,计算对齐后的代码特征相似度。
如图1和2所示,具体的克隆代码检测模型对代码x和代码y做如下处理:
(1)将代码x和代码y作为代码对,对于代码本,利用现有代码解析工具生成代码x和代码y的抽象语法树Tx和Ty
(2)根据抽象语法树的状态节点,将Tx划分为多个语句树,并将该多个语句树按照原抽象语法树先序遍历的顺序组成语句树序列STx;将Ty划分为多个语句树,并将这些多个语句树按照原抽象语法树先序遍历的顺序组成语句树序列STy;该步骤的目的是为了保持固定的顺序尽量不丢失原代码的结构信息,二是构成序列之后才能进行后续的特征提取;
(3)将所述语句树中的节点实体,利用Word2Vec进行词嵌入;通过语句编码器,将词嵌入后的语句树编码成语句向量,按照所述语句树序列的顺序,构建语句向量矩阵;则得到语句树序列STx的语句向量矩阵和语句树序列STy的语句向量矩阵;
(4)将所述语句向量矩阵输入双向因果卷积网络中进行特征提取,从而得到代码x的代码特征Fx,代码y的代码特征Fy
(5)将代码样本对的代码特征,利用稀疏重建生成对齐特征,也既代码特征Fy对于代码特征Fx的对齐特征
Figure BDA0003213350850000051
以及代码特征Fx对于代码特征Fy的对齐特征
Figure BDA0003213350850000052
(6)将对齐特征和原始特征相减并求绝对值,并沿语句树数量维进行最大池化,得到单个代码与另一个代码的相似度特征向量;
(7)将两个相似度特征向量在特征维度上进行连接,再将连接后的向量输入至连接层,将全连接层的输出输入至sigmoid函数层,sigmoid函数层输出代码x和代码y的相似度S。
本发明的一个实施例,在步骤4中,如图3所示,双向因果卷积网络中由两个双向因果卷积模块串联堆叠而成。双向因果卷积模块,由一个1×1卷积层与两个双向因果卷积层组成,捕获不同尺度的信息。其中两个双向因果卷积层的卷积核大小均为3*1,步长分别为1,2。
双向因果卷积层可表示为:
Figure BDA0003213350850000053
Figure BDA0003213350850000061
Figure BDA0003213350850000062
其中,
Figure BDA0003213350850000063
为双向因果卷积层的输入特征中第t个特征向量,t=0,1,2,…,T’;当对代码x进行特征提取时,T’为语句树序列STx的长度;当对代码y进行特征提取时,T’为语句树序列STy的长度;k为双向因果卷积层的卷积核大小,
Figure BDA0003213350850000064
为卷积核,f和b分别代表前向和后向,*=f或b;
Figure BDA0003213350850000065
为双向因果卷积层中前向卷积操作输出的第t个特征向量,
Figure BDA0003213350850000066
为双向因果卷积层中后向卷积操作输出的第t个特征向量,concat表示连接,将双向特征向量连接起来,得到双向因果卷积层的第t个输出特征向量Ft
双向因果卷积模块的输出由1×1卷积层与两个双向因果卷积层的输出相加获得。语句向量矩阵Xx与Xy经过双向因果卷积网络得到的特征分别为
Figure BDA0003213350850000067
Figure BDA0003213350850000068
Figure BDA0003213350850000069
Figure BDA00032133508500000610
为代码x的语句树长度,
Figure BDA00032133508500000611
为代码y的语句树长度,D表示特征的维度。
本发明的一个实施例,在步骤5具体为:
计算代码特征Fy对于代码特征Fx的对齐特征
Figure BDA00032133508500000612
具体方法为:
通过稀疏重建,构建代码特征Fy对齐到代码特征Fx的目标函数:
Figure BDA00032133508500000613
其中,
Figure BDA00032133508500000614
为稀疏重建系数,即对齐矩阵。β为平衡系数。采用最小二乘法可以解得:
Figure BDA00032133508500000615
其中
Figure BDA00032133508500000616
为矩阵Wyx的转置,
Figure BDA00032133508500000617
为求逆矩阵。
Figure BDA00032133508500000618
为单位矩阵。由此可以获得代码y对于代码x的对齐特征为:
Figure BDA00032133508500000619
计算代码特征Fx对于代码特征Fy的对齐特征
Figure BDA00032133508500000620
具体方法为:
通过稀疏重建,构建代码特征Fx对齐到代码特征Fy的目标函数:
Figure BDA0003213350850000071
其中,
Figure BDA0003213350850000072
为稀疏重建系数,采用最小二乘法可以解得:
Figure BDA0003213350850000073
其中
Figure BDA0003213350850000074
为矩阵Wxy的转置,
Figure BDA0003213350850000075
为求逆矩阵。
Figure BDA0003213350850000076
为单位矩阵,由此可以获得代码x对于代码y的对齐特征为:
Figure BDA0003213350850000077
本发明的一个实施例,在步骤6中,代码x的特征为Fx,代码y对于代码x的对齐特征为
Figure BDA0003213350850000078
对两个特征求差,并求绝对值
Figure BDA0003213350850000079
对其做最大值池化得到向量Vxy。代码y的特征为Fy,代码x对于代码y的对齐特征为
Figure BDA00032133508500000710
对两个特征求差,并求绝对值
Figure BDA00032133508500000711
对其做最大值池化得到向量Vyx
本发明的一个实施例,在步骤7中,将向量Vxy与Vyx在特征维度上进行连接,得到向量V,然后输入到全连接层FC中,经过sigmoid函数,得到相似度S。
克隆代码检测模型采用二值交叉熵损失函数,如下:
Figure BDA00032133508500000712
其中,N为训练集中样本的总个数,所述一个样本中包括两个代码,yj为第j个样本的标签(人工设置,若一个样本中两个代码为相似代码也即克隆代码则标签1,否则标签0),Sj为第j个样本中两个代码之间的相似度(相似度的值为0~1);训练过程,通过计算
Figure BDA00032133508500000713
并反向传播梯度,利用梯度下降来更新模型的参数,从而使
Figure BDA00032133508500000714
减小,迭代一定的次数或者
Figure BDA00032133508500000715
小于给定的值时结束,得到最终的克隆代码检测模型。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。

Claims (4)

1.一种基于特征对齐的克隆代码检测方法,其特征在于,将目标代码x和代码y输入至训练好的克隆代码检测模型中;所述训练好的克隆代码检测模型输出代码x和代码y的相似度,根据代码x和代码y的相似度判断代码x和代码y是否为相似的代码;所述克隆代码检测模型对输入的代码x和代码y做如下处理:
步骤1:利用代码解析工具生成代码x的抽象语法树Tx和代码y的抽象语法树Ty
步骤2:根据抽象语法树Tx的状态节点,将Tx划分为多个语句树,并将该多个语句树按照先序遍历的顺序组成语句树序列STx;根据抽象语法树Ty的状态节点,将Ty划分为多个语句树,并将该多个语句树按照先序遍历的顺序组成语句树序列STy
步骤3:构建语句向量矩阵:对每个语句树序列中每个语句树的节点实体进行词嵌入,采用编码器将词嵌入后的语句树编码成语句向量,根据该语句树序列将与该语句树序列对应的语句向量构成语句向量矩阵;
步骤4:采用双向因果卷积网络对代码x的语句向量矩阵Xx和代码y的语句向量矩阵Xy分别进行特征提取,从而得到代码x的代码特征Fx,代码y的代码特征Fy
步骤5:计算代码特征Fy对于代码特征Fx的对齐特征
Figure FDA0003668635520000011
以及代码特征Fx对于代码特征Fy的对齐特征
Figure FDA0003668635520000012
步骤6:计算
Figure FDA0003668635520000013
并分别对Rxy和Ryx进行最大池化操作得到相似度特征向量Vxy和Vyx
步骤7:将Vxy和Vyx在特征维度上进行连接,再将连接后的向量输入至全连接层,将全连接层的输出输入至sigmoid函数层,sigmoid函数层输出代码x和代码y的相似度S;
所述步骤5具体为:
计算代码特征Fy对于代码特征Fx的对齐特征
Figure FDA0003668635520000014
具体方法为:
通过稀疏重建,构建代码特征Fy对齐到代码特征Fx的目标函数:
Figure FDA0003668635520000015
其中Wyx为稀疏重建系数;β为平衡系数;
采用最小二乘法求解目标函数得到
Figure FDA0003668635520000021
Iy为大小为
Figure FDA0003668635520000022
Figure FDA00036686355200000216
的单位矩阵,T为转置,
Figure FDA0003668635520000023
为语句树序列STy的长度;从而得到
Figure FDA0003668635520000024
计算代码特征Fx对于代码特征Fy的对齐特征
Figure FDA0003668635520000025
具体方法为:
通过稀疏重建,构建代码特征Fx对齐到代码特征Fy的目标函数:
Figure FDA0003668635520000026
其中,Wxy为稀疏重建系数;
采用最小二乘法求解目标函数得到
Figure FDA0003668635520000027
从而得到
Figure FDA0003668635520000028
Figure FDA0003668635520000029
其中Ix为大小为
Figure FDA00036686355200000210
的单位矩阵,
Figure FDA00036686355200000211
为语句树序列STx的长度。
2.根据权利要求1所述的一种基于特征对齐的克隆代码检测方法,其特征在于,所述步骤4中双向因果卷积网络包括相互连接的第一双向因果卷积模块和第二双向因果卷积模块,第一、二双向因果卷积模块结构相同,均包括1×1卷积层,第一双向因果卷积层和第二双向因果卷积层;将1×1卷积层、第一双向因果卷积层和第二双向因果卷积层输出的结果相加作为双向因果卷积模块的输出;所述第一双向因果卷积层为卷积核为3×1的双向因果卷积层,第二双向因果卷积层为卷积核为3×1且步长为2的双向因果卷积层。
3.根据权利要求2所述的一种基于特征对齐的克隆代码检测方法,其特征在于,所述双向因果卷积层对输入的特征进行如下操作:
Figure FDA00036686355200000212
Figure FDA00036686355200000213
Figure FDA00036686355200000214
其中,
Figure FDA00036686355200000215
为双向因果卷积层的输入特征中第t个特征向量,t=0,1,2,…,T’;当对代码x进行特征提取时,T’为语句树序列STx的长度;当对代码y进行特征提取时,T’为语句树序列STy的长度;k为双向因果卷积层的卷积核大小,
Figure FDA0003668635520000031
为卷积核,f和b分别代表前向和后向,*=f或b;
Figure FDA0003668635520000032
为双向因果卷积层中前向卷积操作输出的第t个特征向量,
Figure FDA0003668635520000033
为双向因果卷积层中后向卷积操作输出的第t个特征向量,concat表示连接,将双向特征向量连接起来,得到双向因果卷积层的第t个输出特征向量Ft
4.根据权利要求1所述的一种基于特征对齐的克隆代码检测方法,其特征在于,所述克隆代码检测模型的损失函数为:
Figure FDA0003668635520000034
其中,N为训练集中样本的总个数,一个样本中包括两个代码,yj为第j个样本的标签,Sj为第j个样本中两个代码之间的相似度。
CN202110936377.8A 2021-08-16 2021-08-16 一种基于特征对齐的克隆代码检测方法 Active CN113656066B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110936377.8A CN113656066B (zh) 2021-08-16 2021-08-16 一种基于特征对齐的克隆代码检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110936377.8A CN113656066B (zh) 2021-08-16 2021-08-16 一种基于特征对齐的克隆代码检测方法

Publications (2)

Publication Number Publication Date
CN113656066A CN113656066A (zh) 2021-11-16
CN113656066B true CN113656066B (zh) 2022-08-05

Family

ID=78479194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110936377.8A Active CN113656066B (zh) 2021-08-16 2021-08-16 一种基于特征对齐的克隆代码检测方法

Country Status (1)

Country Link
CN (1) CN113656066B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201406B (zh) * 2021-12-16 2024-02-02 中国电信股份有限公司 基于开源组件的代码检测方法、系统、设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104407872A (zh) * 2014-12-04 2015-03-11 北京邮电大学 代码克隆的检测方法
CN109062910A (zh) * 2018-07-26 2018-12-21 苏州大学 基于深度神经网络的句子对齐方法
CN109101235A (zh) * 2018-06-05 2018-12-28 北京航空航天大学 一种软件程序的智能解析方法
CN110059188A (zh) * 2019-04-11 2019-07-26 四川黑马数码科技有限公司 一种基于双向时间卷积网络的中文情感分析方法
CN111562943A (zh) * 2020-04-29 2020-08-21 海南大学 一种基于事件嵌入树及gat网络的代码克隆检测方法和装置
CN112035165A (zh) * 2020-08-26 2020-12-04 山谷网安科技股份有限公司 基于同构网络的代码克隆检测方法及系统
CN112215013A (zh) * 2020-11-02 2021-01-12 天津大学 一种基于深度学习的克隆代码语义检测方法
CN112306494A (zh) * 2020-12-03 2021-02-02 南京航空航天大学 一种基于卷积和循环神经网络的代码分类及聚类方法
CN112394973A (zh) * 2020-11-23 2021-02-23 山东理工大学 一种基于伪孪生网络的多语言代码剽窃检测方法
CN112560502A (zh) * 2020-12-28 2021-03-26 桂林电子科技大学 一种语义相似度匹配方法、装置及存储介质
CN112596736A (zh) * 2020-12-24 2021-04-02 哈尔滨工业大学 一种基于语义的跨指令架构二进制代码相似性检测方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110769B2 (en) * 2010-04-01 2015-08-18 Microsoft Technology Licensing, Llc Code-clone detection and analysis
US20190265955A1 (en) * 2016-07-21 2019-08-29 Ramot At Tel-Aviv University Ltd. Method and system for comparing sequences
CN112507337A (zh) * 2020-12-18 2021-03-16 四川长虹电器股份有限公司 基于语义分析的恶意JavaScript代码检测模型的实现方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104407872A (zh) * 2014-12-04 2015-03-11 北京邮电大学 代码克隆的检测方法
CN109101235A (zh) * 2018-06-05 2018-12-28 北京航空航天大学 一种软件程序的智能解析方法
CN109062910A (zh) * 2018-07-26 2018-12-21 苏州大学 基于深度神经网络的句子对齐方法
CN110059188A (zh) * 2019-04-11 2019-07-26 四川黑马数码科技有限公司 一种基于双向时间卷积网络的中文情感分析方法
CN111562943A (zh) * 2020-04-29 2020-08-21 海南大学 一种基于事件嵌入树及gat网络的代码克隆检测方法和装置
CN112035165A (zh) * 2020-08-26 2020-12-04 山谷网安科技股份有限公司 基于同构网络的代码克隆检测方法及系统
CN112215013A (zh) * 2020-11-02 2021-01-12 天津大学 一种基于深度学习的克隆代码语义检测方法
CN112394973A (zh) * 2020-11-23 2021-02-23 山东理工大学 一种基于伪孪生网络的多语言代码剽窃检测方法
CN112306494A (zh) * 2020-12-03 2021-02-02 南京航空航天大学 一种基于卷积和循环神经网络的代码分类及聚类方法
CN112596736A (zh) * 2020-12-24 2021-04-02 哈尔滨工业大学 一种基于语义的跨指令架构二进制代码相似性检测方法
CN112560502A (zh) * 2020-12-28 2021-03-26 桂林电子科技大学 一种语义相似度匹配方法、装置及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Cross-Language Clone Detection by Learning Over Abstract Syntax Trees;Daniel Perez et al.;《2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR)》;20190829;第1-14页 *
Deep learning code fragments for code clone detection;Martin White et al.;《2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE)》;20161006;第1-15页 *
SCDetector: Software Functional Clone Detection Based on Semantic Tokens Analysis;Yueming Wu et al.;《2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)》;20201224;第1-16页 *

Also Published As

Publication number Publication date
CN113656066A (zh) 2021-11-16

Similar Documents

Publication Publication Date Title
CN113641820B (zh) 基于图卷积神经网络的视角级文本情感分类方法及系统
CN110765966B (zh) 一种面向手写文字的一阶段自动识别与翻译方法
US11256487B2 (en) Vectorized representation method of software source code
CN110059188B (zh) 一种基于双向时间卷积网络的中文情感分析方法
CN108763191B (zh) 一种文本摘要生成方法及系统
CN113312500A (zh) 一种面向大坝安全运行的事件图谱构建方法
CN111680494A (zh) 相似文本的生成方法及装置
CN113641819A (zh) 基于多任务稀疏共享学习的论辩挖掘系统及方法
CN116245513A (zh) 基于规则库的自动化运维系统及其方法
CN116523583A (zh) 电子商务数据分析系统及其方法
CN113656066B (zh) 一种基于特征对齐的克隆代码检测方法
CN114925195A (zh) 一种融合词汇编码与结构编码的标准内容文本摘要生成方法
CN117036778A (zh) 一种基于图文转换模型的安全隐患识别标注方法
CN116992304A (zh) 基于人工智能的政策匹配分析系统及其方法
CN116304748A (zh) 一种文本相似度计算方法、系统、设备及介质
CN114169447B (zh) 基于自注意力卷积双向门控循环单元网络的事件检测方法
CN114153942B (zh) 一种基于动态注意力机制的事件时序关系抽取方法
CN116340506A (zh) 一种基于bert和无池化卷积神经网络的文本分类方法
CN114692624A (zh) 一种基于多任务迁移的信息抽取方法、装置及电子设备
CN112215301B (zh) 基于卷积神经网络的影像直线探测方法
CN117787287A (zh) 基于大模型的事故处理方法、系统及存储介质
CN117348877A (zh) 基于人工智能技术的技术开发系统及方法
CN116129251A (zh) 办公桌椅的智能化制造方法及其系统
CN113568969B (zh) 信息抽取方法、装置、设备以及计算机可读存储介质
CN113947085A (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