APP下载

基于社交网络的群体性事件挖掘和预测

2022-06-29黄细凤廖泓舟

计算机技术与发展 2022年6期
关键词:群体性结构化准确率

黄细凤,廖泓舟

(中国电子科技集团公司第十研究所,四川 成都 610036)

0 引 言

群体性事件[1]是指由某些社会矛盾引发,特定群体通过规模性聚集、对社会造成负面影响的群体活动,因而对社会秩序和社会稳定造成重大负面影响的各种事件。由于群体性事件大多以现有公共次序的对立面所出现,所以通常无法利用传统的新闻媒介公开进行大规模的组织和传播,其传播的隐蔽性使得提前预知相关信息十分困难。近年来随着网络社交媒体的广泛应用,群体性事件的组织策划者得以利用其强大的信息传播能力和组织动员能力推动群体性事件的发生。这一方面极大地推动了群体性事件在全球许多地区愈演愈烈,而另一方面,社交媒体的公开性也使得获取群体性事件的相关线索,甚至进行提前预测成为了可能。

该文从自然语言处理的角度研究了针对社交网络文本的事件挖掘任务。事件挖掘旨在从文本中挖掘出结构化的事件信息,包括是否包含事件、事件类型、事件参与者、事件发生的时间和地点等。所有这些信息被称为事件要素。通过标准化之后的事件要素可以将事件信息以结构化的形式进行关联,形成事件知识图谱,从而为下一步利用知识图谱相关技术对事件分析处理提供基础。

笔者在对事件挖掘的研究过程中发现,社交网络上所挖掘出的事件,有相当一部分其发布时间会早于事件的实际发生时间,例如在图1中所展示的从Twitter中挖掘到的事件信息。这一现象也很容易解释:社交网络作为群体性事件的重要组织工具,理所当然地会发布大量的事件召集信息。也就是说,社交网络上的信息也许可以作为群体性事件预测的指示信息。基于这一观察结果,重点研究利用社交网络挖掘得到的结构化事件信息作为精确事件预测指标的可行性。

首先给出基于社交网络事件挖掘的完整流程,逐一详细描述所采用的处理步骤和方法,包括事件预处理、事件要素抽取、事件要素信息标准化和事件归并等具体流程;接下来会详细测试事件挖掘的整体流程以及各个步骤的性能,给出定量的评测结果;最后探讨基于所挖掘的结构化事件信息进行群体性事件预测的效果,并针对香港地区近年来多发的群体性事件,给出了具体的预测结果;之后讨论与该文相关的其他事件挖掘和预测的最新研究工作,与该文研究工作进行对比探讨;最终给出结论和未来研究方向。

1 相关研究

事件库是以结构化事件的方式对历史信息进行收集和记录的一种重要工具,事件库的构建需要从粗糙的非结构化数据批量生成结构化的事件数据。相关的学术研究和实际应用经历了手动集成到大规模自动提取和集成的发展过程。Correlates of War event data (COW)[2]是最早的互联网事件库,采用手动的方式收集和整理了一系列国家间军事争端事件。Global Terrorism Database (GTD)[3]收集了全球15万条恐怖事件的完整数据,是垂直领域上人工构建事件库的优秀成果。Integrated Conflict Early Warning System (ICEWS)[4]是第一个有着全球影响力的自动事件数据库,它也是针对暴力冲突类事件,收集了超过2.5亿条事件数据,并免费向公众开放。由Google支持的Global Dataset of Events, Location, and Tone (GDELT)把这些工作提升到一个新的高度,它监控了全球超过1.5万个新闻源,以15分钟更新一次的方式实时地向公众发布事件库信息。除此之外,针对特定领域和地区的事件库还包括News Reader、Event Registry、EMBERS等。这些现有的事件库大多以新闻或者专业文档(如维基百科)作为事件源,但是目前还没有发现以社交网络作为主要信息源的事件数据库。Tweet事件挖掘示例如图1所示。

图1 Tweet事件挖掘示例

结构化的事件抽取是事件数据库自动化构建的核心技术,可以分为数据驱动和知识驱动两大基本途径。数据驱动的事件抽取采用统计机器学习的方法,通过“标注—学习—抽取”的范式来开展事件抽取工作。与之对应,知识驱动的事件抽取依赖于专家知识,通常采用“模式编写—模式匹配”的方式开展工作。早期的结构化事件抽取工作大多采用知识驱动的技术途径,利用词汇句法模式(Lexical Syntactic Patterns)的匹配来抽取事件[5]。由于其高性能和有效性,在之后的各个事件抽取工作中也大都作为其中的一个处理步骤[6]。文中系统中的事件发现部分就是采用这种传统而行之有效的方法。由于早期统计模型的计算能力不足,数据驱动的事件抽取的准确率大多较低,但是其优势在于领域的普适性。近年来随着深度神经网络的大发展,数据驱动的事件抽取逐渐成为了主流,CNN、RNN、LSTM、Transformer等最新的神经网络架构被应用到事件抽取中,极大地提高了事件抽取的准确性。但是在面对大规模数据的时候,神经网络方法大多存在计算开销过大的劣势,需要与传统方法融合使用。

