1.一种网络安全的非结构化文本数据抽取模型训练方法,其特征在于,包括:根据网络安全的特性预定义应用于网络安全的文本标签集,文本标签集中包括若干个标签;
获取非结构化文本数据形成以句子为单位的语料数据样本集;
基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集;
将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集;
将语料数据样本集和人工标注数据集对应的数字矩阵集均对应地分为训练集和测试集;
将训练集输入到利用神经网络构建的数据抽取模型中进行训练,得到收敛的数据抽取模型,并利用测试集对抽取模型进行验证;
所述利用神经网络构建的数据抽取模型包括:顺次连接的BERT层、BiGRU层和CRF层。
2.根据权利要求1所述的一种网络安全的非结构化文本数据抽取模型训练方法,其特征在于,所述文本标签集表示为:CyberTag,
CyberTag = { O , BS1 , IS1 , ES1 , SS1 , BS2 , IS2 , ES2 , SS2 , has , exploit , belong , threat },文本标签集中O代表网络安全中的其他非实体,BS代表命名实体的开始位置,IS代表命名实体的中间位置,ES代表命名实体的结尾位置,SS代表单个的命名实体;命名实体角色标签由数字“1”和“2”表示,代表命名实体在所抽取的三元组中的先后顺序,1表示三元组中排第一的命名实体,2表示三元组中排第二的命名实体;has代表网络安全中的拥有或存在;
exploit代表网络安全中的利用,belong代表网络安全中的属于,threat代表网络安全中的威胁和攻击。
3.根据权利要求2所述的一种网络安全的非结构化文本数据抽取模型训练方法,其特征在于,所述基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集,具体包括:根据文本标签集中的标签判定语料数据样本集中的每个句子的汉字、英语单词和符号所对应的标签,得到每个句子对应的标注结果;
根据每个句子对应的标注结果,每个句子中的汉字、英语单词和符号按照文本标签集中标签的顺序进行存储生成标签数组,其中文本标签集中的标签在句子中没有出现则在标签数组中所述标签对应的位置填上预设符号,文本标签集中的标签O对应的汉字和/或英语单词在标签数组中标签O对应的位置填上所述预设符号;
语料数据样本集中句子对应的标签数组组成人工标注数据集。
4.根据权利要求1所述的一种网络安全的非结构化文本数据抽取模型训练方法,其特征在于,所述将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集,具体包括:初始化步骤:
设置语料数据样本集的最大句子长度SeqLenth=0,设置句子列表DataList、LabelList、AttMaskList、TokenTypeList均为空序列;
根据文本标签集预定义对应的标签字典LabDic,所述标签字典LabDic将文本标签集中的每个标签映射成对应的数字;所述标签字典LabDic增加“[CLS]”和“[SEP]”两个标签和对应的数字;
读取步骤:
读取语料数据样本集CyberData.txt中的一个句子和所述一个句子在人工标注数据集中对应的标注数据,设读取的句子 , 表示句子中的汉字或英语单词或符号,n表示句子中的汉字或英语单词或符号的总数,设句子对应的标注数据,表示标签;
数字化步骤:
对句子 在句子开始和结尾处增加开始符号“[CLS]”和结尾符号“[SEP]”,得到新的句子 ;
利用中文词库字典中汉字、英语单词和符号对应的ID,对句子 按逐个汉字、英语单词和符号进行分割,将分割后的汉字、英语单词和符号转换成中文词库字典中的ID,得到数组 , 是分割后字符的数量, 表示中文词库字典中的ID值;
读取句子Sen对应的标注数据Lab,对标注数据Lab按逐个标签进行分割,将分割后的标签匹配标签字典LabDic中的数字,得到数组 ;
矩阵组建步骤:
创建两个长度为K的数组 和 ,数组 元素为‘1’,数组元素为‘0’;
将 插入 ,将 插入 ,将 插入
,将 插入 ;
判断所述一个句子的字符数量K是否大于最大句子长度 ,如果是则设置更新,如果不是则不更新 ;
判断步骤:判断是否完成语料数据样本集的最后一个句子的处理,若不是则对下一个句子循环执行读取步骤、数字化步骤和矩阵组建步骤,若是则执行数据补齐步骤;
数据补齐步骤:
遍历 ,如果 长度小于 ,则在 尾部用整数‘0’补齐,使得 的长度等于 ,对应的 标签用‘‑1’补齐,对应的补‘0’,对应的 补‘‑1’,使得长度均等于 。
5.根据权利要求1至4任一项所述的一种网络安全的非结构化文本数据抽取模型训练方法,其特征在于,所述将训练集输入到利用神经网络构建的数据抽取模型中进行训练,得到收敛的数据抽取模型,并利用测试集对抽取模型进行验证,具体包括:训练集输入到BERT层进行字嵌入,将句子中的汉字、英语单词和符号转化成向量,并对转化后的向量进行特征提取,输出BERT层特征矩阵;
BiGRU层对所述BERT层特征矩阵进行特征提取,得到每个汉字、英语单词和符号对各类标签的非归一化概率分布,并根据权重调整BiGRU层的隐藏状态,输出BiGRU层特征向量;
所述CRF层根据所述BiGRU层特征向量和人工标签数组进行训练,求解所述数据抽取模型最优参数,得到收敛后的数据抽取模型;
将自动化标签数组和人工标签数组进行比对,根据比对结果自动调整所述数据抽取模型参数,得到收敛后的数据抽取模型。
6.根据权利要求5所述的一种网络安全的非结构化文本数据抽取模型训练方法,其特征在于,所述BiGRU层特征向量在输入CRF层之前还进行如下处理:其中, 表示第 个字符不同特征所对应的注意力分数,表示BiGRU层特征向量,为第个字符的隐藏层状态, 是激活函数, 是预设的权重系数矩阵, 表示随机初始化的注意力矩阵, 是偏移向量; 表示第 个字符不同特征所对应的注意力权重, 是注意力向量, 是BiGRU层中当前输入对应的句子的字符数;表示BiGRU层特征向量与注意力权重值 合并计算得到考虑权重后的隐藏层状态值;
为防止过拟合,对 执行Dropout操作,输出 :选用线性全连接函数,利用所述线性全连接函数对 进行线性变换,输出包含权重信息的特征向量其中, 是参数矩阵, 是偏置向量;BiGRU层特征向量经处理后的输出结果为:其中, 为BiGRU层特征向量经处理后的输出结果, 是列向量。
7.根据权利要求5 6任一项所述的一种网络安全的非结构化文本数据抽取模型训练方~法,其特征在于,所述CRF层根据所述BiGRU层特征向量和人工标签数组进行训练,求解所述数据抽取模型最优参数,得到收敛后的数据抽取模型,具体包括:设CRF层的输入包括概率矩阵 ,其大小为 , 为对应的每个句子文本序列的长度,即对应句子中汉字、英语单词和符号的总个数, 为文本标签集中的标签种类;
在CRF层计算一个转移矩阵 ,其大小为 ,转移矩阵表示标签与标签之间的关系;
对于每一个输入句子序列 ,可能的标签标注序列 ,则句子序 列W 的标 签标注 序列等于 的分 数计算 公式如 公式(7)所示 :其中 是概率矩阵P中的值,表示第 个字符预测为标签 的发射概率; 是转移矩阵 的值,表示标签 转移到标签 的转移概率, ;k句子中汉字、英语单词和符号的总数, 表示输入句子序列W的标签序列为l的分数,等于各个位置的发射概率和转移概率之和;
设多种自动标注标签序列中与人工标注标签序列一样的序列为正确标签序列 ,分数为 ,正确标签序列的分数在所有自动标注标签序列的分数的总和中所占比重为, 计算公式如公式(8)所示:其中, 是对输入序列 所有可能出现的自动标注标签序列的集合,表示所有可能的自动标注标签序列的分数的指数和;在进行CRF层训练时,目标是最小化损失函数,采用负对数似然函数作为损失函数,如公式(9)所示:(9)
在训练过程中,按照最小化损失函数原则,通过反向传播结合梯度下降,求解数据模型最优参数;在模型的测试和使用过程,采用Viterbi算法求动态规划的分数最大标注序列,公式如下:。
8.一种网络安全的非结构化文本数据抽取模型训练系统,其特征在于,包括:标签集预设模块,用于根据网络安全的特性预定义应用于网络安全的文本标签集,文本标签集中包括若干个标签;
样本集获取模块,用于获取非结构化文本数据形成以句子为单位的语料数据样本集;
标注模块,用于基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集;
转化模块,用于将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集;
划分模块,用于将语料数据样本集和人工标注数据集对应的数据矩阵集均对应地分为训练集和测试集;
训练模块,用于将训练集输入到利用神经网络构建的数据抽取模型中进行训练,得到收敛的数据抽取模型,并利用测试集对抽取模型进行验证。
9.一种网络安全的非结构化文本数据抽取方法,其特征在于,获取待处理的非结构化数据,将所述非结构化文本数据进行处理形成以句子为单位的语料数据;
基于文本标签集对所述语料数据进行人工标注得到对应的人工标注数据;
将所述语料数据和对应的人工标注数据进行预处理分别转化成对应的数字矩阵;
将转化得到的数字矩阵输入到权利要求1‑7任一项所述的收敛的数据抽取模型中,输出得到所述非结构化文本数据对应的自动化标注数据。
10.一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,其特征在于,所述处理器执行计算机程序时实现权利要求1至7任一项所述的网络安全的非结构化文本数据抽取模型训练方法。