System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于软件缺陷检测的,具体地涉及一种项目评审软件缺陷预测方法及系统。
技术介绍
1、近年来随着我国经济增速的放缓,各行各业都在迈向更高水平的发展,而在这个转型升级的过程中,“互联网+”模式的推动功不可没,在电网行业中,智能化、信息化对于优化供电质量、提升电网运行效率扮演着不可或缺的角色,然而,随着信息化项目的快速涌现,电力综合项目评审却面临着瓶颈,因此,如何提高信息对接、处理速度、减少信息传达偏差的影响正在成为学界和业内专家们关注的热门话题;
2、由于人力资源有限、评审类型繁多等种种因素令评审工作变得异常困难,因此现在部分企业开始通过一些项目评审软件对一些信息化电力项目进行评审,但项目评审软件在使用时可能存在一些缺陷,影响项目的评审与运行使用,在现有的软件缺陷预测的研究中,无法提取特征的有效信息且预测模型考虑特征不够充分,导致预测性能较差,预测精度较低。
技术实现思路
1、为了解决上述技术问题,本专利技术提供了一种项目评审软件缺陷预测方法及系统,用于解决现有技术中的技术问题。
2、一方面,该专利技术提供以下技术方案,一种项目评审软件缺陷预测方法,包括:
3、获取项目评审软件的源代码,提取所述源代码的语法树,并基于所述语法树提取所述项目评审软件的第一特征;
4、获取所述项目评审软件在预设时间段内的历史运行数据,对所述历史运行数据进行不平衡采样处理,以得到初始数据特征;
5、计算所述初始数据特征的期望验证值,并基于所述
6、对所述第一特征与所述第二特征进行归一化处理,以分别得到第一处理特征与第二处理特征;
7、获取训练数据集并将所述训练数据集输入预设预测模型中进行训练,以得到最终预测模型,将所述第一处理特征与所述第二处理特征进行特征融合,以得到融合特征,将所述融合特征输入所述最终预测模型中进行预测,以输出缺陷预测结果。
8、相比现有技术,本申请的有益效果为:本申请首先获取项目评审软件的源代码,提取所述源代码的语法树,并基于所述语法树提取所述项目评审软件的第一特征;之后获取所述项目评审软件在预设时间段内的历史运行数据,对所述历史运行数据进行不平衡采样处理,以得到初始数据特征;而后计算所述初始数据特征的期望验证值,并基于所述期望验证值对所述初始数据特征进行数据筛选,以得到第二特征;再之后对所述第一特征与所述第二特征进行归一化处理,以分别得到第一处理特征与第二处理特征;最后获取训练数据集并将所述训练数据集输入预设预测模型中进行训练,以得到最终预测模型,将所述第一处理特征与所述第二处理特征进行特征融合,以得到融合特征,将所述融合特征输入所述最终预测模型中进行预测,以输出缺陷预测结果,本专利技术充分提取了项目评审软件的源代码与运行数据的特征,并充分利用两特征的有效信息对项目评审软件的缺陷进行预测,提升了预测模型的预测精度,同时本专利技术对第二特征进行筛选,可剔除掉一些冗余、无关的特征,避免出现过拟合的问题,进一步提升了模型的预测精度。
9、较佳的,所述获取项目评审软件的源代码,提取所述源代码的语法树,并基于所述语法树提取所述项目评审软件的第一特征的步骤包括:
10、获取项目评审软件的源代码,对所述源代码进行读取,以得到读取文件;
11、将所述读取文件转换为字符串文件并使用解析器对所述字符串文件进行解析,以得到若干节点,基于所述节点确定所述源代码的语法树,每个所述节点分别表示所述源代码的子代码文件;
12、基于节点类型对若干所述节点进行筛选,以得到筛选节点,基于所述筛选节点对所述语法树进行优化替换,以得到优化语法树;
13、基于预设遍历规则对所述优化语法树进行遍历,以得到遍历语法信息;
14、将所述遍历语法信息进行数值向量转化,以得到所述项目评审软件的第一特征。
15、较佳的,所述基于预设遍历规则对所述优化语法树进行遍历,以得到遍历语法信息的步骤包括:
16、基于所述子代码文件的类型确定所述优化语法树的根节点,将除所述根节点之外的所有节点作为子节点;
17、创建访问字符串数组,以所述根节点为入口对所述优化语法树进行访问;
18、当所述访问字符串数组访问到任意子节点时,将开始标签作为前缀并将该子节点的名称进行拼接并将拼接得到的字符串添加到所述访问字符串数组中;
19、当所述访问字符串数组访问到该子节点下的所有子节点之后,将所述访问字符串数组退回至该子节点,并将终止标签作为前缀并将该子节点的名称进行拼接并将拼接得到的字符串添加到所述访问字符串数组中;
20、当访问完所述根节点下的所有子节点之后,完成遍历过程,并输出遍历语法信息。
21、较佳的,所述将所述遍历语法信息进行数值向量转化,以得到所述项目评审软件的第一特征的步骤包括:
22、从所述遍历语法信息中生成词汇表,对所述词汇表中的所有词进行独热编码,以得到编码序列;
23、在所述编码序列中选取一个词编码作为特征词,在所述特征词前后分别选取若干个词编码作为训练词;
24、将所述训练词输入预设输出模型中进行训练并通过反向传播对所述预设输出模型进行更新,以得到更新输出模型,将所述特征词输入所述更新输出模型中,将所述更新输出模型输出的权重矩阵作为所述项目评审软件的第一特征。
25、较佳的,所述获取所述项目评审软件在预设时间段内的历史运行数据,对所述历史运行数据进行不平衡采样处理,以得到初始数据特征的步骤包括:
26、获取所述项目评审软件在预设时间段内的历史运行数据,基于所述历史运行输出的变量类型将所述历史运行数据分为第一类型数据与第二类型数据;
27、将所述第一类型数据存入第一数组中,将所述第二类型数据存入第二数组中,并在所述第一素组中其中一个第一类型数据作为基准数据,计算所述基准数据与其余第一类型数据之间的欧式距离;
28、基于欧式距离选取与所述基准数据最近的a个第一类型数据,根据依赖度将a个第一类型数据进行排序并将排序后的a个第一类型数据存入排序数组中;
29、按预设选取规则选取所述排列数组中的数据,以得到若干挑选数据,按基于所述挑选数据并按照预设公式将所述排列数组中的数据进行合成,将合成后的数据加入所述第一数组中,直至所述第一数组中的数据数量与所述第二数组中的数据数量相同,其中预设公式为:
30、;
31、式中,为第个合成后的数据,为挑选数据,为0-1之间的随机数,为排序数组;
32、将数据数量相同的第一数组与第二数组存入特征选择集中,计算所述特征选择集中所有数据之间的特征值,将特征值最大的前n个特征数据作为初始数据特征。
33、较佳的,所述计算所述初始数据特征的期望验证值,并基于所述期望验证值对所述初始数据特征进行数据筛选,以得到第二特征的步骤本文档来自技高网...
【技术保护点】
1.一种项目评审软件缺陷预测方法,其特征在于,包括:
2.根据权利要求1所述的项目评审软件缺陷预测方法,其特征在于,所述获取项目评审软件的源代码,提取所述源代码的语法树,并基于所述语法树提取所述项目评审软件的第一特征的步骤包括:
3.根据权利要求2所述的项目评审软件缺陷预测方法,其特征在于,所述基于预设遍历规则对所述优化语法树进行遍历,以得到遍历语法信息的步骤包括:
4.根据权利要求2所述的项目评审软件缺陷预测方法,其特征在于,所述将所述遍历语法信息进行数值向量转化,以得到所述项目评审软件的第一特征的步骤包括:
5.根据权利要求1所述的项目评审软件缺陷预测方法,其特征在于,所述获取所述项目评审软件在预设时间段内的历史运行数据,对所述历史运行数据进行不平衡采样处理,以得到初始数据特征的步骤包括:
6.根据权利要求1所述的项目评审软件缺陷预测方法,其特征在于,所述计算所述初始数据特征的期望验证值,并基于所述期望验证值对所述初始数据特征进行数据筛选,以得到第二特征的步骤具体为:
7.根据权利要求1所述的项目评审软件
8.一种项目评审软件缺陷预测系统,其特征在于,所述系统包括:
9.一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的项目评审软件缺陷预测方法。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的项目评审软件缺陷预测方法。
...【技术特征摘要】
1.一种项目评审软件缺陷预测方法,其特征在于,包括:
2.根据权利要求1所述的项目评审软件缺陷预测方法,其特征在于,所述获取项目评审软件的源代码,提取所述源代码的语法树,并基于所述语法树提取所述项目评审软件的第一特征的步骤包括:
3.根据权利要求2所述的项目评审软件缺陷预测方法,其特征在于,所述基于预设遍历规则对所述优化语法树进行遍历,以得到遍历语法信息的步骤包括:
4.根据权利要求2所述的项目评审软件缺陷预测方法,其特征在于,所述将所述遍历语法信息进行数值向量转化,以得到所述项目评审软件的第一特征的步骤包括:
5.根据权利要求1所述的项目评审软件缺陷预测方法,其特征在于,所述获取所述项目评审软件在预设时间段内的历史运行数据,对所述历史运行数据进行不平衡采样处理,以得到初始数据特征的步骤包括:
6.根据权利要求...
【专利技术属性】
技术研发人员:诸德律,胡亚山,肖莹,仓敏,王瑞武,徐佳琪,陈丹,吴雪,卢璐,孙海森,张华,
申请(专利权)人:国网江苏省电力有限公司经济技术研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。