事件预测是一个还有待研究人员进一步深入探索的领域。随着事件库构建技术的逐渐成熟,已经有不少研究者将下一步的研究目标瞄准了事件预测。这类研究大多以统计模型为基础,通过大量地提取事件的各种潜在特征和前期征兆来构建复杂的神经网络模型,从而实现事件预测[7-17]。但是这些方法准确率和召回率都极低,不存在实际应用的可能性。这是由于事件预测这一任务本身所具备的复杂性决定的。与前述的这些方法不同,该文瞄准群体性事件这一特定的事件类型,采用社交网络这一特殊的数据源,用文本挖掘的方式较好地实现了事件预测这一困难任务。

2 事件挖掘与预测

事件挖掘指从已获取的社交网络文本语料中挖掘历史事件,识别事件类型,提取事件要素,归并不同来源的结构化事件表示,最终得到事件库。事件库是一个大规模的结构化知识库,可以导出到知识图谱系统进行可视化查询,检索,分析和浏览。

事件挖掘系统的输入为非结构化的文本信息,输出为完整的事件要素五元组Event:(Actor1,Actor2,Type,Time,Location)。这种五元组的事件表示是国际通用的表示框架,并且在CAMEO(Conflict and Mediation Event Observations)[18]中得到了明确定义。CAMEO是一个事件编码框架,是为了研究国际争端中的重大事件而优化,同时也包括政治,经济,民生领域的几乎所有重要事件类型。其中的141和144类型即为该文所关注的群体性事件类型。该文的事件挖掘系统将会遵循CAMEO的事件框架定义。

实现事件挖掘的整体流程如图2所示,其核心步骤包括:文本预处理、事件类型判断、要素抽取、地理位置抽取及标准化、时间抽取及标准化等。

图2 事件挖掘系统工作流程

2.1 文本预处理

在进行事件要素抽取和事件类型判断之前,需要对文本进行预处理,对语料进行切割,以便对句子级别的文本进行事件分析。要素抽取的过程依赖于语法树的建立,使用基于StanfordNLP[19]的短语分析工具对句子进行预处理,生成树状结构以对句子中的句法关系进行描述。将语法关系统一表示为类型依赖关系。语法解析以一个完整的句子作为输入,以一颗对应的语法解析树作为输出。使用统计的方法生成语法分析树,如概率上下文无关语法(Probabilistic Context-Free Grammar,PCFG)。

PCFG是一个监督学习方法,需要对PCFG的参数进行估计。其训练数据为一个句子及其解析树,通常把这样的标注数据称为树库(Tree Bank)。PCFG的参数就是某种规则的概率,当给定一个Tree Bank后,统计相应的规则转移的概率。StanfordNLP利用PCFG对输入句子进行分析,分析结果包含句子中单词的基本形式、依存关系、词性、命名实体等。在事件挖掘过程中,依赖其词性标注方法生成词性语法树,并对语法树进行建模分析。

2.2 人物要素抽取与事件类型判断

在文本预处理得到解析树后,对解析树进行触发词判断,发现事件要素和事件类型。

本模块以句子及其解析树作为输入,以三元组(Actor1,Actor2,Type)作为输出。解析核心基于触发词,在进行事件识别时,本模块将解析树的核心动词与事件触发词表进行匹配,从而实现事件的发现以及类型识别。

人物要素抽取与事件类型判断的核心逻辑基于对语法树的解析。其接收句子的句法分析树作为输入,并且将分析树存储为链接节点的树形结构,其中每个节点都是一个短语。语法树在数据结构中是一个简单的树形结构,每个短语或单词都是其自己的节点,并带有指向父节点的指针以及子节点集。每个句子都由多个部分组成,一个组成部分可以是单个单词或整个短语(构成要素的组成部分),每个组成部分都有特定的句法角色。对语法树进行迭代处理并将树中的单词类型转化为短语类型,单词被组合在一起直到形成一个名词或动词短语。动词短语包含了当前句子的大部分含义,并解释了句子中相关名词以及动词的交互过程。若短语可以产生符合CAMEO触发词字典的正确交互关系,则将该句判断为事件句,并输出事件基础三元组。

句法树的递归过程,可以抽象为以下步骤:

(1)使用Pharse类将句法解析读取到内存中;

(2)识别名词短语中的参与者编码;

(3)根据字典确定动词短语;

(4)识别动词如何与其他词性短语进行交互;

