APP下载

基于多特征的信息安全事件语料标注方法

2019-03-12郭婷婷刘嘉勇

现代计算机 2019年5期
关键词:语料语义标签

郭婷婷,刘嘉勇

(1.四川大学电子信息学院,成都 610065;2.四川大学网络空间安全学院,成都 610065)

0 引言

事件语料标注本质是事件提取,即从新闻报道等非结构化文本中提取出包含事件信息的要素,并以结构化形式呈现。事件抽取采用的方法主要有两种,模式匹配和机器学习[1-2]。其中模式匹配是领域专家结合领域知识和语言知识构建目标信息的上下文约束环境及组成规则,抽取时通过各种模式匹配算法找出符合模式约束条件的信息,该方法准确率比较高,但是成本高而且领域移植性差。机器学习方法将事件抽取看成分类问题,人工干预较少,是目前常用方法,抽取结果的好坏取决于构建的分类器以及所选取的特征,构建的分类器需要训练才能达到较好的效果,此时作为训练文本来源的语料库就很重要了。

目前常用的事件语料库主要有自动内容抽取评测会议提供的ACE语料[3-4]、美国高级研究发展学会主办的问题回答系统中的时间和事件的识别会议的Time⁃Bank语料[5]以及上海大学语义智能实验室构建的中文突发事件CEC语料[6]。ACE评测会议将事件抽取这项任务定义为:识别特定类型的事件并进行相关信息的确定和抽取,关注的主要信息包括,事件的类型和子类型、事件元素角色等,ACE评测语料中定义了8个大的事件类型和33个事件子类,但是并不包括信息安全类事件,每种事件对应唯一的模板;TimeBank语料标注了事件、时间、时间指示词以及事件和时间之间的关联关系等它采用了一种改进的XML语言TimeML进行标注,更关注事件的时间信息。CEC语料采用XML语言作为标注格式,其中包含了事件(Event)标签和其他5个事件要素:触发词(Denoter)、时间(Time)、地点(Lo⁃cation)、参与者(Participant)和对象(Object)。

与ACE和TimeBank语料库相比,CEC语料库的规模虽然偏小,但是它对语料的标注更全面,也与本文期望的信息安全事件语料中兴趣点更贴合。目前国内缺少大规模的信息安全语料库作为研究工作的支撑,本文在学习CEC语料库标注规范基础上,人工对语料进行标注。在传统事件识别只利用词汇、词性信息构造特征向量的基础上,引入词与父节点的关系和语义角色来构造特征向量,采用CRF机器学习算法实现事件语料标注。

1 事件模型

1.1 事件定义

事件作为一种信息的表现形式,是指特定人、物在特定的时间,地点发生相互作用的客观事实,通常是句子级的。现在还有一些跨篇章的事件抽取,针对的是以某个主题为中心的一组事件描述,但本文研究的标注方法致力于句子级的事件描述,对于篇章类的描述,首先会进行段落和句子的切分,然后再做事件要素的标注,事件要素就是事件中关注的兴趣点,事件要素又包括触发词(Denoter)和事件元素(Time、Location、Par⁃ticipant、Object)。

1.2 CCEECC语料标注规范分析

中文突发事件语料库(CEC)是由上海大学所构建,从互联网上收集5类(交通事故、地震、恐怖袭击、火灾和食物中毒)突发事件的新闻报道作为生语料,然后再对生语料进行文本预处理、文本分析、事件标注以及一致性检查等处理,最后生成的XML结构的标注结果。

