CN115587594A - 网络安全的非结构化文本数据抽取模型训练方法及系统 - Google Patents

网络安全的非结构化文本数据抽取模型训练方法及系统 Download PDF

Info

Publication number
CN115587594A
CN115587594A CN202211143694.5A CN202211143694A CN115587594A CN 115587594 A CN115587594 A CN 115587594A CN 202211143694 A CN202211143694 A CN 202211143694A CN 115587594 A CN115587594 A CN 115587594A
Authority
CN
China
Prior art keywords
data
label
sentence
extraction model
training
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211143694.5A
Other languages
English (en)
Other versions
CN115587594B (zh
Inventor
郑伟发
苏礼楷
谢少群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong University of Business Studies
Original Assignee
Guangdong University of Business Studies
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong University of Business Studies filed Critical Guangdong University of Business Studies
Priority to CN202211143694.5A priority Critical patent/CN115587594B/zh
Publication of CN115587594A publication Critical patent/CN115587594A/zh
Application granted granted Critical
Publication of CN115587594B publication Critical patent/CN115587594B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)

Abstract

本发明提供网络安全的非结构化文本数据抽取模型训练方法,包括:根据网络安全的特性预定义应用于网络安全的文本标签集,文本标签集中包括若干个标签;获取非结构化文本数据形成以句子为单位的语料数据样本集;基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集;将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集;将语料数据样本集和人工标注数据集对应的数字矩阵集均对应地分为训练集和测试集;将训练集输入到利用神经网络构建的数据抽取模型中进行训练,得到收敛的数据抽取模型,并利用测试集对抽取模型进行验证。本发明训练的模型能对网络安全领域复杂的非结构化文本数据进行高效、准确的抽取。

Description

