专利汇可以提供一种基于图卷积神经网络对软件缺陷预测方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于图 卷积神经网络 的 软件 缺陷 预测方法,利用GCN 算法 训练模型对输入的代码文件进行缺陷类型的预测。本发明通过Bert模型将软件的源代码文件进行特征提取,并通过构建抽象语法树实现了源代码中的文件之间的关联,然后使用关联算法Apriori将代码中可能具有缺陷传递的文件进行关联,最后将源文件的 特征向量 与特征向量之间的关联关系作为邻接矩阵作为输入,实现了对GCN模型的训练。当判断 软件代码 文件是否存在缺陷时,将代码文件自动转化为其对应的特征向量向量作为模型的输入,GCN模型输出代码文件可能存在缺陷,从而大大减少了测试人员的工作量。,下面是一种基于图卷积神经网络对软件缺陷预测方法专利的具体信息内容。
1.一种基于图卷积神经网络软件缺陷预测方法,其特征在于,具体操作步骤如下:
步骤1,将原始数据集复制为相同的两份,分别命名为data1、data2;
步骤2,将data1中的数据文件进行遍历读取,然后将文件中的数据进行格式化处理后保存到文件夹Pro-data1中;
步骤3,Pro-data1文件夹下的全部文件进行一次备份作为训练集;
步骤4,将步骤2中Pro-data1文件夹下的所有文件中的内容整合到文件total_data.txt中,形成Bert模型训练集数据;
步骤5,调用Embedding中流行的Bert模型,并初始化Bert模型权重参数;
步骤6,使用步骤4中total_data.txt中的数据优化步骤5中构建的Bert模型参数,生成最终的优化Bert模型;
步骤7,依次读取步骤3中训练集文件夹下的文件内容并输入到步骤6中构建的优化Bert模型中,然后对文件内容中每一词汇产生的特征向量进行相加,最后建立一张文件名、特征向量、缺陷标签的映射关系表table1;
步骤8,构建正则表达式对data2数据集中源文件内容进行提取,然后通过语法解析对data2项目源文件进行构建语法树,分析语法树中不同文件的调用关系,并将文件之间调用关系以邻接矩阵的方式存储为matrix1;
步骤9,依照步骤7中文件与特征向量的映射表与步骤8中形成的文件调用关系邻接矩阵分析特征向量之间的调用关系,并将调用关系存储为matrix2;
步骤10,对步骤7中产生的特征向量采用关联算法Apriori进行处理,通过关联算法判断特征向量之间是否存在因果关系,若存在因果关系,则在步骤9中特征向量关系矩阵matrix2中进行记录,不存在则不进行记录;
步骤11,构建GCN模型,并初始化模型中的参数;
步骤12,将步骤7中产生的特征向量和步骤9中的matrix2作为特征向量之间的拓扑信息输入到GCN模型中,然后训练GCN模型参数,得到训练好的GCN模型用于代码的缺陷预测;
步骤13,对软件具有缺陷的源文件进行读取,并采用步骤7中的方式形成表征测试集文件的特征向量,然后输入步骤12中训练好的GCN模型;GCN模型输出代码缺陷类型的预测结果。
2.根据权利要求1所述的基于图卷积神经网络的软件缺陷预测方法,其特征在于,步骤
13所述代码缺陷类型包括词法缺陷、语法缺陷、语义缺陷、可维护性缺陷四大类。
3.根据权利要求1所述的基于图卷积神经网络的软件缺陷预测方法,其特征在于,步骤
6中采用基于Embedding的方法,将项目源文件用特征向量表示,具体步骤如下:
步骤6.1,下载安装python第三方库Spacy;
步骤6.2,使用Spacy,并调用Bert模型;
步骤6.3,初始化Bert模型权重参数,使其本身具有一定语义理解能力;
步骤6.4,向步骤6.3中的Bert模型中加载步骤4中total_data.txt数据文件,开始对Bert模型的权重参数进行微调;
步骤6.5,保存训练完成的Bert模型。
4.根据权利要求1所述的基于图卷积神经网络的软件缺陷预测方法,其特征在于,步骤
7中采用基于Bert的方法,将项目源文件用特征向量表示,具体步骤如下:
步骤7.1,依次读取步骤3中训练集文件夹下的文件,并将文件中的缺陷标签与文件名保存到table1的一行中,最后为table1建立一列空白列;
步骤7.2,将步骤7.1中的读取到的文件内容以空格符为间隔,依次输入步骤6中的Bert模型中,输出对应字符串的字符向量;
步骤7.3,将步骤7.2每一个文件中输出的字符向量进行相加,最后形成一个表示该文件的特征向量;
步骤7.4,将步骤7.3中形成的特征向量追加到步骤7.1形成的table1中与之文件名对应空白单元格中。
5.根据权利要求1所述的基于图卷积神经网络的软件缺陷预测方法,其特征在于,步骤
8中采用基于抽象语法树的方式查看文件之间的调用关系,具体步骤如下:
步骤8.1,读取步骤7中构建的table1中的文件名;
步骤8.2,构建以步骤8.1中读取的文件名为行索引和列索引的邻接矩阵,将用其表示文件之间的调用关系,此时这个邻接矩阵为单位矩阵matrix1;
步骤8.3,设计正则表达式对源代码文件进行结构上的提取形成源代码的tokens;
步骤8.4,将数据集data2文件中的内容输入到步骤8.3中设计的正则表达式中并进行语法解析,输出data2中不同文件的调用关系;
步骤8.5,将步骤8.4中不同文件之间的调用关系进行记录,记录方式为在matrix1中有调用关系的文件名处的索引值改为1;
步骤8.6,通过步骤8.4中的调用关系不断的对步骤8.5中的matrix1的索引值进行修改,最终将这个修改后的邻接矩阵作为整个数据集中文件之间的拓扑结构。
6.根据权利要求1所述的基于图卷积神经网络的软件缺陷预测方法,其特征在于,步骤
11中通过训练图卷积神经网络模型实现对代码缺陷的预测,具体步骤如下:
步骤11.1:使用python三方库Keras定义基本的图卷积类,构建GCN各层配置信息;
步骤11.2:随机初始化GCN模型各种权重偏置参数;
步骤11.3:将步骤7中的文件特征向量和步骤10中的matrix2作为输入,训练GCN模型。
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
一种针对Java语言的软件缺陷检测与提取方法 | 2020-05-12 | 891 |
基于网络嵌入的软件缺陷预测方法及系统 | 2020-05-13 | 696 |
一种基于卷积神经网络的软件缺陷定位方法、装置和介质 | 2020-05-19 | 683 |
一种软件的开发方法及开发系统 | 2020-05-08 | 262 |
一种新的动态反馈和改进型补丁评价的软件自动修复方法 | 2020-05-12 | 224 |
一种基于一体化开发平台的软件工件关系的挖掘方法 | 2020-05-14 | 579 |
基于多目标优化的软件缺陷定位方法 | 2020-05-20 | 668 |
一种基于大数据的通信设备检修管理系统 | 2020-05-08 | 404 |
一种基于频谱定位和可视化定位软件缺陷的方法 | 2020-05-19 | 16 |
一种基于数据不平衡的软件缺陷预测方法 | 2020-05-18 | 239 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。