利索能及
我要发布
收藏
专利号: 2022106141351
申请人: 燕山大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于包括以下步骤:S1,对漏洞详细描述文本的数据预处理;

S2,漏洞文本经过预处理后,通过Word2Vec模型和N‑TF‑IDF算法结合构造加权词向量,完成文本向量表示;

S3,基于神经网络的TCNN‑BiGRU漏洞分类模型实现漏洞自动分类,模型主要包括4个部分,分别为输入层、TextCNN结构、BiGRU结构和全连接层。

2.根据权利要求1所述的一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于步骤S1具体包括:S11,分词及去除标点符号,通过识别漏洞描述文本中的空格和标点符号即可实现文本分词;

S12,大写字母转换成小写及词形还原,在这一步将英文单词的不同形式转换成统一的形式,便于之后的文本处理;

S13,去除停用词及特殊符号,停用词包括介词、冠词、代词等,特殊符号主要是文本中与上下文不存在语义联系的字符。

3.根据权利要求1所述的一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于步骤S2具体包括:S21,通过Word2Vec模型训练文本集合中所有单词的词向量,它将每个词映射成低维空间上的稠密向量,表示出在语义层面上词与词之间的相关信息;

S22,对于训练集,生成训练集词汇表,其中包括所有训练集文本中不重复的单词,根据公式(1)‑(3)计算词汇表中所有单词的N‑TF‑IDF权值,然后根据公式(4)结合Word2Vec词向量构成训练集词汇表中所有单词的加权词向量,从而将训练集所有文本表示成加权词向量构成的句子矩阵;

改进后的单词的文本内词频TF为类别内的词频与该类下所有词的词频的比值,如公式(1)所示:其中,ni,j为单词ti在第j类出现的次数,∑mnm,j为第j类所有词出现的次数;改进后的IDF计算公式中引入类别文本数,如公式(2)所示:其中,N为文本集合中文本总数,Ni,j为类别j中包含词ti的文本数,∑kNi,k为所有类别中包含词ti的文本数;

综合公式(1)和公式(2),词语在不同类别的文本中的重要性如公式(3)所示:S23,对于验证集和测试集,分别生成验证集词汇表和测试集词汇表,如果单词在训练集词汇表中,其N‑TF‑IDF权值设为训练集中该单词的N‑TF‑IDF权值,如果单词没有在训练集词汇表中,其N‑TF‑IDF权值设为0.5,再结合Word2Vec词向量构成词汇表中所有单词的加权词向量,从而将验证集和测试集所有文本分别表示成加权词向量构成的句子矩阵。

4.根据权利要求3所述的一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于构造加权的Wrod2Vec词向量的方法如下:|V|×|K|

通过N‑TF‑IDF算法得到矩阵M∈R ,其中|V|为数据集中所有不重复单词的数量,|K|为类别数量,即矩阵M为每个单词在不同类别的权重,选取每个单词在所有类别中的权重的最大值作为该单词最终的权重,与其Word2Vec词向量相乘,得到该单词的最终加权词向量,如公式(4)所示:Weight_Vector(ti)=Word2Vec(ti)*max(N‑TF‑IDFi,j)          (4)其中,Weight_Vector(ti)为单词ti的加权词向量权重,Word2Vec(ti)为单词ti的Word2Vec词嵌入向量,max()函数为求得单词ti在所有类别中的权重的最大值。

5.根据权利要求3所述的一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于:所述的Word2Vec模型为Word2Vec中的跳字模型,Skip‑gram,Skip‑gram模型是根据中心词去预测其上下文,输入是中心词的one‑hot向量,输出为对中心词上下文的预测。

6.根据权利要求1所述的一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于步骤S3具体包括:S31,输入层的输入是由词嵌入向量表示的句子矩阵;由于卷积层的输入要求句子长度相同,所以要做定长处理,设定长度为n,超过的截断,不足的补0,输入层的矩阵记为Wn×d,其中n为句子中单词的个数,d为词向量的维度;

S32,TextCNN结构由卷积层和池化层组成;在卷积层中,应用不同大小的卷积核从输入h×d矩阵中提取特征,卷积核定义为ω∈R ,其中h为卷积核的高度,是超参数,通常值设为2~

5,d为卷积核的宽度,与词向量的维度大小相同;卷积核对句子向量矩阵中每个可能的窗口n‑h+1做卷积操作生成特征图Sj∈R ,其中n为句子中单词的个数,不同尺寸的卷积核将生成不同大小的特征图;

S33,使用双向门控循环单元,Bidirectional Gated Recurrent Unit,BiGRU,BiGRU将GRU应用两次且方向相反,即在每个时间步t将输入的数据同时传递给前向隐藏层和后向隐藏层,最终BiGRU的输出由两个单向GRU输出的特征向量进行拼接得到;

GRU的核心结构包括两个门控结构:重置门和更新门;GRU内部结构的具体计算公式如下:zt=σ(Wz·[ht‑1,xt])                         (5)rt=σ(Wr·[ht‑1,xt])                         (6)其中,rt表示重置门的门值,zt表示更新门的门值,ht‑1为t‑1时刻的隐藏层的输出,xt为t时刻的输入,ht为t时刻隐藏层的输出,表示t时刻隐藏层节点的候选值,三个Wz、Wr、W表示线性变换操作,*表示矩阵元素相乘,σ表示sigmoid激活函数,yt表示输出;

和 分别为时间步t的前向和后向隐藏层的状态, 和 分别为时间步t‑1的前向和后向隐藏层的状态,ht为BiGRU层的最终输出;

将BiGRU层输出的特征向量输入池化层,采用最大池化操作继续提取代表能力最强的特征向量,降低输出向量的维度;

S34,为了抑制模型的过拟合问题,在TCNN‑BiGRU模型的池化层和全连接层之间加入了Dropout层,并在模型的训练过程中加入了Early Stopping方法;

S35,全连接层的输入为TextCNN结构和BiGRU结构输出的特征向量进行拼接得到的最终向量;全连接层类似于传统神经网络中的隐藏层,其中的每个神经元与其前一层的所有神经元进行全连接,整合局部特征图,得到全局特征信息,并将输出值送入Softmax分类器;

Softmax激活函数通过对向量进行运算,将向量中的值映射成为(0,1)之间的值,得到句子属于每个类别的概率,概率值最大的类别即为预测的分类结果;Softmax函数计算公式如下:其中,p(yi|s)为句子属于第i类的概率,yi为向量的第i个值,c为类别数。

7.根据权利要求6所述的一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于:在卷积层应用不同尺寸的卷积核生成了不同大小的特征图,需要对每个特征图进行池化操作,来获得相同维度的特征;采用最大池化对卷积层的输出进行池化操作,抽取每个特征图的最大值表示该特征,从而捕获最重要的特征;通过最大池化操作,每一个卷积核得到一个特征值,对所有卷积核进行池化操作,再拼接起来,得到池化层最终的特征向量。