(5)使用CAMEO词库进行判断;

(6)返回事件编码和参与者编码。

2.3 地点要素抽取

在得到事件句及其所对应的要素三元组(Actor1,Actor2,Type)后,需要进行地点要素抽取。由于文本中地理位置信息描述的多样性,该文采用三段式的处理方式:首先对文本中所有的地理位置信息进行抽取;然后对所抽取的地理信息进行分类,判断其是否描述了目标事件的地理位置;最后采用GeoNames[20]数据库进行地理位置信息标准化。

(1)地理位置信息抽取。

使用spaCy命名实体识别框架进行地理位置识别,抽取事件地点,选择事件句实体抽取结果中所有标注为GEO的实体作为地理位置要素候选集。

(2)事件地理位置信息识别。

地理位置信息抽取后,针对地理位置候选集,选择最可能的地理位置作为事件地理要素。使用在Keras中实现的分类神经网络,并接受了带有Prodigy标签的新注释数据进行训练,以推断每个地名的正确国家和地名词典条目。

(3)地理位置信息标准化。

在得到事件的地理位置信息后,使用GeoNames库提取地名的坐标和位置代码。根据事件地理要素,使用Elasticsearch快速检索GeoNames地理数据库得到地理位置信息和编码。

2.4 时间要素抽取

事件的时间要素抽取的流程与地点要素抽取的流程一致,也存在着抽取、识别和标准化三个阶段,其中抽取和识别的阶段处理流程与地点要素抽取是一致的,这里不再赘述。时间要素抽取的难点在于时间要素的标准化,由于时间表达方式更加多样化,因此不能采用查表的方式进行时间要素的标准化。

时间表达式归一化的目标是计算机能够理解它们得到的时间信息,比如,在一个文本里出现1962.3.1,而另一篇出现的是1962/3/1或3/1/1962,计算机应该能够知道它们说的都是同一时间。

在庞大的互联网上,时间信息的表示是多种多样的,导致对文本信息的理解非常困难,如果将时间信息统一到同一种表示方式,将会对机器的自动内容识别有很大帮助,同时对信息检索、文摘生成等领域都发挥重要作用。具体的,在时间抽取任务中,使用SUTIME库[21]实现事件时间抽取,产生事件时间的归一化表达。

2.5 事件归并

事件归并是指将生成的对所抽取的多个事件进行归并。同一事件在不同数据来源会获取多个不同角度的事件描述,事件归并将多个不同来源的同一事件的不同描述归并为一个统一的事件描述,从而避免系统的二义性,提高事件挖掘和预测的准确率。

事件归并依赖于事件要素抽取结果。一个事件可以描述为一个五元组(Actor1,Actor2,Type,Time,Location)。不同来源的新闻可能对同一事件有不同的描述,事件描述元组相同的事件为同一事件。若不同来源的新闻描述了同一事件,引入事件提及数作为参考量,表示同一事件在不同新闻源的提及数,作为衡量事件重要程度的指标。

3 实验结果与分析

3.1 实验数据

为了分析通过社交网络进行事件挖掘的有效性,特别是其中的群体性事件的可挖掘性和可预测性,爬取中国香港地区,从2019年1月1日到2020年6月30日的所有Twitter推文,共计370万条文本数据,然后对其进行了基本的过滤,仅选取其中的英文数据作为实验数据,共计1 302 801条。需要指出的是,由于访问量限制过于苛刻,并没有采用Twitter所提供的API,而是利用了搜索接口进行数据获取。不同的数据获取方式所得的数据量可能会有一定的出入,但是作为验证性实验数据笔者认为是足够的。

为了验证社交网络时间挖掘的真实性,使用全球语言数据库[22](Global Database of Events, Language,and Tone,GDELT)作为时间挖掘的对比结果。GDELT是一个最初由乔治敦大学建立,并被Google资助和运行的全球最大的事件数据库。它通过监控全球超过100种语言的上万个新闻源来进行事件获取,分析并得到结构化的事件信息。和该系统一样,GDELT也遵循CAMEO事件框架,所以两个系统的事件挖掘结果能够相互印证。虽然GDELT也存在着事件遗漏的情况,但仍然足以给该系统提供一个可行的评估依据。

3.2 事件挖掘实验

(1)评测指标。

在所收集的130万条的实验数据之上开展事件挖掘实验,通过准确率、召回率和F值三个指标对该系统进行评价。具体如下:

准确率是指系统挖掘到事件的准确性。这里的判断依据是挖掘结果是否符合文本信息,以及是否符合真实情况,称之为字面准确率,表示为Precisionliteraly。由于缺乏一个标准事件数据集,所以这里采用GDELT作为参考依据,这种准确率也可以称为GDELT准确率,表示为PrecisionGDELT。对于字面准确率,采用抽样人工评价的方式进行测试,随机抽取1 000条系统挖掘的事件结果,人工对比源文本,判断挖掘结果是否准确。对于GDELT准确率,则是比较该系统所挖掘的结果在GDELT数据库中是否存在,如果存在则认为是准确的。