网络安全的非结构化文本数据抽取模型训练方法及系统
技术领域
本发明涉及网络安全领域,更具体地,涉及一种网络安全的非结构化文本数据抽取模型训练方法及系统。
背景技术
网络安全的非结构化数据抽取,即从不同来源、不同结构的网络安全数据中进行知识提取,形成结构化数据存入到知识图谱中。数据抽取技术把蕴含于网络安全信息源中的知识经过识别、理解、筛选、归纳等过程抽取出来,存储形成知识元库。目前研究较多的是自然语言文本数据抽取,已经出现了一些工具或系统用于抽取自然语言文本,数据抽取已经成为自然语言处理领域一个重要的研究分支。数据抽取的难点在于对数据源中的数据进行处理,因为知识并不是以某种现成的形式存在于数据源中的,只有对数据源中的数据经过分析、识别、理解、关联等一系列处理之后,才能发现其中有用的知识。在上述的数据抽取技术中,常用的是基于深度学习的方法对文本数据序列进行标注进而实现数据抽取,常用的神经网络模型是BERT模型,面对复杂的非结构化文本数据,传统的方法无法训练出满足抽取识别精确率以及效率要求的非结构化文本数据抽取模型,无法对复杂繁多的网络安全的非结构化数据进行有效抽取,无法达到对网络安全的非结构化数据进行进一步分析的效果。
发明内容
本发明旨在克服上述现有技术的至少一种缺陷(不足),提供一种网络安全的非结构化文本数据抽取方法及系统,用于解决现有的网络安全领域非结构化文本数据抽取模型无法对网络安全领域复杂的非结构化文本数据进行高效、准确的抽取的问题。
本发明采取的技术方案是:一种网络安全的非结构化文本数据抽取模型训练方法,包括:
根据网络安全的特性预定义应用于网络安全的文本标签集,文本标签集中包括若干个标签;
获取非结构化文本数据形成以句子为单位的语料数据样本集;
基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集;
将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集;
将语料数据样本集和人工标注数据集对应的数字矩阵集均对应地分为训练集和测试集;
将训练集输入到利用神经网络构建的数据抽取模型中进行训练,得到收敛的数据抽取模型,并利用测试集对非结构化文本数据抽取模型进行验证。
根据网络安全的特性预定义应用于网络安全的文本标签集,文本标签集中包括若干个标签;本发明充分考虑了网络安全领域主体与主体之间的关系,增加了反映主体关系的标签,在标签集中,可以包括但不仅限于用has代表“拥有”或“存在”,例如计算机存在漏洞;exploit代表“利用”,例如黑客利用SQL注入漏洞;belong代表“属于”,例如TCP洪水攻击属于DDOS攻击类型;threat代表“威胁”或“攻击”,例如黑客组织攻击邮件系统。本发明通过预定义文本标签集,从逻辑上考虑了网络安全领域的文本信息中的含义,有利于后续利用深度学习的方法,根据标签对网络安全领域的非结构化文本进行标注,进而可以训练出能充分考虑网络安全领域主体与主体之间的关系的非结构化文本数据抽取模型,进而可以对网络安全领域复杂的非结构化文本数据进行高效、准确的抽取。
获取非结构化文本数据形成以句子为单位的语料数据样本集;
进一步,所述文本标签集表示为:
CyberTag
CyberTag = { O , BS1 , IS1 , ES1 , SS1 , BS2 , IS2 , ES2 , SS2 , has , exploit , belong , threat }
文本标签集中
Figure 531585DEST_PATH_IMAGE001
代表网络安全中的其他非实体,BS代表命名实体的开始位置,IS代 表命名实体的中间位置,ES代表命名实体的结尾位置,SS代表单个的命名实体;命名实体角 色标签由数字“1”和“2”表示,代表命名实体在所抽取的三元组中的先后顺序,1表示三元组 中排第一的命名实体,2表示三元组中排第二的命名实体;
Figure 722395DEST_PATH_IMAGE002
代表网络安全中的拥有或存 在;
Figure 149965DEST_PATH_IMAGE003
代表网络安全中的利用,
Figure 477041DEST_PATH_IMAGE004
代表网络安全中的属于,
Figure 964655DEST_PATH_IMAGE005
代表网络安全中的威胁 和攻击。本发明的文本标签集可以定义为
CyberTag
CyberTag = { O , BS1 , IS1 , ES1 , SS1 , BS2 , IS2 , ES2 , SS2 , has , exploit , belong , threat }
的形式,从逻辑上对网络安全的非数据化文本的语义信息进行了定义,抓住了网络安全领域主体与主体之间的关系,在网络安全领域,主体与主体之间的关系是研究人员需要重视的,例如“计算机存在漏洞”、“黑客利用SQL注入漏洞”、“TCP洪水攻击属于DDoS攻击类型”、“黑客组织攻击邮件系统”等非数据化文本的“存在”、“利用”、“属于”“攻击”等就是主体与主体之间的关系,通过关注这些关系,利于后续利用网络安全知识图谱等技术对网络安全的技术手段等方面进行研究,达到训练一个能高效、准确地抽取主体与主体之间关系的非结构化文本数据抽取模型。
进一步,所述基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集,根据预定义的文本标签集
Figure 642761DEST_PATH_IMAGE006
对语料数据样本集进行人工标注,进而可以得到人工标注数据集,有利于后续非结构化文本数据抽取模型对数据的处理。
人工标注具体包括:根据文本标签集中的标签判定语料数据样本集中的每个句子汉字、英语单词和符号所对应的标签,得到每个句子对应的标注结果;
根据每个句子对应的标注结果,每个句子中的汉字、英语单词和符号单词按照文本标签集中标签的顺序进行存储生成标签数组,其中文本标签集中的标签在句子中没有出现则在标签数组中所述标签对应的位置填上预设符号,文本标签集中的标签O对应的汉字和/或英语单词在标签数组中标签O对应的位置填上所述预设符号;对句子中的汉字、英语单词和符号按照标签的顺序进行存储,标注预设符号,将非结构化文本数据转化成了非结构化文本数据抽取模型可以处理的标签数据。对文本标签集中的标签在句子中没有出现则在标签数组中所述标签对应的位置填上预设符号,可以节省存储空间,同时有利于快速生成标签数组,建立汉字、英语单词和符号与标签的关系。
语料数据样本集中句子对应的标签数组组成人工标注数据集。组成人工标注数据集后可以达到形成可供非结构化文本数据抽取模型处理的数据的效果。
进一步,所述将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集,具体包括:
初始化步骤:
设置语料数据样本集的最大句子长度
Figure 874022DEST_PATH_IMAGE007
,设置句子列表DataList、 LabelList、AttMaskList、TokenTypeList均为空序列;通过设置最大句子长度可以避免句 子过长,影响非结构化文本数据抽取模型的处理效率,本方案初始化阶段使最大句子长度
Figure 55604DEST_PATH_IMAGE008
,在整个预处理阶段,最大句子长度会动态发生变化调整,实现自动化初始化数字矩 阵集的效果。设置句子列表DataList、LabelList、AttMaskList、TokenTypeList均为空序 列,初始化建立了空序列,用于自动化存储数据。
根据文本标签集预定义对应的标签字典LabDic,所述标签字典LabDic将文本标签集中的每个标签映射成对应的数字;所述标签字典LabDic增加“[CLS]”和“[SEP]”两个标签和对应的数字;通过预定义对应的标签字典,将标签转化为数字的形式,进而使非结构化文本数据抽取模型可以处理。
读取步骤:
读取语料数据样本集CyberData.txt中的一个句子和所述一个句子在人工标注数 据集中对应的标注数据,设读取的句子
Figure 510857DEST_PATH_IMAGE009
Figure 863209DEST_PATH_IMAGE010
表示句子中的汉字或英语 单词或符号,n表示句子中的汉字或英语单词或符号的总数,设句子对应的标注数据
Figure 694899DEST_PATH_IMAGE011
Figure 996567DEST_PATH_IMAGE012
表示标签;
数字化步骤:
对句子
Figure 560404DEST_PATH_IMAGE013
在句子开始和结尾处增加开始符号“[CLS]”和结尾符号“[SEP]”,得到 新的句子
Figure 213102DEST_PATH_IMAGE014
;通过增加开始符号和结尾符号,为非结构化 文本数据抽取模型提供可以识别句子顺序的标签。
利用中文词字典中汉字、英语单词、符号对应的ID,对句子
Figure 786166DEST_PATH_IMAGE015
按逐个汉字、英语单 词、符号进行分割,将分割后的汉字、英语单词、符号转换成中文词库字典中的ID,得到数组
Figure 676762DEST_PATH_IMAGE016
, K是分割后字符的数量,
Figure 739395DEST_PATH_IMAGE017
表示中文词库字典中的 ID值;
读取句子
Figure 551494DEST_PATH_IMAGE018
对应的标注数据
Figure 990565DEST_PATH_IMAGE019
,对标注数据
Figure 1247DEST_PATH_IMAGE019
按逐个标签进行分割,将分割后的 标签匹配标签字典LabDic中的数字,得到数组
Figure 923197DEST_PATH_IMAGE020
数字化步骤通过字典使非结构化文本数据转化成模型可以处理的数字。
矩阵组建步骤:
创建两个长度为K的数组
Figure 284909DEST_PATH_IMAGE021
Figure 199775DEST_PATH_IMAGE022
,数组
Figure 330542DEST_PATH_IMAGE023
元素为‘1’,数组
Figure 469399DEST_PATH_IMAGE024
元素为‘0’;
Figure 256090DEST_PATH_IMAGE025
插入
Figure 771385DEST_PATH_IMAGE026
,将
Figure 959921DEST_PATH_IMAGE027
插入
Figure 535258DEST_PATH_IMAGE028
,将
Figure 605983DEST_PATH_IMAGE029
插入
Figure 111919DEST_PATH_IMAGE030
,将
Figure 217278DEST_PATH_IMAGE031
插入
Figure 697938DEST_PATH_IMAGE032
判断所述一个句子的字符数量K是否大于最大句子长度
Figure 193642DEST_PATH_IMAGE033
,如果是则设置 更新
Figure 316319DEST_PATH_IMAGE034
,如果不是则不更新
Figure 213867DEST_PATH_IMAGE035
判断步骤:判断是否完成语料数据样本集的最后一个句子的处理,若不是则对下一个句子循环执行读取步骤、数字化步骤和矩阵组件步骤,若是则执行数据补齐步骤;矩阵组建步骤通过判断和更新规则自动化处理句子,实现矩阵的组建。
数据补齐步骤:
遍历
Figure 865429DEST_PATH_IMAGE036
,如果
Figure 176324DEST_PATH_IMAGE037
长度小于
Figure 774796DEST_PATH_IMAGE038
,则在
Figure 589168DEST_PATH_IMAGE039
尾部用整数‘0’补 齐,使得
Figure 677210DEST_PATH_IMAGE040
的长度等于
Figure 895308DEST_PATH_IMAGE035
,对应的
Figure 359787DEST_PATH_IMAGE041
标签用‘-1’补齐,对应的
Figure 966349DEST_PATH_IMAGE042
补 ‘0’,对应的
Figure 490872DEST_PATH_IMAGE043
补‘-1’,使得长度均等于
Figure 448463DEST_PATH_IMAGE035
。通过统一
Figure 185475DEST_PATH_IMAGE040
的长度,有利于 后续非结构化文本数据抽取模型的抽取效率。
进一步,所述利用神经网络构建的数据抽取模型包括:顺次连接的BERT层、BiGRU层和CRF层;
所述将训练集输入到利用神经网络构建的数据抽取模型中进行训练,得到收敛的数据抽取模型,并利用测试集对抽取模型进行验证,具体包括:
训练集输入到BERT层进行行字嵌入,将句子中的汉字、英语单词和符号转化成向量,并对转化后的向量进行特征提取,输出BERT层特征矩阵;
BiGRU层对所述BERT层特征矩阵进行特征提取,得到每个汉字、英语单词和符号对各类标签的非归一化概率分布,并根据权重调整BiGRU层的隐藏状态,输出BiGRU层特征向量;
所述CRF层根据所述BiGRU层特征向量和人工标签数组进行训练,求解所述数据抽取模型最优参数,得到收敛后的数据抽取模型;根据自动化标签数组和人工标签数组计算CRF层的损失函数值,按照最小化损失函数原则,通过反向传播结合梯度下降,求解所述数据抽取模型最优参数,得到收敛后的数据抽取模型。本发明结合BERT层的语义表示能力、BiGRU层对上下文的理解能力以及CRF层对状态序列之间联系的学习能力训练出能对复杂文本数据进行高效并精准抽取的非结构化文本数据抽取模型。
进一步,所述BiGRU层特征向量在输入CRF层之前还进行如下处理:
Figure 974440DEST_PATH_IMAGE044
其中,
Figure 607546DEST_PATH_IMAGE045
表示第
Figure 849172DEST_PATH_IMAGE046
个字符不同特征所对应的注意力分数,
Figure 842404DEST_PATH_IMAGE047
表示BiGRU层特征向量, 为第
Figure 485875DEST_PATH_IMAGE048
个字符的隐藏层状态,
Figure 86621DEST_PATH_IMAGE049
是激活函数,
Figure 18805DEST_PATH_IMAGE050
是预设的权重系数矩阵, 表示随机初始 化的注意力矩阵,
Figure 363199DEST_PATH_IMAGE051
是偏移向量;
Figure 64438DEST_PATH_IMAGE052
表示第i个字符的注意力权重,
Figure 570506DEST_PATH_IMAGE053
是注意力向量,
Figure 52303DEST_PATH_IMAGE054
是 BiGRU层中当前输入对应的句子的字符数;
Figure 138071DEST_PATH_IMAGE055
表示BiGRU层特征向量与注意力权重值
Figure 490555DEST_PATH_IMAGE056
合并 计算得到考虑权重后的隐藏层状态值;
为防止过拟合,对
Figure 698682DEST_PATH_IMAGE057
执行Dropout操作,输出
Figure 90611DEST_PATH_IMAGE058
Figure 776808DEST_PATH_IMAGE059
选用线性全连接函数,利用所述线性全连接函数对
Figure 249377DEST_PATH_IMAGE060
进行线性变换,输出包含权重 信息的特征向量
Figure 300510DEST_PATH_IMAGE061
Figure 491320DEST_PATH_IMAGE062
其中,
Figure 918890DEST_PATH_IMAGE063
是参数矩阵,
Figure 245966DEST_PATH_IMAGE064
是偏置向量。BiGRU层特征向量经处理后的输出结果为:
Figure 795896DEST_PATH_IMAGE065
其中,
Figure 411685DEST_PATH_IMAGE066
为BiGRU层特征向量经处理后的输出结果,
Figure 439684DEST_PATH_IMAGE067
是列向量。
进一步,所述CRF层根据所述BiGRU层特征向量和人工标签数组进行训练,求解所述数据抽取模型最优参数,得到收敛后的数据抽取模型,具体包括:
设CRF层的输入包括概率矩阵
Figure 621267DEST_PATH_IMAGE068
,其大小为
Figure 529049DEST_PATH_IMAGE069
, k为对应的句子的长度,即对 应句子中汉字、英语单词和符号的总个数,
Figure 694451DEST_PATH_IMAGE070
为文本标签集中的标签种类;
在CRF层计算一个转移矩阵A,其大小为
Figure 463824DEST_PATH_IMAGE071
,转移矩阵表示标签与标签之间的关 系;对于每一个输入句子序列
Figure 765492DEST_PATH_IMAGE072
,可能的标签标注序列
Figure 391646DEST_PATH_IMAGE073
,则句 子序列
Figure 982027DEST_PATH_IMAGE074
的标签标注序列等于l的分数计算公式如下:
Figure 351828DEST_PATH_IMAGE075
其中
Figure 711266DEST_PATH_IMAGE076
是概率矩阵P中的值,表示第i个字符预测为标签
Figure 508320DEST_PATH_IMAGE077
的发射概率;
Figure 382735DEST_PATH_IMAGE078
是转 移矩阵
Figure 513152DEST_PATH_IMAGE079
的值,表示标签
Figure 789413DEST_PATH_IMAGE080
转移到标签
Figure 757369DEST_PATH_IMAGE081
的转移概率,
Figure 56763DEST_PATH_IMAGE082
k句子中汉字、英语单 词和符号的总数,
Figure 768367DEST_PATH_IMAGE083
表示输入句子序列W的标签序列为l的分数,等于各个位置的发射 概率和转移概率之和;
设多种自动标注标签序列中与人工标注标签序列一样的序列为正确标签序列
Figure 102396DEST_PATH_IMAGE084
, 分数为
Figure 506833DEST_PATH_IMAGE085
,正确标签序列的分数在所有自动标注标签序列的分数的总和中所占比重 为
Figure 293523DEST_PATH_IMAGE086
Figure 808818DEST_PATH_IMAGE087
计算公式如公式(8)所示:
Figure 246622DEST_PATH_IMAGE088
其中,
Figure 892684DEST_PATH_IMAGE090
是对输入序列W所有可能出现的自动标注标 签序列的集合,
Figure 149353DEST_PATH_IMAGE091
表示所有可能的自动标注标签序列的分数的指数和。
在进行CRF层训练时,目标是最小化损失函数,采用负对数似然函数作为损失函数,如公式(9)所示:
Figure 254712DEST_PATH_IMAGE092
(9)
在训练过程中,按照最小化损失函数原则,通过反向传播结合梯度下降,求解数据模型最优参数。在模型的测试和使用过程,采用Viterbi算法求动态规划的分数最大标注序列,公式如下:
Figure 938634DEST_PATH_IMAGE093
本发明还提供一种网络安全的非结构化文本数据抽取方法,包括:
获取待处理的非结构化数据,将所述非结构化文本数据进行处理形成以句子为单位的语料数据;
基于文本标签集对所述语料数据进行人工标注得到对应的人工标注数据;
将所述语料数据和对应的人工标注数据进行预处理分别转化成对应的数字矩阵;
将转化得到的数字矩阵输入到收敛的非结构化文本数据抽取模型中,输出得到所述非结构化文本数据对应的自动化标注数据。
通过利用收敛的非结构化文本数据抽取模型,对非结构化文本数据进行处理,达到高效、准确对非结构化文本数据进行抽取的技术效果。
与现有技术相比,本发明的有益效果为:
(1)高效、准确对非结构化文本数据进行抽取。
(2)从逻辑上考虑了网络安全领域的文本信息中的含义,考虑主体与主体的关系,可以更有效地标注非结构化文本数据的信息。
(3)结合BERT层的语义表示能力、BiGRU层对上下文的理解能力以及CRF层对状态序列之间联系的学习能力训练出能对复杂文本数据进行高效并精准抽取的非结构化文本数据抽取模型。
附图说明
图1为本发明实施的方法流程图。
图2为本发明的非结构化文本数据抽取模型的结构示意图。
图3为本发明的BiGRU层神经网络结构图。
图4为本发明的网络安全的非结构化文本数据抽取方法的流程图。
具体实施方式
本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
实施例1
如图1所示,本实施例提供一种网络安全的非结构化文本数据抽取模型训练方法,包括:
S1、根据网络安全的特性预定义应用于网络安全的文本标签集,文本标签集中包括若干个标签;在现有技术中,使用的标签集通常只考虑了网络安全领域的名词不同,本发明充分考虑了网络安全领域主体与主体之间的关系,增加了反映主体关系的标签,在标签集中,可以包括但不仅限于用has代表“拥有”或“存在”,例如计算机存在漏洞;exploit代表“利用”,例如黑客利用SQL注入漏洞;belong代表“属于”,例如TCP洪水攻击属于DDOS攻击类型;threat代表“威胁”或“攻击”,例如黑客组织攻击邮件系统。本发明通过预定义文本标签集,从逻辑上考虑了网络安全领域的文本信息中的含义,有利于后续利用深度学习的方法,根据标签对网络安全领域的非结构化文本进行标注,进而可以训练出能充分考虑网络安全领域主体与主体之间的关系的非结构化文本数据抽取模型,进而可以对网络安全领域复杂的非结构化文本数据进行高效、准确的抽取。
优选的,所述文本标签集表示为:
CyberTag
CyberTag = { O , BS1 , IS1 , ES1 , SS1 , BS2 , IS2 , ES2 , SS2 , has , exploit , belong , threat }
文本标签集中O代表网络安全中的其他非实体,BS代表命名实体的开始位置,IS代 表命名实体的中间位置,ES代表命名实体的结尾位置,SS代表单个的命名实体;命名实体角 色标签由数字“1”和“2”表示,代表命名实体在所抽取的三元组中的先后顺序,1表示三元组 中排第一的命名实体,2表示三元组中排第二的命名实体;
Figure 496655DEST_PATH_IMAGE002
代表网络安全中的拥有或存在;
Figure 353752DEST_PATH_IMAGE094
代表网络安全中的利用,
Figure 251301DEST_PATH_IMAGE095
代表网络安全中的属于,
Figure 168441DEST_PATH_IMAGE096
代表网络安全中的威 胁和攻击。
与传统的标签集只考虑名词不同,本发明充分考虑了网络安全领域主体与主体之间的关系,增加了反映主体关系的标签。在标签集中,has代表拥有或存在,例如计算机存在漏洞;exploit代表利用,例如黑客利用SQL注入漏洞;belong代表属于,例如TCP洪水攻击属于DDoS攻击类型;threat代表威胁和攻击,例如黑客组织攻击邮件系统。
S2、获取非结构化文本数据形成以句子为单位的语料数据样本集;通过获取非结构化文本数据形成以句子为单位的语料数据样本集,为本发明的非结构化文本数据抽取模型提供训练和验证的样本集,以句子为单位,有利于在模型的训练过程中,提高训练的效率。
S3、基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集;根据预定义的网络安全文本标签集,对语料数据样本集进行人工标注,具体为:以句子为单位,采用标签集中的标签对语料数据中的每个句子的汉字、英语单词和符号进行标注,生成标注数据,语料数据中的句子可以通过编号在标注数据中找到对应的句子标注。本发明可以通过人工标注限定字数,避免语料数据过大,影响非结构化文本数据抽取模型的处理效率,进而提高训练的效率。通过对语料数据样本集进行人工标注,按单词或汉字的位置进行标注,便于后续非结构化文本数据抽取模型的处理;对非实体进行排除,减少冗余数据;当语料数据样本集的某个句子中没有出现标签集的标签类型的汉字或单词时,对所述汉字或单词进行留空的标注。经过人工标注得到对应的人工标注数据集,有利于非结构化文本数据抽取模型的训练和验证,进而得到对网络安全领域复杂的非结构化文本数据进行高效、准确的抽取的非结构化文本数据抽取模型。
优选的,所述基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集,具体包括:
根据文本标签集中的标签判定语料数据样本集中的每个句子的汉字、英语单词和符号所对应的标签,得到每个句子对应的标注结果;
根据每个句子对应的标注结果,每个句子中的汉字、英语单词和符号按照文本标签集中标签的顺序进行存储生成标签数组,其中文本标签集中的标签在句子中没有出现则在标签数组中所述标签对应的位置填上预设符号,文本标签集中的标签O对应的汉字和/或英语单词在标签数组中标签O对应的位置填上所述预设符号;
本实施例通过网络安全内容相关的互联网网站、论坛获取网页HTML页面数据,提取非结构化文本数据,形成由4000个句子组成的语料数据,命名为CyberData.txt,在CyberData.txt中每个句子有唯一编号SNum;接着以句子为单位,采用CyberTag标签集中的标签对语料数据中的每个句子的汉字、英语单词和符号进行标注,生成标注数据,命名为CyberLabel.txt。语料数据中的句子通过编号SNum在标注数据找到对应的句子标注。例如,一个语料句子“黑客已经开始利用MicrosoftTeams”,进行人工标注后得到的标注数据如下表1所示:
表1
Figure 167753DEST_PATH_IMAGE097
在CyberData.txt中,每个句子按照“<SNum>句子文本</SNum>”的格式进行存储。为避免由于少量句子超长,影响数据抽取模型的处理效率,在人工标志阶段本发明限定每个句子的汉字、英语单词和符号数量不超过500个,如果超过500个,人工将其划分为两个句子。CyberData.txt中文本存储如下:
<DOC0001>黑客已经开始利用MicrosoftTeams,并在聊天里传播恶意可执行文件。</DOC0001>
在CyberLabel.txt中,标注数据按以下规则进行存储:
(1)根据人工标注结果,将每个句子的汉字、英语单词和符号,按“BS1,IS1,ES1,SS1,BS2,IS2,ES2,SS2,has,exploit,belong,threat”的顺序进行存储,也就是说在CyberLabel.txt中,每个句子标注文本的第1个位置是标注为BS1的汉字或英语单词;第2个位置是标注为IS1的汉字或英语单词,依次类推,第9个位置是标注为SS2的汉字或英语单词。
(2)不存储标注为其他非实体O的汉字、英语单词和符号。
(3)标签集CyberTag中的某个标签在句子中没有出现时,在标签的对应位置填上NULL。
根据上述规则,句子“<DOC0001>黑客已经开始利用MicrosoftTeams,并在聊天里传播恶意可执行文件。</DOC0001>”,它的标注结果存储如下:
<DOC0001>黑 NULL 客 NULL NULL NULL NULL MicrosoftTeams NULL 利用 NULLNULL</DOC0001>
本实施例标注时只存储标签集中标签对应的汉语或英语单词,可以节省存储空间,同时有利于快速生成标签数组,建立汉字、英语单词和符号与标签的关系。
S4、将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集;通过预处理将语料数据样本集和人工标注数据集转化成数字矩阵集,即适合非结构化文本数据抽取模型处理的数据类型,有利于后续非结构化文本数据抽取模型的训练和验证。预处理还可以对数据进行增强,提高训练出来的非结构化文本数据抽取模型的鲁棒性和泛化性。
优选的,所述将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集,具体包括:
初始化步骤:
设置语料数据样本集的最大句子长度SeqLength=0,设置句子列表DataList、LabelList、AttMaskList、TokenTypeList均为空序列;
根据文本标签集预定义对应的标签字典LabDic,所述标签字典LabDic将文本标签集中的每个标签映射成对应的数字;所述标签字典LabDic增加“[CLS]”和“[SEP]”两个标签和对应的数字;
读取步骤:
读取语料数据样本集CyberData.txt中的一个句子和所述一个句子在人工标注数 据集中对应的标注数据,设读取的句子
Figure 562962DEST_PATH_IMAGE098
Figure 377334DEST_PATH_IMAGE099
表示句子中的汉字或英语单 词或符号,n表示句子中的汉字或英语单词或符号的总数,设句子对应的标注数据
Figure 668638DEST_PATH_IMAGE100
Figure 201251DEST_PATH_IMAGE101
表示标签;
数字化步骤:
对句子
Figure 134572DEST_PATH_IMAGE018
在句子开始和结尾处增加开始符号“[CLS]”和结尾符号“[SEP]”,得到新 的句子
Figure 6713DEST_PATH_IMAGE102
利用中文词字典中汉字、英语单词、符号对应的ID,对句子
Figure 531235DEST_PATH_IMAGE103
按逐个汉字、英语单 词、符号进行分割,将分割后的汉字、英语单词、符号转换成中文词库字典中的ID,得到数组
Figure 223247DEST_PATH_IMAGE104
, K是分割后字符的数量,
Figure 491418DEST_PATH_IMAGE105
表示中文词库字典中的 ID值;
读取句子
Figure 14803DEST_PATH_IMAGE106
对应的标注数据
Figure 631598DEST_PATH_IMAGE107
,对标注数据
Figure 138803DEST_PATH_IMAGE107
按逐个标签进行分割,将分割后的 标签匹配标签字典
Figure 882768DEST_PATH_IMAGE108
中的数字,得到数组
Figure 526239DEST_PATH_IMAGE109
矩阵组建步骤:
创建两个长度为K的数组
Figure 126984DEST_PATH_IMAGE110
Figure 793589DEST_PATH_IMAGE111
,数组
Figure 403562DEST_PATH_IMAGE112
元素为‘1’,数组
Figure 104802DEST_PATH_IMAGE113
元 素为‘0’;
Figure 610869DEST_PATH_IMAGE114
插入
Figure 92666DEST_PATH_IMAGE115
,将
Figure 926237DEST_PATH_IMAGE116
插入
Figure 544300DEST_PATH_IMAGE117
,将
Figure 221269DEST_PATH_IMAGE118
插入
Figure 862466DEST_PATH_IMAGE119
,将
Figure 814241DEST_PATH_IMAGE120
插入
Figure 224494DEST_PATH_IMAGE121
判断所述一个句子的字符数量K是否大于最大句子长度
Figure 603523DEST_PATH_IMAGE122
,如果是则设置更 新
Figure 528753DEST_PATH_IMAGE123
,如果不是则不更新
Figure 956324DEST_PATH_IMAGE122
判断步骤:判断是否完成语料数据样本集的最后一个句子的处理,若不是则对下一个句子循环执行读取步骤、数字化步骤和矩阵组件步骤,若是则执行数据补齐步骤;
数据补齐步骤:
遍历
Figure 548979DEST_PATH_IMAGE124
,如果
Figure 285860DEST_PATH_IMAGE125
长度小于
Figure 698386DEST_PATH_IMAGE122
,则在
Figure 929648DEST_PATH_IMAGE125
尾部用整数‘0’补齐,使得
Figure 111230DEST_PATH_IMAGE125
的长度等于
Figure 35324DEST_PATH_IMAGE122
,对应的
Figure 935147DEST_PATH_IMAGE126
标签用‘-1’补齐,对应的
Figure 766837DEST_PATH_IMAGE127
补‘0’,对应的
Figure 6188DEST_PATH_IMAGE128
补‘- 1’,使得长度均等于
Figure 897921DEST_PATH_IMAGE129
。通过统一
Figure 973455DEST_PATH_IMAGE125
的长度,有利于后续非结构化文本数据抽取模型 的抽取效率。本实施例应用VocabDic中文词库字典,将分割好的汉字字符、英语单词和符号 映射为对应的ID。本发明VocabDic中文词库字典采用Google Bert-Base-Chinese预训练模 型中自带的中文词库字典,建立汉字字符、英语单词、符号和对应ID的关系,它包含了21128 个符号、汉字、英语单词,涵盖了大部分汉字、英语单词和符号。以下是一些常用字符和ID的 对应关系,‘[PAD]’=0,‘[UNK]’=100,‘[CLS]’=101,‘[SEP]’=102等。
本实施例应用标签字典LabDic将标签数据转换成标签对应的ID。本实施例定义了15种标签,例如,定义 LabDic={‘[O]’=0,‘[BS1]’=1,‘[IS1]’=2,‘[ES1]’=3,‘[SS1]’=4,‘[BS2]’=5,‘[IS2]’=6,‘[ES2]’=7,‘[SS2]’=8,‘[has]’=9,‘[exploit]’=10,‘[belong]’=11,‘[threat]’=12,‘[CLS]’=13,‘[SEP]’=14}。
在本实施例中,以句子
Figure 608836DEST_PATH_IMAGE130
=“[CLS]黑客已经开始利用MicrosoftTeams[SEP]”为例, 经过预处理后变成数组
Figure 968273DEST_PATH_IMAGE131
=[101, 3527, 100, 2158, 5756, 100, 2185, 4095, 2086, 100, 100, 378, 8317, 12409, 10150, 9786, 8608, 8118, 100, 100, 5732, 100, 665, 100, 100, 100, 100, 100, 100, 100, 100, 5666, 100, 100, 100, 4422, 100, 100, 100, 6719, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
S5、将语料数据样本集和人工标注数据集对应的数字矩阵集均对应地分为训练集和测试集;通过划分训练集和测试集,达到对非结构化文本数据抽取模型进行科学的处理的效果,训练集用于训练模型使其收敛,测试集用于对收敛的模型进行测试,进而可以对模型的参数进行调优,提高模型的泛化性,提高非结构化文本数据抽取模型的适用性,还可以避免由于数据集较为单一,模型发生过拟合,影响模型的效果。
本实施例所用的数据集共有4000个句子,分割后的句子最大字符长度为SeqLength=99,因此经过预处理后,形成4个长度为4000的List,分别为DataList、LabelList、AttMaskList、 TokenTypeList, List中的每个元素长度为SeqLength=99。DataList其中80%作为训练集将用作模型训练,20%作为测试集用作模型测试。
CyberData.txt和CyberLabel.txt组成本实施例的数据集。在数据集中随机选择3200个句子作为训练集,将剩余的800个句子作为测试集。
训练集将作为本发明非结构化文本数据抽取模型的输入,用于训练数据抽取模型的参数,使其达到收敛。测试集用于对模型准确率进行测试,检验模型的效果。
如图2所示,本实施例的网络安全领域非结构化文本数据抽取模型的神经网络由BERT层、BiGRU层、CRF三层组成。第一层是BERT层,用于将预处理后的文本序列进行字嵌入,把句子中的汉字、英语单词和符号转换成向量,一个句子由多个字符组成,因此在此层输入句子文本序列,输出特征矩阵;第二层是BiGRU层,用于将BERT层输出的特征向量输入到BiGRU层进行特征提取,得到每个汉字、英语单词和符号对于各类标签的非归一化概率分布,根据权重调整BiGRU层的隐藏状态,然后再输出特征向量;第三层是CRF层,结合字符与标签的发射概率以及标签与标签转移概率,通过CRF层输出全局最优的标签序列。
本实施例的非结构化文本数据抽取模型的神经网络由BERT(BidirectionalEncoder Representation from Transformers,BERT)层、BiGRU(Bidirectional GatedRecurrent Unit,BiGRU)层和CRF(Conditional random field,CRF)层三层组成。网络安全领域文本抽取与其他领域文本抽取相比较,主要特点是中英文文本混合现象非常普遍,给文本抽取带来难度。本发明BERT层采用Google BERT-Base-Chinese模型和工具,对网络安全领域文本的中文汉字、英语单词和符号进行分割,并表示成向量;BiGRU层提取了句子汉字、英语单词和符号的语义特征,与传统BiGRU模型不同的是,本实施例的BiGRU层输出时在句子级别对隐藏特征权重进行自动计算,并根据权重调整了BiGRU层输出结果,这种调整提高了句子中重要汉字、英语单词和符号的权重,提高了模型文本数据抽取的准确率;BiGRU模型提取到文本序列中汉字、英语单词和符号的特征结果,但可能会存在标签标注不合理的现象,比如连续的2个字符,输出如BS1,BS1这种组合,因此本实施例加入CRF层,通过CRF模型对BiGRU层输出的序列进行条件约束,通过模型训练自动调整CRF层的参数,达到限制BiGRU层输出无效序列的效果,提高模型的识别精确度,从而提高网络安全的非结构化文本数据抽取的准确率。
本实施例的BERT层包括字嵌入和Transformer两层。字嵌入用于将对输入字符、位置进行编码,生成向量,并输入到Transformer进行特征提取。
读取DataList中的
Figure 765328DEST_PATH_IMAGE132
Figure 639743DEST_PATH_IMAGE133
,本数据集中 分割后句子的最大字符数为
Figure 750918DEST_PATH_IMAGE134
,即
Figure 27179DEST_PATH_IMAGE135
,利用Pytorch的nn模块对
Figure 198397DEST_PATH_IMAGE136
进行Word Embedding操作,将
Figure 560108DEST_PATH_IMAGE137
自动转换成词向量
Figure 271713DEST_PATH_IMAGE138
Figure 855009DEST_PATH_IMAGE138
r维列向量,当采用Google BERT- Base-Chinese模型进行嵌入操作,
Figure 259446DEST_PATH_IMAGE139
,即
Figure 780557DEST_PATH_IMAGE138
是768维列向量,
Figure 561431DEST_PATH_IMAGE136
转换成矩阵
Figure 749967DEST_PATH_IMAGE140
Figure 325305DEST_PATH_IMAGE141
Figure 130450DEST_PATH_IMAGE140
是一个
Figure 387119DEST_PATH_IMAGE142
矩阵,在本发明中
Figure 492478DEST_PATH_IMAGE140
是大小为
Figure 918344DEST_PATH_IMAGE143
的矩阵。
对于实体识别任务而言,汉字或者英文单词在句子中的位置特征非常重要,因此, 本发明考虑字符位置关系,令i为当前汉字或者英文单词在句中的位置,
Figure 741943DEST_PATH_IMAGE048
位置字符的位置值
Figure 333462DEST_PATH_IMAGE144
为:
Figure 496590DEST_PATH_IMAGE145
利用Pytorch的nn模块对
Figure 413730DEST_PATH_IMAGE144
进行Word Embedding操作,将
Figure 396730DEST_PATH_IMAGE144
自动转换成词向量
Figure 57518DEST_PATH_IMAGE146
Figure 75153DEST_PATH_IMAGE146
r维列向量,当采用Google BERT-Base-Chinese模型进行嵌入操作时,
Figure 897615DEST_PATH_IMAGE147
, 即
Figure 430228DEST_PATH_IMAGE146
是768维列向量,
Figure 81658DEST_PATH_IMAGE148
对应的位置矩阵
Figure 16116DEST_PATH_IMAGE149
,
Figure 9480DEST_PATH_IMAGE150
维度 与
Figure 967071DEST_PATH_IMAGE151
的大小一致,是一个
Figure 235242DEST_PATH_IMAGE152
矩阵,在本发明中
Figure 961889DEST_PATH_IMAGE150
Figure 126154DEST_PATH_IMAGE153
矩阵。
将矩阵
Figure 633359DEST_PATH_IMAGE151
和矩阵
Figure 377324DEST_PATH_IMAGE150
相加,得到句子的词嵌入
Figure 20795DEST_PATH_IMAGE154
。采用pytorch nn.LayerNorm对
Figure 575535DEST_PATH_IMAGE155
矩阵进行归一化处理,对归一化处理的结果执行Dropout操作,输出
Figure 38878DEST_PATH_IMAGE156
。 至此,完成文本序列的嵌入操作,下面介绍Transformer。
Transformer由12层Encoder组成,每层Encoder的输出是下一层Encoder的输入, 第1层Encoder的输入是
Figure 648851DEST_PATH_IMAGE156
每个Encoder层包括3个子层,第1子层是自注意力层,第2子层是中间层,第3子层是输出层。下面分别介绍每个子层的组成。
第1子层自注意力层。首先进行初始化,通过nn.Linear创建3个输入为
Figure 84511DEST_PATH_IMAGE157
维列向量、 输出为r维列向量的线性全连接层,分别为Query、Key和Value,本发明中
Figure 121737DEST_PATH_IMAGE158
。将每个 Encoder的输入作为Query、Key和Value层的输入,相当于分别创建三个矩阵
Figure 275638DEST_PATH_IMAGE159
,每个矩 阵的大小均为
Figure 423723DEST_PATH_IMAGE160
,本发明为
Figure 979469DEST_PATH_IMAGE161
。第1层Encoder的自注意力层
Figure 187596DEST_PATH_IMAGE159
的初始 值为
Figure 78061DEST_PATH_IMAGE156
。对矩阵
Figure 29836DEST_PATH_IMAGE159
根据公式
Figure 236827DEST_PATH_IMAGE162
执行计算,得到注意力:
Figure 553539DEST_PATH_IMAGE163
将自注意力层输出时,与下一层建立Dense全连接,并执行Dropout和LayerNorm操作,最后将自注意力输出到下一层。
第2子层中间层。中间层执行一个全连接Dense和激活函数tanh。
第3子层输出层。与下一层建立Dense全连接,并执行Dropout和LayerNorm 操作,最后将Encoder结果输出。
每层Encoder的输出是下一层Encoder的输入,但第12层Encoder的输出是 Transformer模型的输出,输出是通过PyTorch的nn.Linear()函数与BiGRU层建立线性连 接,建立线性连接时输入为r维,输出为q维,在本发明中
Figure 744349DEST_PATH_IMAGE164
Figure 171919DEST_PATH_IMAGE165
。因此,经过BERT模 型层处理后,输出字向量特征矩阵为
Figure 764574DEST_PATH_IMAGE166
,其中
Figure 783346DEST_PATH_IMAGE167
是位置为i的汉字或英语单词的词特征向量,
Figure 399135DEST_PATH_IMAGE168
是一个
Figure 692713DEST_PATH_IMAGE169
的矩阵。
本实施例通过pytorch_pretrained_bert工具包的BertModel工具创建Bert模型, 将Dropout参数设置为0.1,将DataList、AttMaskList、 TokenTypeList作为Bert模型,计算 得到Transformer的第12个encoder输出结果
Figure 825361DEST_PATH_IMAGE170
,
Figure 180436DEST_PATH_IMAGE171
是一个
Figure 949809DEST_PATH_IMAGE169
的矩阵。
Figure 517056DEST_PATH_IMAGE172
本实施例的BiGRU层基于门控制循环单元神经网络。门控制循环单元(Gated Recurrent Unit, GRU)是一种特殊循环神经网络,由长短记忆神经网络(Long Short-Term Memory,LSTM)简化而来的,通过将LSTM模型的输入门、遗忘门和输出门合并成更新门和重 置门,使用更新门和重置门两个门控决定那些信息可以最终作为门控循环单元的输出。GRU 单元模型结构如图2所示。图2中
Figure 143210DEST_PATH_IMAGE173
表示GRU单元t时刻的输入;
Figure 468012DEST_PATH_IMAGE174
是GRU单元t时刻的输出,也 是当前时刻的隐藏状态;
Figure 103392DEST_PATH_IMAGE175
是当前时刻候选隐藏状态;
Figure 462830DEST_PATH_IMAGE176
表示 GRU单元更新门,用于控制前 一时刻
Figure 525463DEST_PATH_IMAGE177
的隐藏状态输出
Figure 134299DEST_PATH_IMAGE178
及当前时刻t的输入
Figure 494742DEST_PATH_IMAGE179
有多少流入当前时刻
Figure 771003DEST_PATH_IMAGE180
的隐藏状态
Figure 942221DEST_PATH_IMAGE181
中, 更新门的值越大,流入信息越多。
Figure 303932DEST_PATH_IMAGE182
是重置门,用于控制前一时刻
Figure 218799DEST_PATH_IMAGE183
的隐藏状态输出
Figure 83987DEST_PATH_IMAGE178
有 多少进入当前时刻t的候选隐藏状态
Figure 488423DEST_PATH_IMAGE175
中,决定前一时刻的状态信息有多少需要被遗忘,重 置门的值越小,进入的信息越少,先前信息遗忘得越多。
Figure 275114DEST_PATH_IMAGE184
Figure 55988DEST_PATH_IMAGE185
Figure 729677DEST_PATH_IMAGE186
Figure 305015DEST_PATH_IMAGE187
Figure 375739DEST_PATH_IMAGE188
是sigmoid函数,
Figure 632408DEST_PATH_IMAGE189
是矩阵乘法,
Figure 737767DEST_PATH_IMAGE190
是矩阵Hadamard积。
Figure 421689DEST_PATH_IMAGE191
Figure 245289DEST_PATH_IMAGE192
Figure 40070DEST_PATH_IMAGE193
是更新门
Figure 999935DEST_PATH_IMAGE194
的 参数;
Figure 917076DEST_PATH_IMAGE195
Figure 149343DEST_PATH_IMAGE196
Figure 810131DEST_PATH_IMAGE197
是重置门参数;
Figure 827766DEST_PATH_IMAGE198
Figure 915808DEST_PATH_IMAGE199
Figure 386103DEST_PATH_IMAGE200
是候选隐藏状态参数。在训练过程中得到,
Figure 850583DEST_PATH_IMAGE201
Figure 722724DEST_PATH_IMAGE202
Figure 981667DEST_PATH_IMAGE193
Figure 735996DEST_PATH_IMAGE195
Figure 695512DEST_PATH_IMAGE196
Figure 218897DEST_PATH_IMAGE197
Figure 852003DEST_PATH_IMAGE198
Figure 359208DEST_PATH_IMAGE199
Figure 837594DEST_PATH_IMAGE200
共9个参数均为num_inputs
Figure 746644DEST_PATH_IMAGE203
num_hiddens的矩阵,通 过torch.nn.Parameter进行创建,在本发明中num_inputs为文本序列的长度,即num_ inputs=sq=99,num_hiddens为隐藏状态的维度,在本发明中num_hiddens=40。
由公式
Figure 285073DEST_PATH_IMAGE204
可以看出,当前时刻
Figure 13995DEST_PATH_IMAGE205
的更新门
Figure 358388DEST_PATH_IMAGE206
可以 控制
Figure 308896DEST_PATH_IMAGE207
时刻的隐藏状态
Figure 346122DEST_PATH_IMAGE208
保存至当前时刻以及当前时刻候选隐藏状态
Figure 500022DEST_PATH_IMAGE209
流入当前时刻 的隐藏状态的数量,
Figure 648107DEST_PATH_IMAGE210
,表示对原本隐藏状态的选择性“遗忘”,
Figure 203853DEST_PATH_IMAGE211
表示对当前节点的候选隐藏状态进 行选择性“记忆”, 当
Figure 411981DEST_PATH_IMAGE212
趋于1时,表示长期的依赖一直存在
Figure 53178DEST_PATH_IMAGE212
趋于0时,表示忘记隐藏信息中 一些不重要的信息。
由公式
Figure 739374DEST_PATH_IMAGE213
可以看出,当前时刻
Figure 165938DEST_PATH_IMAGE214
置门
Figure 279388DEST_PATH_IMAGE215
Figure 470198DEST_PATH_IMAGE216
时 刻隐藏状态
Figure 897768DEST_PATH_IMAGE217
按Hadamard积计算时(矩阵元素与元素相乘),若重置门中的元素值接近‘0’, 那么意味着重置对应隐藏状态元素为‘0’,即大部分丢弃上一时间步的隐藏状态
Figure 224844DEST_PATH_IMAGE208
;若重 置门中的元素值接近‘1’,那么表示大部分保留上一时间步的隐藏状态
Figure 712457DEST_PATH_IMAGE208
。然后,将 Hadamard积的结果与当前时间步的隐藏状态输入
Figure 124984DEST_PATH_IMAGE218
相加,再通过含激活函数tanh的全连接 层计算出候选隐藏状态
Figure 418562DEST_PATH_IMAGE209
在序列处理中,时刻t代表文本序列第
Figure 803407DEST_PATH_IMAGE219
个位置字符。单向GRU模型只能获取前向时 刻的信息,在非结构化文本数据抽取识别任务中,要求模型能充分学习上下文信息,提取文 本深层次的特征。BiGRU模型由两个单向的、方向相反的GRU构成,前向GRU用于捕捉上文信 息,反向GRU用于捕捉下文信息,两个方向相反的GRU同时处理输入,共同决定当前位置的输 出。如图3所示,i位置字符为x i ,对应的向量为
Figure 258659DEST_PATH_IMAGE220
,把BiGRU看作两个单向的GRU,则前向隐 层状态
Figure 611012DEST_PATH_IMAGE221
和反向隐层状态
Figure 442702DEST_PATH_IMAGE222
进行拼接,得到
Figure 744370DEST_PATH_IMAGE223
位置字符的隐藏状态,如下述公式所示
Figure 308207DEST_PATH_IMAGE224
其中GRU()函数表示对输入向量进行非线性变换、编码,得到对应的隐层状态,
Figure 960905DEST_PATH_IMAGE225
作 为下一个字符特征提取的隐藏状态,
Figure 533969DEST_PATH_IMAGE226
Figure 690144DEST_PATH_IMAGE223
字符双向
Figure 690461DEST_PATH_IMAGE227
的前向隐层状态的权重,
Figure 299296DEST_PATH_IMAGE228
Figure 738368DEST_PATH_IMAGE223
字符双 向
Figure 700114DEST_PATH_IMAGE227
的反向隐层状态的权重,
Figure 933650DEST_PATH_IMAGE229
Figure 233044DEST_PATH_IMAGE223
时刻隐层状态的偏置,
Figure 944648DEST_PATH_IMAGE230
Figure 75415DEST_PATH_IMAGE231
Figure 417535DEST_PATH_IMAGE232
通过神经网络训练获 得。
传统BiGRU模型在特征抽取时,所有字符对文本抽取作用相同,然而,实际应用中不同的词对文本数据抽取起着不同的作用,例如名称、动词对网络安全命名实体和关系抽取至关重要,但地点状语、时间状语对网络安全实体识别来说,重要程度极小。为了突出不同字符对文本数据抽取的重要度,本发明对BiGRU的输出层进行改进,对与网络安全实体相关的语义增加特征权重,提升局部特征提取效果。权重的调整过程如下述公式所示:
Figure 963DEST_PATH_IMAGE233
Figure 516258DEST_PATH_IMAGE234
Figure 704794DEST_PATH_IMAGE235
其中,
Figure 280131DEST_PATH_IMAGE236
表示第
Figure 803386DEST_PATH_IMAGE237
个字符不同特征所对应的注意力分数,
Figure 122371DEST_PATH_IMAGE238
表示BiGRU层特征向量, 为第
Figure 165414DEST_PATH_IMAGE237
个字符的隐藏层状态,
Figure 646074DEST_PATH_IMAGE239
是激活函数,
Figure 204094DEST_PATH_IMAGE240
是预设的权重系数矩阵, 表示随机初始化 的注意力矩阵,
Figure 264454DEST_PATH_IMAGE241
是偏移向量;
Figure 958740DEST_PATH_IMAGE242
表示第
Figure 875881DEST_PATH_IMAGE243
个字符的注意力权重,
Figure 124460DEST_PATH_IMAGE244
是注意力向量,
Figure 785248DEST_PATH_IMAGE245
是BiGRU 层中当前输入对应的句子的字符数;
Figure 334041DEST_PATH_IMAGE246
表示BiGRU层特征向量与注意力权重值
Figure 376078DEST_PATH_IMAGE247
合并计算得 到考虑权重后的隐藏层状态值。
本实施例
Figure 908690DEST_PATH_IMAGE248
是80维列向量,设置注意力特征为10维,因此
Figure 310853DEST_PATH_IMAGE249
Figure 714152DEST_PATH_IMAGE250
矩阵,
Figure 238674DEST_PATH_IMAGE251
为10 维列向量,
Figure 196266DEST_PATH_IMAGE252
是80维列向量;
为防止过拟合,对
Figure 198857DEST_PATH_IMAGE252
执行Dropout操作,输出
Figure 925505DEST_PATH_IMAGE253
Figure 355349DEST_PATH_IMAGE254
选用线性全连接函数,利用所述线性全连接函数对
Figure 596974DEST_PATH_IMAGE253
进行线性变换,输出包含权 重信息的特征向量
Figure 590207DEST_PATH_IMAGE255
Figure 499257DEST_PATH_IMAGE256
其中,
Figure 834424DEST_PATH_IMAGE257
是参数矩阵,
Figure 766608DEST_PATH_IMAGE258
是偏置向量。本实施实例标签数量为15种,设置
Figure 111001DEST_PATH_IMAGE257
Figure 812241DEST_PATH_IMAGE259
矩阵,
Figure 318309DEST_PATH_IMAGE258
为15维列向量,
Figure 800106DEST_PATH_IMAGE253
经过线性变换,输出15维列向量
Figure 885873DEST_PATH_IMAGE255
。BiGRU层特征向量经处理后的 输出结果为:
Figure 503936DEST_PATH_IMAGE260
,其中,
Figure 446485DEST_PATH_IMAGE261
为BiGRU输出结果,
Figure 853062DEST_PATH_IMAGE261
是大小为
Figure 539259DEST_PATH_IMAGE262
的矩阵。将Pytorch 的 nn.GRU函数bidirectional 参数设置为true, GRU层数设置为1,调整输出权重,计算可得 BiGRU网络层输出结果
Figure 215091DEST_PATH_IMAGE261
本实施例的CRF层的输入是BiGRU层输出的概率矩阵
Figure 62961DEST_PATH_IMAGE263
,其大小为
Figure 253771DEST_PATH_IMAGE264
,
Figure 681341DEST_PATH_IMAGE265
为句 子的长度,即句子中汉字或单词个数,
Figure 273997DEST_PATH_IMAGE266
为标签种类,
Figure 761610DEST_PATH_IMAGE267
代表句子中第i个字符为第j个标签 的发射概率。在CRF层计算一个转移矩阵
Figure 174136DEST_PATH_IMAGE268
,其大小为
Figure 202135DEST_PATH_IMAGE269
,转移矩阵表示标签与标签之间 的关系,
Figure 836248DEST_PATH_IMAGE270
表示从第
Figure 557079DEST_PATH_IMAGE271
个标签到第
Figure 456902DEST_PATH_IMAGE272
个标签之间的转移概率。对于每一个输入句子序列
Figure 226275DEST_PATH_IMAGE273
,可能的标签标注序列
Figure 527943DEST_PATH_IMAGE274
,则句子序列
Figure 744478DEST_PATH_IMAGE275
的标签标注序列等于
Figure 114280DEST_PATH_IMAGE276
的分数计算公式如公式所示:
Figure 473717DEST_PATH_IMAGE277
其中
Figure 536351DEST_PATH_IMAGE278
是概率矩阵
Figure 145186DEST_PATH_IMAGE279
中的值,表示第i个字符预测为标签
Figure 272674DEST_PATH_IMAGE280
的发 射概率;
Figure 548934DEST_PATH_IMAGE281
是转移矩阵
Figure 720152DEST_PATH_IMAGE282
的值,表示标签
Figure 816284DEST_PATH_IMAGE280
转移到标签
Figure 527889DEST_PATH_IMAGE283
的转移概率;
Figure 861918DEST_PATH_IMAGE284
句子中汉字、英语单 词和符号的总数,
Figure 266354DEST_PATH_IMAGE285
表示输入句子序列
Figure 53045DEST_PATH_IMAGE286
的标签序列为
Figure 302761DEST_PATH_IMAGE287
的分数,等于各个位置的发射概 率和转移概率之和。
设多种自动标注标签序列中与人工标注标签序列一样的序列为正确标签序列
Figure 553613DEST_PATH_IMAGE288
, 分数为
Figure 315902DEST_PATH_IMAGE289
,正确标签序列的分数在所有自动标注标签序列的分数的总和中所占比重为
Figure 386626DEST_PATH_IMAGE290
Figure 705612DEST_PATH_IMAGE290
计算公式如下所示:
Figure 748654DEST_PATH_IMAGE291
其中,
Figure 494893DEST_PATH_IMAGE292
是对输入序列
Figure 787335DEST_PATH_IMAGE293
所有可能出现的自动标注标签序列的集合,
Figure 847694DEST_PATH_IMAGE294
表 示所有可能的自动标注标签序列的分数的指数和。
在进行CRF层训练时,目标是最小化损失函数,采用负对数似然函数作为损失函数,如下式所示:
Figure 807560DEST_PATH_IMAGE295
在训练过程中,按照最小化损失函数原则,通过反向传播结合梯度下降,求解数据模型最优参数。在模型的测试和使用过程,采用Viterbi算法求动态规划的分数最大标注序列,公式如下:
Figure 662384DEST_PATH_IMAGE296
S6、将训练集输入到利用神经网络构建的数据抽取模型中进行训练,得到收敛的数据抽取模型,并利用测试集对抽取模型进行验证。
CyberData.txt和CyberLabel.txt组成本发明的数据集。在数据集中随机选择3200个句子作为训练集,将剩余的800个句子作为测试集。
训练集将作为本发明非结构化文本数据抽取模型的输入,用于训练数据抽取模型的参数,使其达到收敛。测试集用于对模型准确率进行测试,检验模型的效果。
将模型输出的序列与训练集标注序列进行比对,并计算损失函数值,按照最小化损失函数原则,通过反向传播结合梯度下降,求解所述数据抽取模型最优参数,得到收敛后的数据抽取模型,则此时该模型为最优。通过训练的模型,进而高效、准确地对网络安全的非结构化文本数据进行抽取。
本实施例采用Python3.9+pytorch1.11的实验环境进行模型训练与测试。引入Google Bert-Base-Chinese基础架构,它包括12个Transformer层,768维隐藏层和12头多头注意力机制。
在数据集中随机选择3200个句子作为训练集,将剩余的800个句子作为测试集,将训练集和测试集输入模型进行训练和测试。
本实施例采用分类准确率 (Precision)、召回率(Recall)和综合评价指标(F-Measure)判断模型分类效果。
Precision表示被分为攻击类的网络数据中实际为攻击类的比例,计算公式为:
Figure 707700DEST_PATH_IMAGE297
Recall表示被分为攻击类的网络数据占所有攻击类数据的比例,召回率是覆盖面的度量,计算公式为:
Figure 368489DEST_PATH_IMAGE298
F-Measure是Precision和Recall加权平均,用于综合Precision和Recall的评分,本实施例采用F1,计算公式为:
Figure 868347DEST_PATH_IMAGE299
Figure 221968DEST_PATH_IMAGE300
经过测试,得到模型的测试结果如下:
Figure 692263DEST_PATH_IMAGE301
本实施例各标签标注测试结果如下:
Figure 625584DEST_PATH_IMAGE302
实施例2
本实施例提供一种网络安全的非结构化文本数据抽取方法,如图4所示,包括:
T1、获取待处理的非结构化数据,将所述非结构化文本数据进行处理形成以句子为单位的语料数据;
T2、基于文本标签集对所述语料数据进行人工标注得到对应的人工标注数据;
T3、将所述语料数据和对应的人工标注数据进行预处理分别转化成对应的数字矩阵;
T4、将转化得到的数字矩阵输入到收敛的数据抽取模型中,输出得到所述非结构化文本数据对应的自动化标注数据。
在本实施例中,将需要处理的非结构化数据文本文件输入系统,系统以句号作为断句标识,将所述文本文件转换为句子数组,即将所述非结构化文本数据进行处理形成以句子为单位的语料数据;
本实施例将句子数组中的句子逐一输入收敛的数据抽取模型中进行自动标注,输出得到所述非结构化文本数据对应的自动化标注数据。
优选地,本实施例的数据抽取模型的神经网络由BERT(Bidirectional EncoderRepresentation from Transformers,BERT)层、BiGRU(Bidirectional Gated RecurrentUnit,BiGRU)层和CRF(Conditional random field,CRF)层三层组成。第一层是BERT层,用于将预处理后的文本序列进行字嵌入,把句子中的汉字、英语单词和符号转换成向量,一个句子由多个字符组成,因此在此层输入句子文本序列,输出特征矩阵;第二层是BiGRU层,用于将BERT层输出的特征向量输入到BiGRU层进行特征提取,得到每个汉字、英语单词和符号对于各类标签的非归一化概率分布,根据权重调整BiGRU层的隐藏状态,然后再输出特征向量;第三层是CRF层,结合字符与标签的发射概率以及标签与标签转移概率,通过CRF层输出全局最优的标签序列。
网络安全领域文本抽取与其他领域文本抽取相比较,主要特点是中英文文本混合现象非常普遍,给文本抽取带来难度。本发明的BERT层采用Google BERT-Base-Chinese模型和工具,对网络安全领域文本的中文汉字、英语单词和符号进行分割,并表示成向量;BiGRU层提取了句子汉字、英语单词和符号的语义特征,与传统BiGRU模型不同的是,本实施例的BiGRU层输出时在句子级别对隐藏特征权重进行自动计算,并根据权重调整了BiGRU层输出结果,这种调整提高了句子中重要汉字、英语单词和符号的权重,提高了模型文本数据抽取的准确率;BiGRU模型提取到文本序列中汉字、英语单词和符号的特征结果,但可能会存在标签标注不合理的现象,比如连续的2个字符,输出如BS1,BS1这种组合,因此本实施例加入CRF层,通过CRF模型对BiGRU层输出的序列进行条件约束,通过模型训练自动调整CRF层的参数,达到限制BiGRU层输出无效序列的效果,提高模型的识别精确度,从而提高网络安全的非结构化文本数据抽取的准确率。
实施例3
本实施例提供一种网络安全的非结构化文本数据抽取模型训练系统,包括:
标签集预设模块,用于根据网络安全的特性预定义应用于网络安全的文本标签集,文本标签集中包括若干个标签;
样本集获取模块,用于获取非结构化文本数据形成以句子为单位的语料数据样本集;
标注模块,用于基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集;
转化模块,用于将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集;
划分模块,用于将语料数据样本集和人工标注数据集对应的数字矩阵集均对应地分为训练集和测试集;
训练模块,用于将训练集输入到利用神经网络构建的数据抽取模型中进行训练,得到收敛的数据抽取模型,并利用测试集对抽取模型进行验证。
显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (10)

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中的一个句子和所述一个句子在人工标注数据集 中对应的标注数据,设读取的句子
Figure 958057DEST_PATH_IMAGE001
Figure 46099DEST_PATH_IMAGE002
表示句子中的汉字或英 语单词或符号,n表示句子中的汉字或英语单词或符号的总数,设句子对应的标注数据
Figure 516394DEST_PATH_IMAGE003
Figure 980874DEST_PATH_IMAGE004
表示标签;
数字化步骤:
对句子
Figure 649752DEST_PATH_IMAGE005
在句子开始和结尾处增加开始符号“[CLS]”和结尾符号“[SEP]”,得到新的句 子
Figure 846378DEST_PATH_IMAGE006
利用中文词库字典中汉字、英语单词和符号对应的ID,对句子
Figure 866287DEST_PATH_IMAGE007
按逐个汉字、英语单词 和符号进行分割,将分割后的汉字、英语单词和符号转换成中文词库字典中的ID,得到数组
Figure 72140DEST_PATH_IMAGE008
,
Figure 861105DEST_PATH_IMAGE009
是分割后字符的数量,
Figure 25370DEST_PATH_IMAGE010
表示中文词库字典中 的ID值;
读取句子Sen对应的标注数据Lab,对标注数据Lab按逐个标签进行分割,将分割后的标 签匹配标签字典LabDic中的数字,得到数组
Figure 218061DEST_PATH_IMAGE011
矩阵组建步骤:
创建两个长度为K的数组
Figure 24343DEST_PATH_IMAGE012
Figure 605497DEST_PATH_IMAGE013
,数组
Figure 471821DEST_PATH_IMAGE014
元素为‘1’,数组
Figure 935164DEST_PATH_IMAGE015
元素为‘0’;
Figure 482820DEST_PATH_IMAGE016
插入
Figure 980797DEST_PATH_IMAGE017
,将
Figure 955706DEST_PATH_IMAGE018
插入
Figure 906345DEST_PATH_IMAGE019
,将
Figure 54430DEST_PATH_IMAGE020
插入
Figure 859443DEST_PATH_IMAGE021
,将
Figure 801992DEST_PATH_IMAGE022
插入
Figure 505505DEST_PATH_IMAGE023
判断所述一个句子的字符数量K是否大于最大句子长度
Figure 394964DEST_PATH_IMAGE024
,如果是则设置更新
Figure 867534DEST_PATH_IMAGE025
,如果不是则不更新
Figure 184245DEST_PATH_IMAGE026
判断步骤:判断是否完成语料数据样本集的最后一个句子的处理,若不是则对下一个句子循环执行读取步骤、数字化步骤和矩阵组建步骤,若是则执行数据补齐步骤;
数据补齐步骤:
遍历
Figure 375055DEST_PATH_IMAGE027
,如果
Figure 599363DEST_PATH_IMAGE028
长度小于
Figure 129702DEST_PATH_IMAGE029
,则在
Figure 414053DEST_PATH_IMAGE030
尾部用整数‘0’补 齐,使得
Figure 780574DEST_PATH_IMAGE031
的长度等于
Figure 808573DEST_PATH_IMAGE032
,对应的
Figure 255735DEST_PATH_IMAGE033
标签用‘-1’补齐,对应的
Figure 914249DEST_PATH_IMAGE034
补‘0’,对应的
Figure 814072DEST_PATH_IMAGE035
补‘-1’,使得长度均等于
Figure 583445DEST_PATH_IMAGE036
5.根据权利要求1至4任一项所述的一种网络安全的非结构化文本数据抽取模型训练方法,其特征在于,
所述将训练集输入到利用神经网络构建的数据抽取模型中进行训练,得到收敛的数据抽取模型,并利用测试集对抽取模型进行验证,具体包括:
训练集输入到BERT层进行字嵌入,将句子中的汉字、英语单词和符号转化成向量,并对转化后的向量进行特征提取,输出BERT层特征矩阵;
BiGRU层对所述BERT层特征矩阵进行特征提取,得到每个汉字、英语单词和符号对各类标签的非归一化概率分布,并根据权重调整BiGRU层的隐藏状态,输出BiGRU层特征向量;
所述CRF层根据所述BiGRU层特征向量和人工标签数组进行训练,求解所述数据抽取模型最优参数,得到收敛后的数据抽取模型;
将自动化标签数组和人工标签数组进行比对,根据比对结果自动调整所述数据抽取模型参数,得到收敛后的数据抽取模型。
6.根据权利要求5所述的一种网络安全的非结构化文本数据抽取模型训练方法,其特征在于,所述BiGRU层特征向量在输入CRF层之前还进行如下处理:
Figure 885113DEST_PATH_IMAGE037
其中,
Figure 776846DEST_PATH_IMAGE038
表示第
Figure 101648DEST_PATH_IMAGE039
个字符不同特征所对应的注意力分数,
Figure 737029DEST_PATH_IMAGE040
表示BiGRU层特征向量,为第
Figure 893204DEST_PATH_IMAGE039
个字符的隐藏层状态,
Figure 142788DEST_PATH_IMAGE041
是激活函数,
Figure 17203DEST_PATH_IMAGE042
是预设的权重系数矩阵, 表示随机初始化的 注意力矩阵,
Figure 128379DEST_PATH_IMAGE043
是偏移向量;
Figure 139060DEST_PATH_IMAGE044
表示第
Figure 372595DEST_PATH_IMAGE039
个字符不同特征所对应的注意力权重,
Figure 671990DEST_PATH_IMAGE045
是注意 力向量,
Figure 383594DEST_PATH_IMAGE046
是BiGRU层中当前输入对应的句子的字符数;
Figure 514361DEST_PATH_IMAGE047
表示BiGRU层特征向量与注意力 权重值
Figure 856480DEST_PATH_IMAGE048
合并计算得到考虑权重后的隐藏层状态值;
为防止过拟合,对
Figure 705488DEST_PATH_IMAGE047
执行Dropout操作,输出
Figure 177707DEST_PATH_IMAGE049
Figure 162981DEST_PATH_IMAGE050
选用线性全连接函数,利用所述线性全连接函数对
Figure 676002DEST_PATH_IMAGE049
进行线性变换,输出包含权重信 息的特征向量
Figure 12305DEST_PATH_IMAGE051
其中,
Figure 268974DEST_PATH_IMAGE052
是参数矩阵,
Figure 108754DEST_PATH_IMAGE053
是偏置向量;BiGRU层特征向量经处理后的输出结果为:
Figure 854993DEST_PATH_IMAGE054
其中,
Figure 616276DEST_PATH_IMAGE055
为BiGRU层特征向量经处理后的输出结果,
Figure 207794DEST_PATH_IMAGE056
是列向量。
7.根据权利要求5~6任一项所述的一种网络安全的非结构化文本数据抽取模型训练方法,其特征在于,所述CRF层根据所述BiGRU层特征向量和人工标签数组进行训练,求解所述数据抽取模型最优参数,得到收敛后的数据抽取模型,具体包括:
设CRF层的输入包括概率矩阵
Figure 167660DEST_PATH_IMAGE057
,其大小为
Figure 537330DEST_PATH_IMAGE058
,
Figure 317067DEST_PATH_IMAGE059
为对应的每个句子文本序列 的长度,即对应句子中汉字、英语单词和符号的总个数,
Figure 977856DEST_PATH_IMAGE060
为文本标签集中的标签种类;
在CRF层计算一个转移矩阵
Figure 995490DEST_PATH_IMAGE061
,其大小为
Figure 83532DEST_PATH_IMAGE062
,转移矩阵表示标签与标签之间的关系; 对于每一个输入句子序列
Figure 553828DEST_PATH_IMAGE063
,可能的标签标注序列
Figure 752728DEST_PATH_IMAGE064
,则 句子序列W的标签标注序列等于
Figure 687186DEST_PATH_IMAGE065
的分数计算公式如公式(7)所示:
Figure 883812DEST_PATH_IMAGE066
其中
Figure 903721DEST_PATH_IMAGE067
是概率矩阵P中的值,表示第
Figure 640733DEST_PATH_IMAGE068
个字符预测为标签
Figure 118113DEST_PATH_IMAGE069
的发射概率;
Figure 813536DEST_PATH_IMAGE070
是转移矩 阵
Figure 258424DEST_PATH_IMAGE071
的值,表示标签
Figure 533547DEST_PATH_IMAGE072
转移到标签
Figure 442598DEST_PATH_IMAGE073
的转移概率,
Figure 981026DEST_PATH_IMAGE074
k句子中汉字、英语单词 和符号的总数,
Figure 975527DEST_PATH_IMAGE075
表示输入句子序列W的标签序列为l的分数,等于各个位置的发射概率 和转移概率之和;
设多种自动标注标签序列中与人工标注标签序列一样的序列为正确标签序列
Figure 257604DEST_PATH_IMAGE076
,分数 为
Figure 21161DEST_PATH_IMAGE077
,正确标签序列的分数在所有自动标注标签序列的分数的总和中所占比重为
Figure 792807DEST_PATH_IMAGE078
Figure 195976DEST_PATH_IMAGE078
计算公式如公式(8)所示:
Figure 344060DEST_PATH_IMAGE079
其中,
Figure 899807DEST_PATH_IMAGE080
是对输入序列
Figure 107934DEST_PATH_IMAGE081
所有可能出现的自动标注标签序列的集合,
Figure 545869DEST_PATH_IMAGE082
表示所有可能的自动标注标签序列的分数的指数和;在进行CRF层训练 时,目标是最小化损失函数,采用负对数似然函数作为损失函数,如公式(9)所示:
Figure 169748DEST_PATH_IMAGE083
(9)
在训练过程中,按照最小化损失函数原则,通过反向传播结合梯度下降,求解数据模型最优参数;在模型的测试和使用过程,采用Viterbi算法求动态规划的分数最大标注序列,公式如下:
Figure 907897DEST_PATH_IMAGE084
8.一种网络安全的非结构化文本数据抽取模型训练系统,其特征在于,包括:
标签集预设模块,用于根据网络安全的特性预定义应用于网络安全的文本标签集,文本标签集中包括若干个标签;
样本集获取模块,用于获取非结构化文本数据形成以句子为单位的语料数据样本集;
标注模块,用于基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集;
转化模块,用于将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集;
划分模块,用于将语料数据样本集和人工标注数据集对应的数据矩阵集均对应地分为训练集和测试集;
训练模块,用于将训练集输入到利用神经网络构建的数据抽取模型中进行训练,得到收敛的数据抽取模型,并利用测试集对抽取模型进行验证。
9.一种网络安全的非结构化文本数据抽取方法,其特征在于,
获取待处理的非结构化数据,将所述非结构化文本数据进行处理形成以句子为单位的语料数据;
基于文本标签集对所述语料数据进行人工标注得到对应的人工标注数据;
将所述语料数据和对应的人工标注数据进行预处理分别转化成对应的数字矩阵;
将转化得到的数字矩阵输入到权利要求1-7任一项所述的收敛的数据抽取模型中,输出得到所述非结构化文本数据对应的自动化标注数据。
10.一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,其特征在于,所述处理器执行计算机程序时实现权利要求1至7任一项所述的网络安全的非结构化文本数据抽取模型训练方法。
CN202211143694.5A 2022-09-20 2022-09-20 网络安全的非结构化文本数据抽取模型训练方法及系统 Active CN115587594B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211143694.5A CN115587594B (zh) 2022-09-20 2022-09-20 网络安全的非结构化文本数据抽取模型训练方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211143694.5A CN115587594B (zh) 2022-09-20 2022-09-20 网络安全的非结构化文本数据抽取模型训练方法及系统

Publications (2)

Publication Number Publication Date
CN115587594A true CN115587594A (zh) 2023-01-10
CN115587594B CN115587594B (zh) 2023-06-30

Family

ID=84773422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211143694.5A Active CN115587594B (zh) 2022-09-20 2022-09-20 网络安全的非结构化文本数据抽取模型训练方法及系统

Country Status (1)

Country Link
CN (1) CN115587594B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116341554A (zh) * 2023-05-22 2023-06-27 中国科学技术大学 面向生物医学文本的命名实体识别模型的训练方法
CN116542241A (zh) * 2023-06-25 2023-08-04 四川蔚丰云联信息科技有限公司 应急预案的匹配方法及紧急医学救援协同指挥平台系统
CN117422061A (zh) * 2023-12-19 2024-01-19 中南大学 一种文本词项多重分割结果合并标注方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018218705A1 (zh) * 2017-05-27 2018-12-06 中国矿业大学 一种基于神经网络概率消歧的网络文本命名实体识别方法
US20190122145A1 (en) * 2017-10-23 2019-04-25 Baidu Online Network Technology (Beijing) Co., Ltd. Method, apparatus and device for extracting information
CN111694924A (zh) * 2020-06-17 2020-09-22 合肥中科类脑智能技术有限公司 一种事件抽取方法和系统
CN111709241A (zh) * 2020-05-27 2020-09-25 西安交通大学 一种面向网络安全领域的命名实体识别方法
CN112733541A (zh) * 2021-01-06 2021-04-30 重庆邮电大学 基于注意力机制的BERT-BiGRU-IDCNN-CRF的命名实体识别方法
CN112989831A (zh) * 2021-03-29 2021-06-18 华南理工大学 一种应用在网络安全领域的实体抽取方法
CN113408288A (zh) * 2021-06-29 2021-09-17 广东工业大学 一种基于BERT与BiGRU-CRF的命名实体识别方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018218705A1 (zh) * 2017-05-27 2018-12-06 中国矿业大学 一种基于神经网络概率消歧的网络文本命名实体识别方法
US20190122145A1 (en) * 2017-10-23 2019-04-25 Baidu Online Network Technology (Beijing) Co., Ltd. Method, apparatus and device for extracting information
CN111709241A (zh) * 2020-05-27 2020-09-25 西安交通大学 一种面向网络安全领域的命名实体识别方法
CN111694924A (zh) * 2020-06-17 2020-09-22 合肥中科类脑智能技术有限公司 一种事件抽取方法和系统
CN112733541A (zh) * 2021-01-06 2021-04-30 重庆邮电大学 基于注意力机制的BERT-BiGRU-IDCNN-CRF的命名实体识别方法
CN112989831A (zh) * 2021-03-29 2021-06-18 华南理工大学 一种应用在网络安全领域的实体抽取方法
CN113408288A (zh) * 2021-06-29 2021-09-17 广东工业大学 一种基于BERT与BiGRU-CRF的命名实体识别方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
崔雨萌: "《基于深度学习的警情记录关键信息自动抽取》", pages 127 *
牛勇: "《网络安全知识图谱构建的关键技术研究》", pages 20 - 50 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116341554A (zh) * 2023-05-22 2023-06-27 中国科学技术大学 面向生物医学文本的命名实体识别模型的训练方法
CN116341554B (zh) * 2023-05-22 2023-08-29 中国科学技术大学 面向生物医学文本的命名实体识别模型的训练方法
CN116542241A (zh) * 2023-06-25 2023-08-04 四川蔚丰云联信息科技有限公司 应急预案的匹配方法及紧急医学救援协同指挥平台系统
CN116542241B (zh) * 2023-06-25 2023-09-08 四川蔚丰云联信息科技有限公司 应急预案的匹配方法及紧急医学救援协同指挥平台系统
CN117422061A (zh) * 2023-12-19 2024-01-19 中南大学 一种文本词项多重分割结果合并标注方法及装置
CN117422061B (zh) * 2023-12-19 2024-03-08 中南大学 一种文本词项多重分割结果合并标注方法及装置

Also Published As

Publication number Publication date
CN115587594B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
CN111709241B (zh) 一种面向网络安全领域的命名实体识别方法
Yao et al. Bi-directional LSTM recurrent neural network for Chinese word segmentation
CN111738003B (zh) 命名实体识别模型训练方法、命名实体识别方法和介质
CN110532353B (zh) 基于深度学习的文本实体匹配方法、系统、装置
CN115587594B (zh) 网络安全的非结构化文本数据抽取模型训练方法及系统
CN111160031A (zh) 一种基于词缀感知的社交媒体命名实体识别方法
CN111666758B (zh) 中文分词方法、训练设备以及计算机可读存储介质
Jiang et al. An LSTM-CNN attention approach for aspect-level sentiment classification
CN115759092A (zh) 一种基于albert的网络威胁情报命名实体识别方法
Han et al. An attention-based neural framework for uncertainty identification on social media texts
Ayifu et al. Multilingual named entity recognition based on the BiGRU-CNN-CRF hybrid model
Li et al. Multi-task deep learning model based on hierarchical relations of address elements for semantic address matching
Han et al. Text adversarial attacks and defenses: Issues, taxonomy, and perspectives
Zhang et al. Description-enhanced label embedding contrastive learning for text classification
Shan Social Network Text Sentiment Analysis Method Based on CNN‐BiGRU in Big Data Environment
CN113434698B (zh) 基于全层级注意力的关系抽取模型建立方法及其应用
CN114722818A (zh) 一种基于对抗迁移学习的命名实体识别模型
CN113822018A (zh) 实体关系联合抽取方法
Zhu et al. A named entity recognition model based on ensemble learning
CN113919351A (zh) 基于迁移学习的网络安全命名实体和关系联合抽取方法及装置
CN113378571A (zh) 一种文本数据的实体数据关系抽取方法
Liu Research on literary translation based on the improved optimization model
Kashihara et al. Automated corpus annotation for cybersecurity named entity recognition with small keyword dictionary
Im et al. Cross-active connection for image-text multimodal feature fusion
Zhang et al. Bi-directional capsule network model for chinese biomedical community question answering

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant