发明内容
本发明提供了一种安全报告文本的三元组抽取方法、装置及电子设备,采用依据句法分析的方式分析安全报告文本,提取三元组,一般使用句法分析工具,将一段文本进行分句处理,依次进行分词(Segmentor)、词性标注(Postagger)、句法分析(Parser)和语义角色标注(SementicRoleLabeller),最后以主谓宾的形式形成三元组;与此同时,在分词过程中,加入安全领域的专有名词,使模型更好识别出主语所在的位置及长度,更好的表达出三元组中主谓宾的含义,以满足从安全报告中准确进行情报分析和筛查的需求。
根据本发明的第一方面,提供了一种安全报告文本的三元组抽取方法,包括:
S1,获取安全报告文本;
S2,对所述安全报告文本进行分句处理;
S3,利用融合外部知识构建的分词和词性标注联合模型对所述分句处理的结果进行分词处理和词性标注,输出分词与词性标注结果;
S4,基于依存句法分析方法对所述分词与词性标注结果进行句法分析,获得其中的语法成分以及所述语法成分之间的关系;
S5,进行语义角色标注,获得给定谓语的论元;
S6,输出主谓宾形式的三元组。
进一步地,所述S2包括:
将所述安全报告文本基于jieba库以标点符号进行分句处理,所述标点符号包括逗号、顿号、句号、叹号和/或问号。
进一步地,所述融合外部知识构建的分词和词性标注联合模型包括依次连接的编码层、双通道注意力模型、解码层和输出层;所述编码层包括基于安全知识图谱的K-Bert模型,所述双通道注意力模型包括安全自定义词典、词性标签以及通过NLP工具箱生成的句法信息,所述解码层包括条件随机场。
进一步地,所述安全自定义词典包括安全领域的专有名词,所述专有名词包括攻击模式、攻击类型、漏洞类型、威胁组织和/或黑客组织。
进一步地,在所述S3之后和所述S4之前,包括:
判断分词与词性标注结果中是否存在专有名词,若是,则将专有名词划分为主语或宾语,然后执行S4;若否,则执行S4。
进一步地,所述S4包括:基于模型编码器内的Electra Small+BiAffine Parser+Eisner模型算法进行句法分析。
进一步地,所述S4包括:所述Electra Small+BiAffine Parser+Eisner模型算法中的BiAffine Parser模型算法使用词性嵌入作为所述模型编码器的辅助输入进行句法分析。
根据本发明的第二方面,提供一种安全报告文本的三元组抽取装置,包括:
文本获取模块,获取安全报告文本;
分句处理模块,用于对所述安全报告文本进行分句处理;
分词处理与词性标注模块,用于利用融合外部知识构建的分词和词性标注联合模型对所述分句处理的结果进行分词处理和词性标注,输出分词与词性标注结果;
句法分析模块,用于基于依存句法分析方法对所述分词与词性标注结果进行句法分析,获得其中的语法成分以及所述语法成分之间的关系;
语义角色标注模块,用于进行语义角色标注,获得给定谓语的论元;
输出模块,用于输出主谓宾形式的三元组。
根据本发明的第三方面,提供了一种电子设备,包括处理器和存储器,所述存储器存储有多条指令,所述处理器用于读取所述多条指令并执行如第一方面所述的方法。
根据本发明的第四方面,提供了一种计算机可读存储介质,所述计算机存储介质存储有多条指令,所述多条指令可被处理器读取并执行如第一方面所述的方法。
本发明提供基于依存句法分析的安全领域三元组自动化抽取方法、装置及电子设备,利用融入外部知识的双通道注意力模型实现分词和词性标注的联合任务,消除带有杂音的句法知识带来的歧义问题;同时使用依据句法分析的工具pyltp,并加入自定的字典,使其更好地的应用于安全领域的句法分析;整套自动化处理流程对安全信息具有较高的适配度,自定义字典中包含安全领域的专有名词,辅助进行模型训练,输出主谓宾形式的三元组,提取两个实体间的关系。将依存句法的三元组抽取应用于安全领域,既大大提高了安全信息转化为知识的效率,也为构成知识图谱,发现实体间的隐藏关系奠定基础。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案做详细的说明。
三元组可以基于依存句法和语义角色标注的事件进行抽取。句法分析是自然语言中重要组成部分,它分析句子的句法结构(主谓宾结构)和词汇间的依存关系(并列,从属等)。通过句法分析,可以为语义分析,情感倾向,观点抽取等安全领域的NLP应用场景打下坚实的基础。句法分析分为句法结构分析(syntactic structure parsing)和依存关系分析(dependency parsing)。以获取整个句子的句法结构或者完全短语结构为目的的句法分析,被称为成分结构分析(constituent structure parsing)或者短语结构分析(phrasestructure parsing);另外一种是以获取局部成分为目的的句法分析,被称为依存分析(dependency parsing)。
语义依存关系偏向于介词等非实词的在语句中的作用,而句法结构分析则更偏向于名词、动词、形容词等实词。因此语义依存关系分析,通过识别词汇间的从属 并列递进等关系,可以获得较深层的语义信息。
参考图1,在一些实施例中,提供一种安全报告文本的三元组抽取方法,包括:
S101,获取安全报告文本;
S102,对安全报告文本进行分句处理;
S103,利用融合外部知识构建的分词和词性标注联合模型对分句处理的结果进行分词处理和词性标注,输出分词与词性标注结果;
S104,基于依存句法分析方法对分词与词性标注结果进行句法分析,获得其中的语法成分以及语法成分之间的关系;
S105,进行语义角色标注,获得给定谓语的论元;
S106,输出主谓宾形式的三元组。
具体地,步骤S102包括:
将安全报告文本基于jieba库以标点符号进行分句处理,标点符号包括逗号、顿号、句号、叹号和/或问号。
如本实施例的如下一段话:
研究人员发现该蠕虫至少针对31个已知漏洞,涉及最近一年发现的远程代码漏洞F5 BIG-IP流量管理用户界面(CVE-2020-17496),以及FUEL CMS中的SQL注入漏洞(CVE-2020-17463)。除了在机器安装初始感染负载X10-unix(Go语言二进制文件)和Monero加密挖掘软件外,该恶意软件还打开监听30003和30006端口的后门,将受害者的外部IP地址上传到私有Pastebin,并尝试通过5555端口连接到Android Debug Bridge上。成功连接后,X10-unix运行一个脚本,该脚本上传以base64编码的本机二进制文件(blu)和Android APK(weixin.apk)。blu探测设备的蓝牙硬件并安装APK,APK将设备的IP地址上传到上述的Pastebin,然后下载并安装ARM CPU版本的X10-unix。
经过分句处理后转换为:
涉及最近一年发现的远程代码漏洞F5 BIG-IP流量管理用户界面(CVE-2020-17496)
以及FUEL CMS中的SQL注入漏洞(CVE-2020-17463)
除了在机器安装初始感染负载X10-unix(Go语言二进制文件)和Monero加密挖掘软件外
该恶意软件还打开监听30003和30006端口的后门
并尝试通过5555端口连接到Android Debug Bridge上
该脚本上传以base64编码的本机二进制文件(blu)和Android APK(weixin.apk)
APK将设备的IP地址上传到上述的Pastebin
然后下载并安装ARM CPU版本的X10-unix
参见图2,具体地,融合外部知识构建的分词和词性标注联合模型包括依次连接的编码层、双通道注意力模型、解码层和输出层;编码层包括基于安全知识图谱的K-Bert模型,双通道注意力模型包括安全自定义词典、词性标签以及通过NLP工具箱生成的句法信息,解码层包括条件随机场。
其中双通道注意力模型依据注意力机制建立,并结合注意力机制使得自然语言处理更加优化。通过计算概率分布,选择出对当前任务目标更关键的信息,从而对深化学习模型起到优化作用。
在编码层所适用的为基于安全知识图谱的K-Bert模型。K-Bert模型集成到下游任务中,并作为特定于任务的体系结构进行动态调整。与ELMo适用独立训练的从左到右和从右到左LSTM的级联生成下游任务的特征不同,Bert使用强大的双向Transformer编码器,并以遮蔽语言建模(Masked language model, MLM)和下一句话预测(Next senseprediction, NSP)为无监督目标,使模型输出的每个字与词的向量标识都能尽可能全面、准确地刻画输入文本的整体信息。且输入表征(Input embedding)是通过对相应词的词块嵌入(Token embedding)、段嵌入(Segment embedding)和位置嵌入(Position embedding)求和来构造,包含更多的参数,具有更强的词向量标识功能。
Bert在大量句子级和Token级任务上获得更好的性能。双通道注意力模型在结构上采用2个信息处理通道:左侧为句法知识注意力通道(Syntactic knowledge attentionchannel, SAC),右侧为上下文特征注意力通道(Contextual features attentionchannel, CAC)。
输入层对于一条文本句子序列,经分词后的词语序列{W1, W2,…,Wn}作为SAC的输入,经过上下文特征集合的提取策略,进而得到由该文本句子提取的上下文特征信息词集合{E1, E2,…Em}作为CAC的输入;然后利用基于安全知识图谱的K-Bert为整个模型提供词向量,能配合上下文语境实现词向量的动态调整,更好的将上下文特征和关系嵌入训练模型,从而得到句法知识词向量矩阵Rs和上下文特征词向量矩阵Rc:
Rs=s1⊕s2⊕…⊕sn
Rc=c1⊕c2⊕…⊕cm
式中:⊕为行向量连续运算符,Rs和Rc的维数即为安全领域文本中词语的数目和上下文特征词的数量。
具体地,安全自定义词典包括安全领域的专有名词,专有名词包括攻击模式、攻击类型、漏洞类型、威胁组织和/或黑客组织。
标注安全分析报告中常用的安全领域专有名词,形成自定义词典,从而防止分词效果不理想,如“僵尸网络”分为了“僵尸”、“网络”。“GitHub存储库”分为了“GitHub”、“存储库”等。引入词典进行更为准确的分词,同时,返回值类型是native的VectorOfString类型,可以使用list转换成Python的列表类型。
中文分词和词性标注是两个不同的任务。词性标注是在已经切分好的文本中,给每一个词标注其所属的词类,其中,v代表动词、n代表名词、c代表连词、d代表副词、wp代表标点符号。词性标注对后续句子理解有很重要的作用。在词性标注中,歧义仍然是较难处理的问题。同时句法标注本身需要大量的时间和人力成本。在以往的标注工作中,使用外部自动工具获取句法知识是主流方法。在这种情况下,如果模型不能识别并正确处理带有杂音的句法知识,很可能会被不准确的句法知识误导,做出错误的预测,因此采用步骤S103的方法,包括:
在编码层建立基于安全知识图谱的K-Bert与训练模型,并进行安全分析报告文本的嵌入;
在编码层中建立双通道注意力模型,所述双通道注意力模型包括所述自定义词典、所述词性标注形成的词性标签以及通过NLP工具箱自动分析生成的句法信息,所述句法信息包括句法成分和/或依赖关系;
在解码层通过条件随机场实现分词和词性标注的下游任务。
例如:
(1)将下列句分词为:
研究人员发现该蠕虫至少针对31个已知漏洞,
分词后结果如下:
研究人员 发现 该蠕虫 至少 针对 31个 已知漏洞,
(2)词性标注(Postagger),就是给这一句话中的每个词一个词性类别。其中,v代表动词、n代表名词、c代表连词、d代表副词、wp代表标点符号。
研究人员发现该蠕虫至少针对31个已知漏洞,
n v n d v m q n wp
具体地,在步骤S103之后和步骤S104之前,包括:
判断分词与词性标注结果中是否存在专有名词,若是,则将专有名词划分为主语或宾语,然后执行S104;若否,则执行S104。
具体地,步骤S104实施的原理在于依存语法 (Dependency Parsing, DP) ,依存语法通过分析语言单位内成分之间的依存关系揭示其句法结构,包括:基于模型编码器内的Electra Small+BiAffine Parser+Eisner模型算法进行句法分析,其中BiAffineParser模型算法使用词性嵌入作为模型编码器的辅助输入进行句法分析,Eisner算法是针对依存句法分析的精确解码算法。直观来讲,依存句法分析识别句子中的“主谓宾”、“定状补”这些语法成分,并分析各成分之间的关系。
具体地,步骤S105进行语义角色标注,标注句子中某些短语为给定谓词的论元(语义角色) ,形成三元组。
如:
['研究人员', '发现', '该蠕虫漏洞']
['该蠕虫', '知', '漏洞']
参考图3,在一些实施例中,提供一种安全报告文本的三元组抽取装置,包括:
文本获取模块201,获取安全报告文本;
分句处理模块202,用于对所述安全报告文本进行分句处理;
分词处理与词性标注模块203,用于利用融合外部知识构建的分词和词性标注联合模型对所述分句处理的结果进行分词处理和词性标注,输出分词与词性标注结果;
句法分析模块204,用于基于依存句法分析方法对所述分词与词性标注结果进行句法分析,获得其中的语法成分以及所述语法成分之间的关系;
语义角色标注模块205,用于进行语义角色标注,获得给定谓语的论元;
输出模块206,用于输出主谓宾形式的三元组。
参考图4,在一些实施例中,还提供一种电子设备,包括处理器301和存储器302,存储器302存储有多条指令,处理器301用于读取所述多条指令并执行基于安全报告文本的三元组抽取方法,例如包括:获取安全报告文本;对安全报告文本进行分句处理;利用融合外部知识构建的分词和词性标注联合模型对分句处理的结果进行分词处理和词性标注,输出分词与词性标注结果;基于依存句法分析方法对分词与词性标注结果进行句法分析,获得其中的语法成分以及语法成分之间的关系;进行语义角色标注,获得给定谓语的论元;以及输出主谓宾形式的三元组。
在一些实施例中,还提供一种计算机可读存储介质,所述计算机存储介质存储有多条指令,所述多条指令可被处理器读取并执行上述的安全报告文本的三元组抽取方法,例如包括:获取安全报告文本;对安全报告文本进行分句处理;利用融合外部知识构建的分词和词性标注联合模型对分句处理的结果进行分词处理和词性标注,输出分词与词性标注结果;基于依存句法分析方法对分词与词性标注结果进行句法分析,获得其中的语法成分以及语法成分之间的关系;进行语义角色标注,获得给定谓语的论元;以及输出主谓宾形式的三元组。
综上,上述实施例提供的安全领域文本的三元组抽取方法、装置及电子设备,至少包括如下有益效果:
(1)所使用的Bert模型的较传统的word2vec,glove等word embedding技术效果更好,虽然word embedding技术也是通过无监督的训练让模型预先掌握了一些基础的语言知识,但是其无论从预训练的模型复杂度还是无监督学习的任务难度都无法和Bert相比。
(2)基于依存句法分析的安全领域的三元组自动化抽取系统及其中的融入外部知识的双通道注意力模型和自定义的安全字典。
字典中需包括大量安全领域的专有名词,使模型在分词的过程中,正确的划分专有名词,有效解决了未登录词识别和分词过程中的歧义问题,提高三元组抽取的准确率。专有名词包括攻击模式,攻击类型,漏洞类型,威胁组织,黑客组织等。我们使用的为哈尔滨工业大学研发的pyltp中文自然语言处理工具,进行依存句法分析,进而实现三元组抽取。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。