(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210336797.7
(22)申请日 2022.03.31
(71)申请人 南通大学
地址 226019 江苏省南 通市崇川区啬园路9
号
(72)发明人 文万志 张瑞年 陈励文 于梦
高欣欣 程帆 吴佳俊 沈陈强
程实
(74)专利代理 机构 南通一恒专利商标代理事务
所(普通合伙) 32553
专利代理师 梁金娟
(51)Int.Cl.
G06K 9/62(2022.01)
G06F 40/30(2020.01)
G06N 3/04(2006.01)G06N 3/08(2006.01)
(54)发明名称
一种基于多语义提取器的软件缺陷预测方
法
(57)摘要
本发明提供一种基于多语义提取器的软件
缺陷预测方法, 包括如下步骤: S1、 构建源项目代
码实例向量集VOSPCI; S2、 构建目标项目代码实
例向量集VOTPCI; S3、 构建语义提取器GSEM; S4、
组建多种语义列表MS ‑list; S5、 构建分类方法集
SOCM; S6、 语义列表分类结果分析; S7、 与传统度
量元结果比较; S8、 构建基于多语义提取器的软
件缺陷预测方法DPMSE。 本发明提出一种基于多
语义提取器的软件缺陷预测方法, 可以有效的提
取源代码中的语义信息, 有助于提高缺陷预测的
准确度和达 到更好的预测效果。
权利要求书4页 说明书8页 附图3页
CN 114565063 A
2022.05.31
CN 114565063 A
1.一种基于多语义 提取器的软件缺陷预测方法, 其特 征在于, 包括如下步骤:
S1、 构建源项目代码实例向量 集VOSPCI;
S2、 构建目标项目代码实例向量 集VOTPCI;
S3、 构建语义 提取器GSE M;
S4、 组建多种语义列表MS ‑list;
S5、 构建分类方法集SOC M;
S6、 语义列表分类结果分析;
S7、 与传统度量元 结果比较;
S8、 构建基于多语义 提取器的软件缺陷预测方法D PMSE。
2.根据权利要求1所述的基于多语义提取器的软件缺陷预测方法, 其特征在于, 步骤S1
包括如下步骤:
S1.1、 读取源项目实例文件名称name_si, 在数据集中找到对应源代码code_si; 将源代
码按照预定的规则分割成一个个的标识token, 将之前得到的t oken合并为一个列表, 其中i
=1,2,3, …,n;
S1.2、 token是一个字符串, 将token中的每一个字符转换成ASCII中对应的十进制 值,
然后采用加法运算规则计算该token中所有token对应的十进制值, 将得到的结果作为该
token的语义 值sv;
S1.3、 将实例中的所有token按照步骤S1.2计算得到实例对应的semantic_listi=
[sv1,sv2,…,svj], 其中j=1,2,3, …,m;
S1.4、 将源项目中的所有实例按步骤S1.3处理得到semantic_listi, 计算每一个
semantic_list列表的长度, 统计列表的最大长度sematic_list_max, 将长度没有达到
sematic_l ist_max的列表使用0填补到最大长度;
S1.5、 设定列表长度clip_len, 将每一个semantic_list长度按clip_len截取得到
semantic_cl ipi;
S1.6、 构建源项目代码实例向量集VOSPCI=[semantic_clip1,semantic_clip2,…,
semantic_cl ipi]。
3.根据权利要求1所述的基于多语义提取器的软件缺陷预测方法, 其特征在于, 步骤S2
包括如下步骤:
S2.1、 读取 目标项目实例 文件名称name_ti, 在数据集中找到对应源代码code_ti; 将源
代码按照预定的规则分割成一个个的标识token, 将之前得到的token合并为一个列表, 其
中i=1,2,3, …,n;
S2.2、 token是一个字符串, 将token中的每一个字符转换成ASCII中对应的十进制 值,
然后采用加法运算规则计算该token中所有token对应的十进制值, 将得到的结果作为该
token的语义 值sv;
S2.3、 将实例中的所有token按照步骤S2.2计算得到实例对应的semantic_listi=
[sv1,sv2,…,svj], 其中j=1,2,3, …,m;
S2.4、 将目标项目中的所有实例按步骤S2.3处理得到semantic_listi, 计算每一个
semantic_list列表的长度, 统计列表的最大长度sematic_list_max, 将长度没有达到
sematic_l ist_max的列表使用0填补到最大长度;权 利 要 求 书 1/4 页
2
CN 114565063 A
2S2.5、 设定列表长度clip_len, 将每一个semantic_list长度按clip_len截取得到
semantic_cl ipi;
S2.6、 构建目标项目代码实例向量集VOTPCI=[semantic_clip1,semantic_clip2,…,
semantic_cl ipi]。
4.根据权利要求1所述的基于多语义提取器的软件缺陷预测方法, 其特征在于, 步骤S3
包括如下步骤:
S3.1、 初始化GRU隐藏层状态, GRU数据流向设置为双向, 隐藏层特征维度h_dim设为32,
隐藏层激活函数设为relu, 学习率设为0.0 01;
S3.2、 使用Adam优化网络中的权 重参数;
S3.3、 模型的batch设为当前项目的实例个数, 序列长度设为clip_len, 将同一个GRU正
向和反向的隐藏层累加作为当前GRU的输出out;
S3.4、 定义处理隐藏层特征维度容器EFC, 按顺序添加全连接层1、 激活层、 全连接层2,
其中, 全连接层1的输入维度为h_dim, 输出维度为24; 激活层函数使用Relu; 全 连接层2的输
入维度为24, 输出维度为1;
S3.5、 定义处理序列长度 容器SLC, 按顺序添加全连接层1、 激活层、 全连接层2, 其 中, 全
连接层1的输入维度为序列长度clip_len, 输出维度为24; 激活层函数使用Relu; 全 连接层2
的输入维度为24, 输出维度为1;
S3.6、 定义统一输出语义容器UOSC, 添加全连接层, 其中全连接层的输入维度 为1, 输出
维度为8;
S3.7、 将步骤S3.3的输出out按顺序经过步骤S3.4、 S3.5、 S3.6 处理, 计算该结果与实例
对应的标签之间的损失, 将损失反向传递给整个网络实现对权 重的调整;
S3.8、 由S3.1~S3.7定义 的容器和规则构建语义提取器GSEM, 并通过语义提取器GSEM
多次训练得到源代码多语义信息 。
5.根据权利要求1所述的基于多语义提取器的软件缺陷预测方法, 其特征在于, 步骤S4
包括如下步骤:
S4.1、 使用步骤S3构建的语义提取器GSEM对步骤S1得到的源项目代码实例向量集
VOSPCI进行语义提取, 将每一次迭代次数下得到语义信息保存在新列表中, 将该列表记为
MS‑list‑s;
S4.2、 使用步骤S3构建的语义提取器GSEM对步骤S2得到的目标项目代码实例向量集
VOTPCI进行语义提取, 将每一次迭代次数下得到语义信息保存在新列表中, 将该列表记为
MS‑list‑t。
6.根据权利要求1所述的基于多语义提取器的软件缺陷预测方法, 其特征在于, 步骤S5
中,
分类方法集SOC M={Logistic,Naive Bayes};
其中, Logistic回归为对数几率回归;
Naive Bayes方法是计算每个类别在训练样本中的出现频率及每个特征属性划分对每
个类别的条件概 率估计。
7.根据权利要求1所述的基于多语义提取器的软件缺陷预测方法, 其特征在于, 步骤S6
中包括如下步骤:权 利 要 求 书 2/4 页
3
CN 114565063 A
3
专利 一种基于多语义提取器的软件缺陷预测方法
文档预览
中文文档
16 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共16页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 17:45:11上传分享