召回率是指实际发生的事件中被系统挖掘到的数量,同样分为字面召回率Recallliteraly和GDELT召回率RecallGDELT。字面召回率的统计也是人工进行,随机抽取测试数据中的语料,抽取1 000条事件数据,与系统挖掘的结果进行对比判断是否被系统召回。对于GDELT召回率,则是比较GDELT数据库中的特定地点和特定类型的事件是否被该系统所挖掘到,如果被挖掘到则认为是成功召回的。

F值是准确率和召回率的调和平均值,其计算公式为:

该文取β=1,即为F-1值。

(2)实验结果和分析。

表1给出了针对上述实验数据的测试结果,其中Events列给出了挖掘到的事件数量,为1 532件。这说明基于社交网络的事件挖掘是非常有效的,确实能够挖掘得到大量的事件。特别要注意的是,这里的事件不仅仅是群体性事件,但是其中的群体性事件数量占有较大比例。在所有的GDELT事件中,群体性事件(对应于CAMEO的141和144类型)仅仅占比大约2%左右,而社交网络挖掘得到的事件有一大半都是群体性事件。

表1 测试结果

事件挖掘结果同样保持了不错的准确率,基本能达到预期设想。就字面准确率而言,该系统的事件挖掘子系统准确率能到达约80%。对于GDELT准确率而言,相比字面准确率都有了一定程度的下降,但是差距并不明显。这两种之间的比值可以认为是GDELT事件收录的召回率,这一定程度上说明GDELT事件集的召回率相当的高。

该系统事件挖掘的字面召回率也保存了不错的水平,达到了80%以上。但是,GDELT召回率则相当的低。这是由于GDELT监控了大量的新闻源,能够获取到非常丰富的事件信息,其信息丰富程度远高于社交网络。另一方面,社交网络作为事件挖掘的信息源能够达到约58%的召回率,这意味着在群体性事件挖掘方面可以在一定程度上作为GDELT的补充。

3.3 事件预测实验

(1)评价指标。

采用准确率和召回率作为系统的评价指标,同样采用GDELT事件数据库作为评价标准。计算预测事件在GDELT中是否会发生,记为PrecisionGDELT;以及GDELT中的事件是否会被社交网络预测到,记为RecallGDELT。

图3 事件预测提前期计算方法说明

对于事件预测而言,预测提前期(Lead Time)是一个重要的指标。所谓预测提前期是指发出事件预测的日期和事件被报道的日期之差。这里的“发出事件预测的日期”就是该系统通过社交网络信息发现事件的日期;“事件被报道的日期”采用GDELT中事件的报到日期为依据。两种相减得到事件预测的预测提前期,如图3所示。

(2)实验结果和分析。

表2给出了针对香港地区的社交网络数据群体性事件预测实验结果。

表2 针对香港地区的社交网络数据群体性 事件预测实验结果

其中第一列LT=n表明的是不同的事件预测提前期,LT=1即是提取一天预测,此时的预测的事件数量最多,准确率和召回率也都较高。随着LT数值的增加,能够预测到的事件数量降低,这一定程度上意味着大量的群体性事件都并没有经过长时间的准备,而仅仅是在2~5天内短期召集形成的。

根据准确率和召回率进行分析,可以看到基于社交网络的群体性事件预测准确率较高,也是符合预期的:社交网络线索相对明确,一旦出现了社交网络上的群体性事件召集信息,就会有比较大的概率真实发生该事件。另一方面,事件预测召回率在LT=1时达到了0.45,这意味着有接近一半的群体性事件都可以在社交网络上找到明确线索。还有一点值得注意的是,对于LT>10的情况,准确率和召回率都较低,尚不足以作为可靠的预测线索。

4 结束语

社交网络的群体性事件挖掘是一个自动化的信息抽取任务。该文设计并实现了对社交网路信息进行事件挖掘和事件预测的系统。其中包括事件发现、事件要素抽取、事件分类、地理位置抽取、事件归并等子任务。基于所挖掘到的社交网络群体性事件相对于事件发生日期有一定提前性的这一发现,探索了将所挖掘到的结构化事件信息用于事件预测的可能性,实验证明这一探索有较好的效果,能够以较高的准确率和召回率提前预测特定地区的群体性事件。

猜你喜欢

群体性结构化准确率
顾丽英:小学数学结构化教学的实践探索
借助问题情境,让结构化教学真实发生
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
深度学习的单元结构化教学实践与思考
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习
关于群体性事件防控的思考