[发明专利]一种基于CodeBert和空间结构的代码缺陷预测方法在审
申请号: | 202210849413.1 | 申请日: | 2022-07-19 |
公开(公告)号: | CN115185730A | 公开(公告)日: | 2022-10-14 |
发明(设计)人: | 鞠小林;沈逸恒;沈昊;陈翔 | 申请(专利权)人: | 南通大学 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F8/75;G06N3/04;G06N3/08 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 张俊俊 |
地址: | 226019 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 codebert 空间结构 代码 缺陷 预测 方法 | ||
1.一种基于CodeBert和空间结构的代码缺陷预测方法,其特征在于,包括以下步骤:
S1、挖掘Git Hub中Stars数排名靠前的java项目,然后通过爬虫程序从issues中收集提交的缺陷代码段、缺陷描述及修复后的代码段,对非英文语言的缺陷描述翻译为英文,得到数据集D,设定数据集的格式为项目名,缺陷代码,修复后代码,缺陷描述;
S2、使用CodeBert提取代码语义特征,并通过BERT-whitening进行关键特征提取和降维;
S3、考虑数据集代码的抽象语法树信息,通过最短路径长度表示代码空间结构信息;
S4、对构建的数据集随机划分成训练集、验证集和测试集,同时构建bi-LSTM及LSTM神经网络;
S5、将步骤S2中提取的语义特征向量输入bi-LSTM神经网络,其最后一层输出hiddenstate信息;
S6、用所述步骤S3得到的代码空间结构信息和所述步骤S5得到的hidden state作为输入重新进入LSTM神经网络;
S7、对所述步骤S5和S7得到的hidden state引入Attention机制进一步获取比较重要的hidden state信息;
S8、使用softmax回归模型对步骤S7得到的hidden state信息归一化,从而判断代码是否有缺陷。
2.根据权利要求1所述的基于CodeBert和空间结构的代码缺陷预测方法,其特征在于,所述S2包括如下步骤:
S21:对于给定的代码段,根据大小写规则对其进行分割,得到输入序列;
S22:将序列输入到CodeBert中,提取输出中第一层和最后一层的隐藏状态,并对它们取平均值,得到代码段的语义特征向量;
S23:使用BERT-whitening来处理语义向量,通过线性变换进行关键特征提取和降维。
3.根据权利要求1所述的基于CodeBert和空间结构的代码缺陷预测方法,其特征在于,所述S3包括如下步骤:
S31:首先根据solidity-parser-antlr将代码生成相应的抽象语法树,记作ASTs;
S32:使用广度优先搜索的算法生成AST的最短路径长度矩阵,记作A;
S33:对矩阵A中的非零元素Aij取倒数,得到空间结构信息矩阵,记作Aast。
4.根据权利要求1所述的基于CodeBert和空间结构的代码缺陷预测方法,其特征在于,所述S4包括如下步骤:
S41:对于S1得到的数据集进行划分,按照80%:10%:10%的比例进行随机划分训练集、测试集和验证集;
S42:神经网络使用bi-LSTM和LSTM堆叠,bi-LSTM在前,LSTM在后,同时将bi-LSTM的隐状态向量hi作为LSTM的输入。
5.根据权利要求1所述的基于CodeBert和空间结构的代码缺陷预测方法,其特征在于,所述步骤S5将S2得到的语义特征向量Xi作为bi-LSTM的输入,其最后一层的隐状态向量为hi。
6.根据权利要求1所述的基于CodeBert和空间结构的代码缺陷预测方法,其特征在于,所述步骤S6将步骤S3得到的空间结构信息矩阵Aast和步骤S5得到的隐状态向量hi作为LSTM的输入,其最后一层的隐状态向量为hj。
7.根据权利要求1所述的基于CodeBert和空间结构的代码缺陷预测方法,其特征在于,所述步骤S7引入Attention机制,对所有step的hidden state进行加权,把注意力集中到比较重要的hidden state信息上。
8.根据权利要求1所述的基于CodeBert和空间结构的代码缺陷预测方法,其特征在于,所述步骤S8使用softmax回归模型对步骤S7得到的hidden state信息归一化,从而判断代码是否有缺陷。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南通大学,未经南通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210849413.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:数据库的监控方法及装置
- 下一篇:一种显示装置