[发明专利]一种基于深度学习的语义相似代码在线检测方法有效
申请号: | 202110184538.2 | 申请日: | 2021-02-10 |
公开(公告)号: | CN112835620B | 公开(公告)日: | 2022-03-25 |
发明(设计)人: | 李光杰;唐艺;张翔;易比一;侯胜杰 | 申请(专利权)人: | 中国人民解放军军事科学院国防科技创新研究院 |
主分类号: | G06F8/75 | 分类号: | G06F8/75;G06F16/33;G06N3/08 |
代理公司: | 北京正阳理工知识产权代理事务所(普通合伙) 11639 | 代理人: | 张利萍 |
地址: | 100071 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 深度 学习 语义 相似 代码 在线 检测 方法 | ||
1.一种基于深度学习技术的语义相似代码在线检测方法,其特征在于,包括以下步骤:
步骤1:利用静态代码分析技术,从样本库中提取函数信息;
首先,利用静态解析技术对样本库中的源代码进行分析,提取每个函数的结构信息和文本标识符信息,然后,将提取到的每个函数信息作为一条记录存储在数据库中;其中,样本库存储开源项目源代码数据,包括已经标注好的语义相似代码和语义不相似代码;
步骤2:利用自然语言处理技术,对提取到的函数结构信息进行预处理;
步骤2.1:对步骤1中提取到的函数结构信息进行分类处理和符号化表示;
步骤2.2:对步骤1中提取到的函数文本标识符信息进行自然语言处理,包括分词、缩写词扩展和词性标注,具体如下:
将每个标识符名称Name分割为一系列单词和缩写词w1,w2,…,wi,…,wk,如果wi为缩写词,则利用标识符扩展技术扩展为单词,然后执行步骤2.3;否则,直接执行步骤2.3;
步骤2.3:利用词性标注技术,对步骤2.2得到的单词序列进行词性标注;
步骤3:将单词信息和符号化信息,进行数据向量化表示;
步骤3.1:将步骤2.2得到的每个单词wi映射为一个向量Vi,因此,一个标识符映射为一个向量系列nameV=V1,V2,…,Vi,…,Vk,函数的标识符文本映射为idV=name1V,name2V,…,nameiV,…,nametV;共包括t个name,每个name包括k个V;
步骤3.2:将步骤2.3得到的词性标注信息,映射为一个向量posV;
步骤3.3:将步骤2得到的符号化信息,映射为一个向量sigV;
步骤3.4:将向量idV、posV和sigV连接生成输入函数的向量化表示methodV,并且步骤3.4中的向量连接顺序不能改变;
步骤4:生成训练数据集;
步骤4.1:将步骤3中得到的任意两个向量method1V和method2V连接,作为神经网络的输入数据inputV;
步骤4.2:将样本库中标注的两个函数是否为语义相似代码的标签信息,设定为神经网络的输出数据OutputV;
步骤4.3:将步骤4.1的输入数据InputV和步骤4.2的输出数据OutputV连接生成训练数据trainV;
步骤5:训练神经网络,得到网络模型DeepCloneClassifier;
步骤5.1:初始化一个包括输入层、隐含层和输出层的深度神经网络;
步骤5.2:将步骤4得到的训练集数据,依次输入神经网络,训练网络得到模型DeepCloneClassifier;
步骤6:生成测试集;
步骤6.1:对于待检测的开源代码,重复执行步骤1到步骤3,提取每个函数的特征信息并进行向量化表示;
步骤6.2:将步骤6.1生成的每个向量,与步骤3生成的每个向量依次进行连接,得到测试集;
步骤7:查询神经网络,进行预测;
步骤7.1:将步骤6得到的测试集数据,依次输入网络模型DeepCloneClassifier进行查询;
步骤7.2:将模型输出结果高于阈值T的测试数据标记为语义相似代码,从而完成语义相似代码在线检测。
2.如权利要求书1所述的一种基于深度学习技术的语义相似代码在线检测方法,其特征在于,步骤1中,所述结构信息包括赋值语句、函数调用语句、选择语句和循环语句。
3.如权利要求书1所述的一种基于深度学习技术的语义相似代码在线检测方法,其特征在于,步骤1中,所述文本标识符信息包括 函数名称、形参名称、函数内访问的所有变量名称和函数内调用的所有方法名称。
4.如权利要求书1所述的一种基于深度学习技术的语义相似代码在线检测方法,其特征在于,步骤7中,阈值T根据学习和预测结果动态调整。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军军事科学院国防科技创新研究院,未经中国人民解放军军事科学院国防科技创新研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110184538.2/1.html,转载请声明来源钻瓜专利网。