精华内容
下载资源
问答
  • 事件抽取 (Event Extraction, EE)是指从自然语言文本中抽取事件并识别事件类型和事件元素的技术。事件抽取是智能风控、智能投研、舆情监控等人工智能应用的重要技术基础,受到学术界和工业界的广泛关注。事件抽取...

    问题描述

    事件抽取 (Event Extraction, EE)是指从自然语言文本中抽取事件并识别事件类型和事件元素的技术。事件抽取是智能风控、智能投研、舆情监控等人工智能应用的重要技术基础,受到学术界和工业界的广泛关注。事件抽取任务涉及事件句抽取、触发词识别、事件类型判别、论元抽取等复杂技术,具有一定的挑战。

    环境准备

    1. python适用版本 3.7.x(本代码测试时使用依赖见 ./requirements.txt )
    2. paddlepaddle-gpu >= 1.7.0、paddlehub >= 1.6.1
    3. 请转至paddlepaddle官网按需求安装对应版本的paddlepaddle

    依赖安装

    pip install -r ./requirements.txt
    

    模型下载&使用

    hub install ernie_tiny==1.1.0
    

    更多预训练模型参考 PaddleHub语义模型

    使用时修改 sequence_label.py 中的 model_name = "ernie_tiny"

    模型训练

    需要在data下放训练集(train.json)、验证集(test.json)、测试集(test.json,可用dev.json代替)、预测集(test1.json)和事件schema文件(event_schema.json),可从比赛官网下载

    训练触发词识别模型

    sh run_trigger.sh 0 ./data/ models/trigger
    

    模型保存在models/trigger、预测结果保存在data/test1.json.trigger.pred

    训练论元角色识别模型

    sh run_role.sh 0 ./data/ models/role
    

    模型保存在models/role、预测结果保存在data/test1.json.role.pred

    提交预测结果

    把结果按照官网给定的格式提交

    预测结果处理成提交格式

    python data_process.py --trigger_file data/test1.json.trigger.pred --role_file data/test1.json.role.pred --schema_file data/event_schema.json --save_path data/test1_pred.json
    

    整体预测结果保存在 data/test1_pred.json

    提交结果
    提交data/test1_pred.json到 比赛官网

    训练触发词识别模型

    run_trigger.sh

    #!/bin/bash
    export CUDA_VISIBLE_DEVICES="2, 3"
    export FLAGS_eager_delete_tensor_gb=0 #GC(Garbage Collection)的原理是在网络运行阶段及时释放无用变量的显存空间,达到节省显存的目的
    export FLAGS_fraction_of_gpu_memory_to_use=0.3 #设置预分配显存池
    
    data_dir=./data
    ckpt_dir=./models/trigger
    
    python sequence_label.py --num_epoch 3 \
        --learning_rate 3e-5 \
        --data_dir ${data_dir} \
        --schema_path ${data_dir}/event_schema.json \
        --train_data ${data_dir}/train.json \
        --dev_data ${data_dir}/dev.json \
        --test_data ${data_dir}/dev.json \
        --predict_data ${data_dir}/test1.json \
        --do_train True \
        --do_predict True \
        --do_model trigger \
        --max_seq_len 256 \
        --batch_size 8 \
        --model_save_step 3000 \
        --eval_step 200 \
        --checkpoint_dir ${ckpt_dir}
    

    sequence_label.py

    展开全文
  • Paper: Is Killed More ...这是一篇关于Salient Event Detection(重要事件检测)任务的文章,其具体任务内容是,在一篇标注了若干事件记录的篇章中,检测出其中显著的、重要的事件有哪些。例如下图包含两篇篇章,标红的

    Paper: Is Killed More Significant than Fled? A Contextual Model for Salient Event Detection
    Link: https://www.aclweb.org/anthology/2020.coling-main.10.pdf

    在这里插入图片描述

    这是一篇关于Salient Event Detection(重要事件检测)任务的文章,其具体任务内容是,在一篇标注了若干事件记录的篇章中,检测出其中显著的、重要的事件有哪些。例如下图包含两篇篇章,标红的事件代表更加重要的事件。
    在这里插入图片描述
    事件的上下文信息(Who, When, Where)事件对重要性的评估有重要的作用,例如上图的两篇文章中,同样是fled触发的事件,由于他们的论元(1200 Colombians vs. shopkeepers)不同,他们在文中的重要性也不同。然而,前人关于Salient Event Detection的工作对事件的编码表示是较为局限的,无法捕捉到事件的这些上下文信息,我们希望提出一种满足以下特性的方法:

    • 事件的表示中包含了论元的信息;
    • 向模型中融入全局信息,使得可以建模事件间的层次关系、位置信息;
    • 在模型中设计事件间交互层, 使得编码后的不同事件表示间存在信息的流动,通过事件间互相的交互和影响来判断事件的重要性。

    另外,以往Salient ED任务的评估中,使用Precision@kRecall@k 作为评测指标;然而,对于每篇文章Recall的计算是受到每篇文章中事件数量影响的,因此本文提出一种关于Salient ED 任务的新的Recall计算方法–Normalized Recall

    在Salient Event Detection任务上,本文的模型包括以下几部分构成:
    在这里插入图片描述

    • Event Representaiton: 通过一个五元组 (m,s,o.t,l) 来表示一个事件,这五个元素分别表示event mention、标注中的第一个论元(ARG-0)、标注中的第二个论元(ARG-1)、s时间时间(ARG-TIME)和事件地点(ARG-LOCATION);以这五个元素的编码表示的拼接,作为该事件的表示;

    • Event Agument with Global Features: 向事件表示中融入事件所处句子的位置、事件触发词出现的频率等六项特征的信息,将这些特征的表示与事件的表示拼接起来;

    • Inter-Event Interaction Layer: 一个事件是否足够重要,也取决于它与其他事件之间的关系。在本文中,通过Attention机制和Memory机制两种方式对事件间的交互进行建模:

      • CEE-BASE (Contextual Event Extractor):BEE-BASE是基于事件表示直接进行重要性判断的方法,通过一个全连接层+Sigmod函数对事件i打上是 10 的标签来判断其是否是salient event:
        在这里插入图片描述

      • Inter-Event Attention Module(CEE-IEA): 通过Attention计算事件i 与其他事件进行建模,以Attention分数作为最终判断事件i 是否显著的依据:
        在这里插入图片描述

      • Dynamic Memory Module: 如下图所示,(事件1,事件2)的论元间存在重叠,因此可以推断这两个事件是互相关联的,(事件2,事件3)也是类似。因此,基于关联性的互相传递,我们可以猜测,(事件1,事件3) 也是互相关联的。

    在这里插入图片描述

    为了对这种传递性进行建模,引入Memory模块,针对当前事件i和已有的事件序列计算一个memory向量,基于memory对事件i进行判断

    在这里插入图片描述
    其中,通过AttnGRU 计算得到cic_i , 具体可以参考这篇文章

    最终,作者在New York Times Annotated Corpus 上进行实验,使用前人工作的评测指标和本文修正后提出新的评测指标下都取得了sota效果。
    在这里插入图片描述
    通过消融实验对六种不同的Global Features的重要性进行了评估, 并讨论了 Salient Event DetectionExtractive Summarization(抽取式摘要) 任务的促进作用。

    在这里插入图片描述

    了解更多深度学习相关知识与信息,请关注公众号深度学习的知识小屋

    展开全文
  • 原文:Joint Event Extraction via Recurrent Neural Networks...本文提出了一个基于循环神经网络的事件抽取联合模型,既避免了管道模型中的误差传播问题,同时也考虑到了事件...

    原文:Joint Event Extraction via Recurrent Neural Networks (https://www.aclweb.org/anthology/N16-1034/

    读此文之前,应有一些事件抽取的概念基础。

    摘要:事件抽取是信息抽取领域一个具有挑战性的任务。本文提出了一个基于循环神经网络的事件抽取联合模型,既避免了管道模型中的误差传播问题,同时也考虑到了事件触发词和事件元素之间的关系。

    引言:

    事件抽取:标识文本中的触发器以及其指定类型和触发器对应的事件元素。触发器通常是引起一个事件的动词或动名词,而事件元素是参与这个事件的相关实体。

    对于相同的事件可能有不同的表达,对于同一个表达可能在不同的语义环境表达不同的事件

    比如:

    attack a stronghold   /   fight a stronghold   这两个同为攻击事件

    I like the apple.   在不同的语义环境中,苹果的语义也不同,可以是水果也可以是手机

    对于事件抽取的方法主要有两种:

    (1)管道模型:首先识别事件触发器,之后再进行事件元素的识别。

    (2)联合模型:同时预测句子的事件触发器和事件元素。

    联合模型缓解了管道模型存在的误差传播问题,并考虑了事件触发器和事件元素之间的依赖关系。

    事件抽取任务描述

    ACEAutomatic Content Extraction定义事件为:发生的事务或导致某个状态改变的事务。

    Event mention: 事件发生的短语或句子,包含一个触发词和任意数量的事件元素

    Event trigger: 能清楚表示事件发生的词

    Event argument: 事件的参与者或者在事件中具有一个角色属性的实体信息。

    (比如:人物、时间、地点、目标)

    ACE事件类型包含8个大类和33个子类,每个子类都有固定的角色集需要事件元素来填充。

    比如:死亡事件的角色包括地点受害者、和时间

    所有事件的元素角色共有36种。

    模型

    上图为文章的模型图,先讲一下具体用到的定义:

    定义:

    句子的表示:W =w1w2 . . . Wn,其中Wi表示句子中的第i个单词

    Entity mention的表示:E = e1, e2, . . . , ek .

    (每个Entity mention包含两个部分:实体头部的偏移量和实体的类型

    分别i1, i2, . . . , ik表示每个Entity mention e1, e2, . . . , ek )的最后一个单词的索引。)

    对于每个单词Wi 判断它是否是一个触发词:     是→进一步判断它的事件元素

                                                                             否→直接判断wi+1是否是触发词

    整个模型分为两个阶段:编码阶段和预测阶段

    对于编码阶段用到的词向量表示由三个部分组成:1.词向量编码

                                                                                   2.wi的实体类型编码

                                                                                   3.依存树的二维向量表示,向量维度取决于句子中所包含的依存关系。

    之后用到了双向的GRU网络进一步提取了向量特征。

    预测阶段:

    为了同时抽取事件触发词和其对应的事件元素,创建了二进制记忆向量,分别是:

    ^G{_{i}^{trg}}:trigger

    ^G{_{i}^{arg}}:argument

    ^G{_{i}^{arg/trg}}:argument/trigger

    这三个向量初始化为0,并在W的预测过程中更新。

     

    输入:h1, h2, . . . , hn和初始化的记忆向量,联合预测阶段循环n次,对于每一次的

    循环都进行以下几步:

    1)对于Wi的触发词预测

    Step1:首先计算Wi的特征向量表示,由三部分组成: 

    • h_{i}wi的隐藏层向量
    • L_{i}^{trg}:  wi的局部上下文向量(将单词的向量连接到wi的上下文窗口d中生成)。

            L_{i}^{trg}= [D[wi-d], . . . , D[wi], . . . , D[wi+d]].

    • G_{i-1}^{trg}上一步的记忆向量。

                                                                         R_i^{trg}=[h_i,l_i^{trg},G_{i-1}^{trg}]

    Step2之后将得到的向量输入到一个一层的前馈神经网络中,并连接一个softmax分类器,最后得到触发器的类型ti。

    2)对于Wi的事件元素预测

    首先判断触发器预测阶段的类别是否是other是→将所有的候选事件元素的角色信息(𝑎𝑖𝑗𝑗=1 to k)other

                                                                             否→循环所有entity mentione1, e2, . . . , ek。循环步骤为:

           step 1.计算候选事件元素ejwi的特征表示向量:

    • h_i and h_{i_{j}}wiejRNN隐藏层向量
    • L_{ij}^{arg}wiej局部上下文向量(将单词的向量连接到wiw𝑖𝑗上下文窗口d中生成)
    L_{ij}^{arg}= [D[wi−d],...,D[wi],...,D[wi+d],D[wij−d],...,D[wij],...,D[wij+d]]
    • B_{ij}tokens i and i_j局部参数特征。
    • G_{i-1}^{arg}[j]G_{i-1}^{arg/trg}[j]ej一步的记忆向量

                                           R_{ij}^{arg}=[h_i,h_{i_j},L_{ij}^{arg},B_{ij},G_{i-1}^{arg},G_{i-1}^{arg/trg}]

           step 2.之后同触发器预测的步骤,得到事件元素角色𝑎𝑖1,𝑎𝑖2,…,𝑎𝑖𝑘 .

    3)计算记忆向量

    Trigger Memory:  

    G_i^{trg}(G_i^{trg}\epsilon \{0,1\}^{nT}) nT是触发器类型的数量。

    G_i^{trg}[t]=1 if t=t_i and G_{i-1}^{trg}[t] otherwise

    在i时刻词向量表示之前已经识别到的事件类型。

    Argument Memory:

    G_i^{arg}(G_i^{arg} \epsilon \{0,1\}^{k\times nA}) nA是元素角色的个数。

    G_i^{arg}[j][a]=1 if t_i \neq "other" and a=a_j and G_{i-1}^{arg}[j][a] otherwise

    表达了entity mention在i之前所扮演的元素类型

    Argument/Trigger Memory:

    G_i^{arg/trg}\epsilon \{0,1\}^{k\times nT}

    G_i^{arg/trg}[j][t]=1 if t_i \neq "other" and t=t_i and G_{i-1}^{arg/trg}[j][t] otherwise

    表达了在i之前事件角色在哪些类型中已经出现过

    输出:Wi对应的触发器类型ti,预测后的事件元素角色𝑎𝑖1,𝑎𝑖2,…,𝑎𝑖𝑘以及当前步的三个记忆向量。

    实验结果如下:

     

     

     

     

    展开全文
  • 基于桥依赖RNN和论元张量交互的事件抽取联合模型 1.摘要 传统的事件抽取很大程度上依赖词汇和句法特征,需要大量的人工工程,并且模型通用性不强。另一方面,深度神经网络可以自动学习底层特征,但是现有的网络却...

    dbRNN论文笔记

    Jointly Extracting Event Triggers and Arguments by Dependency-Bridge RNN and Tensor-Based Argument Interaction

    基于桥依赖RNN和论元张量交互的事件抽取联合模型

    1.摘要

    传统的事件抽取很大程度上依赖词汇和句法特征,需要大量的人工工程,并且模型通用性不强。另一方面,深度神经网络可以自动学习底层特征,但是现有的网络却没有充分利用句法关系。因此本文在对每个单词建模时,使用依赖桥来增强它的信息表示。说明在RNN模型中同时应用树结构和序列结构比只使用顺序RNN具有更好的性能。另外,利用张量层来同时捕获论元之间的关系以及其在事件中的角色。实验表明,模型取得了很好地效果。

    2.引言

    现有的事件抽取模型大都没有利用句法特征,并且没有考虑到论元和论元之间的交互作用。观察结果表明联合建模所有候选论元可以更加全面的了解论元之间的关系,有助于论元的识别和分类。

    本文提出了dbRNN模型,在bilstm单元的基础上增加了单词之间的依赖桥信息。然后在每两个候选论元上建立一个张量层,来获取论元之间的信息交互。并且在ACE2005上取得了目前最好的效果。

    3.任务描述

    可将事件抽取任务分为以下三个子任务:

    1.触发词识别

    2.参数标识

    3.参数分类

    4.方法

    4.1 LSTM

    递归神经网络考虑了上下文的信息,适合于序列建模。但是存在反向传播过程中会出现梯度消失和梯度爆炸的问题。为解决此问题,提出了LSTM单元。

     

    4.2 BiLSTM

     

    4.3 依赖桥

    在这部分,提出了BiLSTM上的依赖桥;下图表示了一个句子的依赖解析树。这些依赖边所表示出来的时间、后果、条件、目的等信息被证实有助于事件抽取。

     

    传统的RNN并不能直接利用依赖关系,因此本文在RNN的基础上加入了依赖边,称之为依赖桥。如下图所示:

     

    为每种依赖关系(例如nsubj、dobj)分配一个权重;同一依赖关系的不同方向也有不同的权重。例如,“nsubj”的正向具有权重a+nsubj,反向具有权重a−nsubj。

    在LSTM信息传播过程中,依赖桥信息主要影响LSTM单元的隐藏层。在第t步中,我们将链接到当前单元的依赖桥集表示为Sin。Sin中的每个元素都是一对(index,type),分别表示依赖边的源索引和依赖类型。然后将隐藏层计算为:

     

    其中dt是一个新的门,为了避免依赖信息对原始信息的影响过大。dt的计算方法与其他门相同:

     

    DB与以前的树型方法的主要区别是指它们都在单独使用树方法,而本文试图同时使用树方法和顺序方法。

    4.4触发词提取

    在提取事件触发器时,我们将句子中的每个名词、动词和形容词作为候选触发器。

    长度为N的句子的编码表示是BiLSTM最后的正向和反向输出的串联,hs=[h→N,h←1]。然后我们将候选触发器ht的对应BiLSTM输出和句子的编码向量hs连接在一起,作为候选触发器的特征C=[ht,hs]。然后我们将特征输入多层感知器

     

    再经过softmax分类,其中OT表示事件类型的概率。

    4.5论元分类

    在对论点进行分类时,我们需要考虑论点与论据之间的相互作用。论元-论元的交互作用是论元识别和分类的重要环节。直观地说,当把所有候选论据综合考虑时,它们之间的区别和共性更容易被发现,这有利于论据的识别和分类。参数-参数交互包括各种类型的参数关系,如两个候选参数是否具有相同的依赖父项、两个候选参数是否语义一致等。

    Sha等人(2016)提出将论证-论证互动分为两类:积极和消极。在实际情况下,这两个交互只能决定是否识别参数。至于扮演哪个角色,我们需要更复杂的互动,比如“这两个候选论点是否有相反的角色”。在本文中,我们提出用向量来表示相互作用。

    当同时考虑所有候选参数时,如下图所示,我们将其所有对应的隐藏层(BiLSTM的输出)收集为一个矩阵H,其中nA是候选参数的数量。

     

    对于文章中的方法笔者没有进行后续的解读,感兴趣的小伙伴可以自己去了解。

    5.实验

    实验结果如下:

     

    展开全文
  • JMEE论文笔记 《Jointly Multiple EE via Attention-based Graph Information Aggregation》 ... 摘要 ...本文提出了一种新的联合事件抽取框架JMEE,引入了语法弧和基于注意力机制的图卷积神经网络
  • 传统的信息抽取系统大多是基于模式匹配的,因此,如何自动获取抽取模式就成为信息抽取中的一个核心问题。本章提出了一种从未标注的中文文本中基于自扩展策略自动获取时间抽取模式的算法,该算法从少数几个种子抽取...
  • 事件抽取论文一览表 论文标题 模型简称 会议 发表时间 摘要 备注 代码链接 Joint Event and Temporal Relation Extraction with Shared Representations and Structured Prediction ...
  • 点击上方,选择星标或置顶,每天给你送干货!NewBeeNLP公众号原创出品公众号专栏作者@lucy北航博士在读·文本挖掘/事件抽取方向本系列文章主要分享近年来事件抽...
  • 论文笔记整理:郝凯龙,南京大学硕士链接:https://www.aclweb.org/anthology/P19-1522.pdf动机传统的 ACE 事件抽取任务依赖于人...
  • 事件抽取算法DMCNN

    2020-10-17 23:49:23
    DMCNN是一种基于动态池化(dynamic pooling)的卷积神经网络模型事件抽取方法,来自论文《Event Extraction via Dynamic Multi-Pooling Convolutional Neural Networks》。这是一种pipeline方式的事件抽取方案,即...
  • 动机传统的 ACE 事件抽取任务依赖于人工标注的数据,耗费大量的人力并且数据量有限,数据量不足给事件抽取带来了阻碍。传统的事件抽取不能解决 role overlap 角色重叠的问题。 PLMEE 模型通过对不同的角色分别进行 ...
  • 文本的复杂常常体现在事件抽取的输入可能是句子、段落或者篇章,不定长度的文本使得限制文本长度的模型无法使用。 任务的复杂体现在事件识别的任务包括:事件类型识别,事件主体抽取和事件要素抽取 事件类型一般有...
  • 一种基于最大熵模型事件分类方法,该方法能够综合事件表述语句中的触发词信息及各类上下文特征对事件进行分类。  确定的事件类别正确与否对事件模板的选择以及究竟要抽取哪些事件要素来填充模板至关重要。  本...
  • 机器语言理解与交互是人工智能的基本挑战,五大任务助力 (机器阅读理解、面向推荐的对话、语义解析、关系抽取、事件抽取) 知识是机器语言理解与交互的重要基础 关系抽取是知识获取的重要方式 知识图谱 2. 评测...
  • 论文笔记整理:郝凯龙,南京大学硕士链接:https://www.aclweb.org/anthology/P19-1522.pdf动机...传统的事件抽取不能解决 role overlap 角色重叠的问题。PLMEE 模型通过对不同的角色分别进行 augument predictio...
  • 根据抽取模型所采用的不同的数据驱动源,现有的方法主要可分为三类: 1.基于事件元素驱动  Chieu 等首次在事件抽取中引入最大熵分类器,用于事件元素的识别 。该方法实现了两个领域中的抽取任务,分别是半结构化...
  • 刘康教授讲座的PPT,内容丰富,定义的事件抽取,介绍了各种模型
  • 事件抽取是自然语言处理中一项具有挑战性的任务,对于后续的信息处理有重要作用。本文采用BiLSTM模型与Attention层结合,完成了事件触发词检测,实现了事件类别的分类。与以往的事件检测方法相比,本文将两类任务视...
  • 相关论文一览 方法 联合方法 神经网络 特征编码融合特征 元素依赖融合特征 陈(2015)1 否 动态多池化CNN 词嵌入、位置特征、类型特征 无 Nguyen(2016)2 是 双向 RNN ...张量层(事件论...
  • 论元结构是沟通认知与句法结构的桥梁,是语义和句法的接口,在现代句法学和语义学研究中有着相当重要的...对中文文本事件信息抽取中的事件要素及其语义角色的识别这一具体问题来说,就是要分析事件表述语句中的触...
  • 目录LIC2021事件抽取任务基线一、篇章级事件抽取基线1.1 评测方法1.2 快速复现基线Step1:数据预处理并加载1.3 快速复现基线Step2:构建模型1.4 快速复现基线Step3:数据处理1.5 快速复现基线Step4:定义损失函数和...
  • 小编在此整理出了一份事件抽取、关系抽取、命名实体识别、Few-Shot以及在模型中使用GCN和其他一些感兴趣相关论文的列表,希望可以为需要的小伙伴提供便利吖~ (深夜整理,就不放链接了/(ㄒoㄒ)/~~) 事件抽取 Cross-...
  • 以BaptisteBlouin 为参考,着重整理自2015年以来基于深度学习方法的事件抽取与检测论文,并指出了每篇论文的模型简称及核心关键词等,如有疏漏,欢迎补充! English Event Detection 2015 ACL2015: Event ...
  • 余博涛,南京大学计算机科学与技术系,硕士研究生论文连接:http://www.aclweb.org/anthology/N16-1034发表会议:NAACL-HLT 2016摘要事件抽取(event extraction)是信息抽取中一个特别具有挑战性的问题。针对该问题的...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 256
精华内容 102
关键字:

事件抽取模型