对于一篇新闻报道,CEC语料标注方法首先将所有内容封装到中,文章标题标记为,报道时间标记为<ReportTime>,根据时间类型可分为绝对时间(如2018年11月11日)、相对时间(如3天前),正文内容标记为<Content>,其中不同的段落用<Para⁃graphe>标签隔开,断句后,每一句用<Sentence>标记,一个句子中可能包含多个事件,不同的事件用<Event>标签分隔,一个事件中一定包括<eid>、<Denoter>,其他要素出现次数不定。<eRelation>标记事件关系,<rel⁃Type>标签标记关系类型[7]。</p><p>对CEC语料标注结果进行分析,CEC语料中出现的事件总和为5954,而触发词的个数也是5954,触发词和事件是一一对应的,如果一个句子中有触发词,则认为这是一个事件。利用LTP平台对CEC生语料(未标注前的新闻文本)处理后,将得到的结果与CEC语料标注结果做比对,可以发现事件中触发词是动词、名词或其组合形式的个数是5548,在所有触发词中占比超过九成,所以在后续语料标注中词性会作为标注模型的重要特征。</p><h2>2 信息安全事件标注</h2><p>根据中央标准《信息安全技术信息安全事件分类分级指南》以及中央网兴办发布的《国家网络安全事件应急预案》可知,信息安全事件是指由于人为原因、软硬件缺陷或故障、自然灾害等,对网络和信息系统或者其中的数据造成危害,对社会造成负面影响的事件。可分为有害程序事件、网络攻击事件、信息破坏事件、信息内容安全事件、设备设施故障、灾害性事件和其他事件。</p><p>信息安全事件和突发事件相比,特殊性在于信息安全事件中参与者可能不是传统意义上的人,虽然部分事件描述中也有此类信息,例如事件中出现的攻击人、组织,但所占比例较小。信息安全事件要素中的参与者(Participant)更偏向于软件、供应商、应用程序名称、硬件、操作系统等,例如“Twitter再现Windows 0 day漏洞”这样的报道中,我们认为“Twitter”就是信息安全事件中关注的<Participant>,所以在人工标注事件要素标签时,事件中参与人或组织以及上述类型词均标记为<Participant>标签,而事件描述中出现的除触发词、时间、地点、参与者外其他有意义的实体词被标注为<Object>,例如有害程序事件中常见的“病毒”、“漏洞”,网络攻击事件中“XX攻击”等。</p><p>所以在借鉴CEC语料对事件的标注规则基础上,结合信息安全领域我们的关注点,对于事件标注保留了触发词和事件元素基本的特征,并选择了信息安全领域新闻报道进行深入分析。其中,触发词(Denoter)是指在文本中能明确表示事件发生的词语,事件其他元素包括事件的时间(Time)、地点(Position)、参与者(Participant,事件中参与主体或客体,可能是人、组织或软硬件、操作系统等),其他对象(Object)。本文提出的信息安全事件语料标注方法包括三个部分分别是预处理,事件要素标注和XML结果生成和校验,本文的重点在于中间的事件要素标注部分,标注流程如图1所示。</p><p><img src="https://img.fx361.cc/images/2022/1219/a9879ba8a01d9338ab98531ee128ece52ae26da6.webp"/></p><p>图1 标注流程</p><h3>2.1 预处理</h3>实现信息安全事件文本自动化标注之前需要做一系列预处理工作,包括文本分段分句,句子分词、词性标注、命名实体识别、语义角色标注等,这些前期准备工作每一步都很重要,因为每个任务产生的误差的传播和积累,会影响后续事件抽取的准确度,所以选择要慎重。因为文本分段可以直接利用DOM树中的<p>标签,分句使用“。?!”等标点符号来做正则匹配,都比较容易,而且准确率较高,所以此处不做过多介绍。到了句子层级,本文采用哈尔滨工业大学开发的语言技术平台(LTP)来完成初期的准备工作,该平台目前在中文文本处理领域非常有影响力,提供包括中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等丰富、高效的自然语言处理技术。<p>将新闻文本通过LTP语言技术平台处理过后,可以得到如图2所示的分析结果。</p><p><img src="https://img.fx361.cc/images/2022/1219/e83d33c74941defaa53be9191bcd5870fbd73e86.webp"/></p><p>图2 LTP API分析结果</p><p>图2中第一行是分词结果,第二行是第一行对应分词的id,第三行表示分词对应结果的词性,第四行是实体识别结果,第五行表示依存句法分析结果,第六行是该分词父节点id,第七行表示分词的语义角色。LTP中词性标注集使用的是863标注集,命名实体识别采用的是O-S-B-I-E的标注形式,具体含义如表1表示。</p><p><img src="https://img.fx361.cc/images/2022/1219/de80ab1ac2b71bed0a6324ae2c60d40054fd4e09.webp"/></p><p>表1 O-S-B-I-E标注含义</p><p>LTP平台实体识别模块目前主要识别人名(Nh)、地名(Ns)、机构名(Ni)三种实体,而给出的例子中没有属于这三种实体中的一种,所以实体识别结果全部都是‘O’;依存句法分析结果中出现的‘ATT’表示定中关系,‘ADV’表示状中结构,‘SBV’表示主谓关系,‘HED’表示核心关系,即触发词所在的关系,是整个句子的核心;语义角色中包括核心语义角色和附加语义角色,A0-A5表示核心语义角色,A0表示动作的施事,A1表示动作带来的影响,TMP是附加语义角色,表示时间,关于依存句法分析以及语义角色标注结果其他具体解释可参考LTP使用文档[8]。</p><h3>2.2 事件要素标注</h3><p>(1)模型概述</p><p>在得到LTP对文本的分析结果后,将触发词和事件其他元素的标注看成是序列标注问题。序列标注常见的算法有隐马尔科夫模型(HMM)、最大熵模型(ME)以及条件随机场(CRF)模型[9]。假设模型输入为X,输出是一个序列Y=(yi)i∈V,随机变量X和Y是联合分布,P(Y|X)表示观察序列和标记序列的条件概率模型,P(X)表示隐含的边缘概率模型。</p><p>因为CRF相比于HMM没有严格的独立性假设,可以充分利用上下文信息,而且CRF统计了全局概率,考虑了数据在全局的分布,而不是仅仅在局部归一化,解决了ME中的标记偏置问题,所以本文选用CRF模型对事件要素进行标注。</p><p>CRF是一种无向图模型,对条件分布P(Y|X)进行建模。序列标注使用的是特殊的条件随机场—线性链条 件 随 机 场 。 其 数 学 定 义 是 :设 X=(x1,x2,...,xn) ,Y=(y1,y2,...,yn)都是线性链的随机变量序列,若在给定随机序列X的条件下,随机变量序列Y的条件概率分布P(Y|X)满足马尔科夫性:</p><p><img src="https://img.fx361.cc/images/2022/1219/66ca74dc600344bfea3fe2b380b2cfe7e4f90c1e.webp"/></p><p>(2)特征选择</p><p>特征选择对于模型效果有着直接的影响,传统事件识别只利用词汇、词性信息构造特征向量,通过对CEC语料分析可知,词性和词语所处的上下文环境很重要,词的语义特征对于事件的描述也很关键,除了平面特征,句子结构也要考虑,所以本文使用的CRF模型选取的特征包括:</p><p>①候选词及其词性</p><p>②候选词实体标注结果</p><p>③候选词和父节点的句法关系</p><p>④候选词的语义角色特征</p><p>举个例子来说明特征构成。例如:“境外黑客组织“白象”蛰伏一段时间后,于今年3月上旬对国内发起攻击。”假设“发起”作为候选词,抽取特征为:</p><p>①“发起/v”</p><p>②“O”</p><p>③候选词与父节点的句法关系是“HED”</p><p>④候选词的语义角色特征即动词</p><p>训练语料是在LTP分析基础上,人工对每个分词进行标注,判断其属于关注的事件要素Denoter、Time、Location、Participant、Object中的哪个。</p><p>CRF模型的输入如图3所示。</p><p><img src="https://img.fx361.cc/images/2022/1219/5d7726a44a05884e3bad48f0c4693c53f93a52bc.webp"/></p><p>图3 CRF模型输入格式</p><p>使用新闻文本的上述特征作为输入后,可以得出最后一列特征的概率分布,即会得出一个分词是Time、Denoter、Location、Object、Participant或 null的概率。如果用信息安全领域语料进行训练,则该领域较常用的结构化表达和常见的词语会使分词被标记为其中一个标签的概率大一些,本文选择其中概率最大的作为该分词最后的标注标签。</p><h3>2.3 XXMMLL结果生成和校验</h3><p>本文最终的语料标注结果参照CEC语料,以XML形式表示,生成过程共包含以下几步:</p><p>第一步:调用LTP API处理文本,设置返回结果格式为XML,如图4所示。</p><p>第二步:将LTP分析结果以及人工标注结果整理成CRF模型要求的输入形式,利用训练好的CRF模型对新的语料进行标注</p><p>第三步:XML结果中<sentence>标签后第一个<word>标签前默认是句子中第一个事件的开始边界,插入<Event>标签,根据XML结果中每个词的父节点,与父节点的关系以及模型标注出的触发词来确定事件结束边界,遵循的原则是:一个事件中有且仅有一个触发词,其他可以划分到该事件中的词有以触发词为父节点的词以及这些词的子节点;</p><p>第四步:将CRF模型标注出的其他事件要素用相应的标签标出,标记为null的词不做处理;</p><p>第五步:在一个<Event>标签内,出现两个类型相同的标签,如果它们是相邻的或者两个标签之间的词汇不超过2个,则将两个标签进行合并。</p><p>为了保证标签的正确嵌套,本文利用DTD对XML文件的结构和嵌套要素进行格式校验。</p><p><img src="https://img.fx361.cc/images/2022/1219/075f0e5963f650085d543676c5ab838d20830043.webp"/></p><p>图4 LTP API的XML格式结果</p><h2>3 实验及结果</h2><h3>3.1 实验数据和评价标准</h3><p>(1)实验数据</p><p>本文的数据源是收集自Tools网站的信息安全类新闻文本1060篇,对新闻摘要进行人工标注,将原始新闻文本做分句处理,之后利用LTP API对句子进行分析,将分词的词性、实体识别结果、与父节点的关系、语义角色以及人工标注的事件元素标签融合构建CRF模型的特征向量。</p><p>(2)评价标准</p><p>本文使用自然语言处理中常采用的评价指标准确率P、召回率R和F值对模型的性能进行评价[6-7]。定义使用模型正确标注的事件要素个数为Nright,模型标注出的事件要素总个数为Ncrftag,人工标注的事件要素总个数为Npertag。因为目前没有公开权威的对比语料,暂且认为人工标注的语料准确率比较高,计算召回率的时候,将模型标注和人工标注结果均值作为分母,各指标计算方式如下:</p><p><img src="https://img.fx361.cc/images/2022/1219/d914b64a424a2562f007a6813f431e65ca8f4e49.webp"/></p><h3>3.2 实验设计及结果</h3><p>(1)实验一信息安全事件要素识别</p><p>人工对于1060篇信息安全事件的新闻摘要进行标注,随机选择其中800篇将LTP分析结果和人工标注结果结合,作为CRF模型的特征向量用于训练,这其中包含3489个事件,然后利用训练好的模型对剩下的260篇做测试。测试语料中标注的事件要素个数统计如表2所示,实验结果如表3所示。</p><p><img src="https://img.fx361.cc/images/2022/1219/313a8b2d72a6bab97cb280d54ac82014b8a4685e.webp"/></p><p>表2 多特征CRF模型对信息安全新闻摘要中事件要素标注统计</p><p><img src="https://img.fx361.cc/images/2022/1219/0510278e5eec22fe2838a8b2e351db2788c31785.webp"/></p><p>表3 多特征CRF模型对信息安全新闻摘要事件标注实验结果</p><p>由实验结果可以看出,利用本文提出的多特征融合的CRF模型对信息安全事件中的事件要素提取F值都超过60%,说明该模型是有效的。其中Time要素结构比较单一,识别效果最好;Denoter识别效果也不错,但是准确率不够高,经分析可能原因是预处理结果不理想,例如“攻击”一词在普通事件中常作为动词,就是一个事件中的Denoter,如“李某疯狂攻击他人”,而信息安全事件中攻击经常是名词,通常是事件要素中的 Object,如“对国内发起攻击”或者“XSS攻击”,这种不足可以通过构建信息安全领域触发词表改进;Partic⁃ipant和Object成分复杂,尤其Participant标签中涵盖内容过多,所以模型识别效果还有较大提升空间。</p><p>(2)实验二与只使用常用特征的CRF模型标注作对比实验</p><p>为了更客观地说明多特征融合的CRF模型的有效性,选用常用特征CRF模型作对比实验。实验语料和步骤与实验一基本相同,只是构建特征向量时不加入句法和语义角色特征。多特征融合的CRF模型实验结果如实验一中表3所示,只使用常用特征的CRF模型对事件标注要素个数统计如表4所示,实验结果如表5所示,对比实验结果如图5所示。</p><p><img src="https://img.fx361.cc/images/2022/1219/2c7a7a945f3cda9a4b3b0ae56d0a7408f3148417.webp"/></p><p>表4 常用特征CRF模型对信息安全新闻语料要素标注统计</p><p><img src="https://img.fx361.cc/images/2022/1219/5ef210fd443205550e2d904e656826037a486ab6.webp"/></p><p>表5 常用特征CRF模型对信息安全新闻事件标注实验结果</p><p><img src="https://img.fx361.cc/images/2022/1219/f137833c2ee1a91d153f5fc187579ceb232a2a6d.webp"/></p><p>图5 多特征CRF模型和简单CRF模型对比图</p><p>分析实验结果,本文提出的CRF模型相比较只使用常用特征的CRF模型而言,Denoter的F值提升12.3%,Time的F值提升17.77%,Location的F值提升11.91%,Participant的F值提升10.82%,Object的F值提升21.26%。由对比结果图可直观看出,加入句法特征和语义角色特征后模型对每种事件要素的识别率都有了显著地提高。</p><h2>4 结语</h2><p>本文提出一种将信息安全新闻文本标注为事件语料的方法,提高了语料标注的效率。其中使用的CRF模型在构建特征向量时,除了常用特征外,还加入了候选词与其父节点的句法关系特征以及语义角色特征,实验证明有一定的效果。对于构建大规模语料库时,这种方法可以作为人工标注的前期工作,减少人力成本,加快标注速度。</p><p>当然本文提出的方法还有很大改进空间,针对信息安全领域的触发词和事件元素识别,后续可以考虑构建自定义的信息安全领域事件要素词典,然后和机器学习的模型相结合,进而识别出事件所属类别。除此之外,一篇语料会存在多个事件,事件之间会存在语义上的关系,这对于后续的事件分析很重要,现在的标注方案没有将其考虑在内,可以在此方面继续做深入研究。</p></div></div> <!-- <div class="m_article_pdf"><a href="https://cimg.fx361.com/kkb.apk">查看pdf文档请下载app</a></div>--><div class="article_love_part"> <h3>猜你喜欢</h3> <div class="article_love_keyword"><span><a href="/tags/d/8/65947cd2d36f2941/1.html" target="_blank">语料</a></span><span><a href="/tags/5/a/3ec7629d528fb6a2/1.html" target="_blank">语义</a></span><span><a href="/tags/1/d/2f66aa86e2aa1c1e/1.html" target="_blank">标签</a></span></div> <div class="article_love_news"><dd><a href="/news/2022/0831/11267948.html" target="_blank" title="真实场景水下语义分割方法及数据集">真实场景水下语义分割方法及数据集</a></dd><dd><a href="/news/2021/0622/12450483.html" target="_blank" title="面向低资源神经机器翻译的回译方法">面向低资源神经机器翻译的回译方法</a></dd><dd><a href="/news/2019/1103/5955165.html" target="_blank" title="可比语料库构建与可比度计算研究综述">可比语料库构建与可比度计算研究综述</a></dd><dd><a href="/news/2018/0830/12546974.html" target="_blank" title="无惧标签 Alfa Romeo Giulia 200HP">无惧标签 Alfa Romeo Giulia 200HP</a></dd><dd><a href="/news/2018/0509/11166406.html" target="_blank" title="不害怕撕掉标签的人,都活出了真正的漂亮">不害怕撕掉标签的人,都活出了真正的漂亮</a></dd><dd><a href="/news/2016/0311/11669282.html" target="_blank" title="“吃+NP”的语义生成机制研究">“吃+NP”的语义生成机制研究</a></dd><dd><a href="/news/2015/1109/3137970.html" target="_blank" title="让衣柜摆脱“杂乱无章”的标签">让衣柜摆脱“杂乱无章”的标签</a></dd><dd><a href="/news/2015/0707/1048638.html" target="_blank" title="科学家的标签">科学家的标签</a></dd><dd><a href="/news/2015/0311/12784863.html" target="_blank" title="情感形容词‘うっとうしい’、‘わずらわしい’、‘めんどうくさい’的语义分析">情感形容词‘うっとうしい’、‘わずらわしい’、‘めんどうくさい’的语义分析</a></dd><dd><a href="/news/2015/0227/10952275.html" target="_blank" title="汉语依凭介词的语义范畴">汉语依凭介词的语义范畴</a></dd></div> </div><div class="phbk_part"><h3>杂志排行</h3> <ul><li><a href="/bk/hzjjykj/202413.html" class="title">《合作经济与科技》</a><a href="/bk/hzjjykj/202413.html" class="date">2024年13期</a></li><li><a href="/bk/hyyjk/202410.html" class="title">《婚育与健康》</a><a href="/bk/hyyjk/202410.html" class="date">2024年10期</a></li><li><a href="/bk/swyzhsby/20247.html" class="title">《思维与智慧·上半月》</a><a href="/bk/swyzhsby/20247.html" class="date">2024年7期</a></li><li><a href="/bk/tckjyjs/202311.html" class="title">《陶瓷科学与艺术》</a><a href="/bk/tckjyjs/202311.html" class="date">2023年11期</a></li><li><a href="/bk/zgsr/20247.html" class="title">《中国商人》</a><a href="/bk/zgsr/20247.html" class="date">2024年7期</a></li><li><a href="/bk/jsbl/20244.html" class="title">《教师博览》</a><a href="/bk/jsbl/20244.html" class="date">2024年4期</a></li><li><a href="/bk/sdjy/20246.html" class="title">《师道·教研》</a><a href="/bk/sdjy/20246.html" class="date">2024年6期</a></li><li><a href="/bk/zgdwmy/20246.html" class="title">《中国对外贸易》</a><a href="/bk/zgdwmy/20246.html" class="date">2024年6期</a></li><li><a href="/bk/bl/20246.html" class="title">《伴侣》</a><a href="/bk/bl/20246.html" class="date">2024年6期</a></li><li><a href="/bk/jjjsxzxx/20246.html" class="title">《经济技术协作信息》</a><a href="/bk/jjjsxzxx/20246.html" class="date">2024年6期</a></li></ul> </div><div class="bk_part"> <div class="bk_im_b"><a href="/bk/xdjsj/20195.html"><img src="https://img.fx361.cc/images/2022/1219/e068bd7df791274b7c690a4f5b4b322a619bf36a_mini.webp" alt=""></a></div> <div class="dbk_title"><a href="/bk/xdjsj/" target="_blank">现代计算机</a></div> <div class="dbk_date"><a href="/bk/xdjsj/20195.html" target="_blank">2019年5期</a></div> </div><div class="others"> <h3><a href="/bk/xdjsj/" target="_blank">现代计算机</a>的其它文章</h3> <ul><li><a href="/news/2019/0312/13165775.html" title="子图匹配中基于启发式策略的图分割算法">子图匹配中基于启发式策略的图分割算法</a></li><li><a href="/news/2019/0312/13168289.html" title="基于改进量子粒子群的切削工艺参数优化">基于改进量子粒子群的切削工艺参数优化</a></li><li><a href="/news/2019/0312/13168297.html" title="基于LDA模型和文本聚类的水族文献主题挖掘研究">基于LDA模型和文本聚类的水族文献主题挖掘研究</a></li><li><a href="/news/2019/0312/13168304.html" title="基于结构-语义图的短文本分类">基于结构-语义图的短文本分类</a></li><li><a href="/news/2019/0312/13168318.html" title="基于空间统计的巴基斯坦恐怖袭击分析">基于空间统计的巴基斯坦恐怖袭击分析</a></li><li><a href="/news/2019/0312/13168358.html" title="基于R-DFA状态机的工控系统异常流量检测">基于R-DFA状态机的工控系统异常流量检测</a></li></ul></div></div> <div class="m_footer"></div> <script> if ('serviceWorker' in navigator) { window.onload = function () { navigator.serviceWorker.register('/sw.js'); }; } </script> <script type="text/javascript" src="https://s1.pstatp.com/cdn/expire-1-M/jquery/3.4.0/jquery.min.js"></script> <script type="text/javascript" src="https://s2.pstatp.com/cdn/expire-1-M/Swiper/4.5.0/js/swiper.min.js"></script> <script type="text/javascript" src="https://s1.pstatp.com/cdn/expire-1-M/jquery.lazyload/1.9.1/jquery.lazyload.js"></script> <script type="text/javascript"> document.write('<script src="https://img.fx361.cc/js/m.index_cc.js"><\/script>'); </script> </section> </body> </html>