【技术实现步骤摘要】
一种基于神经网络的功能代码评估方法和装置
[0001]本申请涉及计算机
,具体涉及一种基于神经网络的功能代码评估方法和装置
。
技术介绍
[0002]目前功能代码检测主要集中在代码书写的规范性
、
潜在安全漏洞等角度评估,未能从企业内部特定功能实现角度进行评估
。
主要表现在如下三方面:
[0003](1)
当前对研发人员编写的实现特定功能代码的检测多集中在功能测试后,开发阶段仅有人工的代码走查,不利于安全缺陷的提前发现,且检测的智能化水平较低
。
[0004](2)
当前特定功能代码特征信息的提取和检测,常使用程序容量法
、
机器码识别法等,缺乏一定灵活性和普适性,不适用于特定功能的检测
。
[0005](3)
当前人工智能中神经网络技术常应用在代码相似性和漏洞检测等方面,但在特定功能例如企业内部安全需求功能的代码评估方面的应用较少
。
技术实现思路
[0006]本申请的目的在于提出一种基于神经网络的功能代码评估方法和装置,以解决上述提及的一个或多个问题
。
[0007]依据本申请的第一方面,提出了一种基于神经网络的功能代码评估方法,包括如下步骤:
[0008]从实现特定功能的标准代码中获取正案例的目标代码片段,从研发人员编写的对应功能的实现代码中获取正案例的样本代码片段;
[0009]对所述正案例的目标代码片段和所述样本代码片段,通过
【技术保护点】
【技术特征摘要】
1.
一种基于神经网络的功能代码评估方法,其特征在于,包括如下步骤:从实现特定功能的标准代码中获取正案例的目标代码片段,从研发人员编写的对应功能的实现代码中获取正案例的样本代码片段;对所述正案例的目标代码片段和所述样本代码片段,通过相同的特征提取算法,分别提取代码片段中的程序容量和关键程序要素的特征数据形成七维特征向量,将所述七维特征向量归一化处理后,对应得到可供神经网络模型运算的正案例的标签特征向量和样本特征向量;对构建的神经网络模型,使用所述正案例的标签特征向量作为标签值,使用大量的所述正案例的样本特征向量作为输入数据,对所述神经网络模型进行训练直至得到训练好的神经网络模型;将研发人员编写的对应功能的待测代码,通过相同的特征提取算法提取其特征向量并归一化处理后输入所述训练好的神经网络模型,计算模型输出的结果向量与所述正案例的标签特征向量的余弦相似度,根据所述余弦相似度评估所述待测代码能实现对应功能的概率
。2.
根据权利要求1所述的方法,其特征在于,所述七维特征向量为:
[
程序长度
N
,词汇量
n
,程序容量
V
,赋值语句数
a
,循环结构数
b
,条件结构数
c
,函数个数
d]
,其中假设:代码片段中的操作数种类数量记为
n1、
操作符种类数量记为
n2
,出现的所有操作数数量记为
N1、
所有操作符数量记为
N2
,则:词汇量
n
=
n1+n2
;程序长度
N
=
N1+N2
;程序容量
V
=
N*log2(n)。3.
根据权利要求2所述的方法,其特征在于,所述方法还包括:从研发人员编写的对应功能的不能实现代码中获取反案例的样本代码片段,对所述反案例的样本代码片段通过相同的特征提取算法提取其特征向量并归一化处理后得到反案例的样本特征向量;将与正案例的标签特征向量的点乘积为0的向量,作为反案例的标签特征向量;对构建的神经网络模型,使用所述反案例的标签特征向量作为标签值,使用大量的所述反案例的样本特征向量作为输入数据,对所述神经网络模型进行训练直至得到训练好的神经网络模型;将研发人员编写的对应功能的待测代码,通过相同的特征提取算法提取其特征向量并归一化处理后输入所述训练好的神经网络模型,计算模型输出的结果向量与所述反案例的标签特征向量的余弦相似度,根据所述余弦相似度评估所述待测代码不能实现对应功能的概率
。4.
根据权利要求3所述的方法,其特征在于,所述方法还包括:先将每个正案例的样本特征向量分别与正案例的标签特征向量进行配对,将每个反案例的样本特征向量分别与反案例的标签特征向量进行配对,分别形成大量的正
、
反案例的特征向量对,再通过数据乱序组合方法,将正
、
反案例的特征向量对乱序排列;在神经网络模型训练过程中,使用正
、
反案例无序的特征向量对训练所述神经网络模型直至得到训练好的神经网络模型
。5.
根据权利要求1至4任意一项所述的方法,其特征在于,构建的神经网络模型为
BP
神经网络模型,所述
BP
神经网络模型采用的是三层网络模型,包括输入层
、
单隐藏层和输出层,其中输入层输入的是七维输入向量,输出层输出的是七维输出向量,输入层到隐藏层的
初始权值及偏置量
、
隐藏层到输出层的初始权值及偏置量采用
(0,1)
的随机值法或固定值法进行初始化
。6.
根据权利要求6所述的方...
【专利技术属性】
技术研发人员:李雷,丁涛,陈绪宝,韩丹,张泓,
申请(专利权)人:中国邮政储蓄银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。