#####haohaohao#金融领域文档级别事件抽取-Doc2EDAG: An End-to-End Document-level Framework for Chinese Financial E

本文主要是介绍#####haohaohao#金融领域文档级别事件抽取-Doc2EDAG: An End-to-End Document-level Framework for Chinese Financial E,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

该论文来自EMNLP2019、清华&微软研究院、源码&数据集【1】已开源github:Doc2EDAG
paper地址:paper原文
金融领域数据有以下两种特征:
①    事件元素分散(Arguments-scattering):指事件论元可能在不同的句子(Sentence)中。
②    多事件(Muti-event):指一个文档中可能包含多个事件。
由于Sentence-level级别的事件抽取模型不能很好的处理一个句子中有多个事件的情况,本文提出一个文档级别的金融领域事件抽取模型(Doc2EDAG),该模型的核心思想是将文档级别的事件表填充任务(Document-level Event table filling,DEE)转化为基于实体的有向无环图的路径扩展任务(Entity-based directed acyclic graph,EDAG)。该模型将Document-level级别的context进行编码,并设计了一个记忆机制进行图路径扩展。为缓解远程监督标注时的错误,该模型忽略掉触发词标注(trigger-words labeling),忽略触发词标注可以省略掉触发词预定义和启发式生成触发词(对于没有触发词的句子,从预定义的触发词集合中启发式生成一个触发词)。
关键概念:
实体(entity):实体对象的文本跨度
事件角色(entity role):对于事件表的预定义字段
事件参数(event argument):事件参数是扮演特定事件角色的实体
事件记录(event record):一个事件记录对应于事件表的一个条目,并包含几个具有所需角色的参数

DEE Task Without Trigger Words(无触发词的DEE任务):
①    Entity extraction: 提取实体作为参数候选
②    Event detection: 判断文档是否针对每个事件类型触发(二分类)
③    Event table filing: 将参数填充到触发事件表中
Doc2EDAG task:
Doc2EDAG任务的思想是将事件表填充任务转化为EDAG的路径扩展任务。
该任务有两个核心步骤:
①文档级别的实体编码(document-level entity encoding)
②有向无环图的生成(EDAG generation)

根据预定义的事件角色(Event role)顺序生成EDAG的过程如下图所示:

Doc2EDAG的工作流程,下图的流程对应Figure3的图扩展过程。

事件表填充(event table finling)案例:

Document-level entity encoding:
在进行文档级别的实体编码之前要先将句子进行embedding并识别句子中的entity。本文将一个文档视为一个sentence使用Transformer-1编码,使用BI-LSTM-CRF进行句子级别的实体识别。
Entity&Sentence Embedding:
将所有的实体和句子进行embedding,并分别使用最大池化操作获得固定维度的向量。
Document-level Encodeing:
为所有已经编码的entity和sentence添加句子位置编码(sentence position embedding)并送入transformer-2获得文档级别的entity mention和sentence embedding。在该步骤使用max-pooling合并名称相同的实体。
EDAG Generation:
(1)    首先使用线性分类器对每个event type进行事件触发分类(event-triggering classification,二分类任务)。
(2)    为每个已分类的event type按照预定义的event role顺序创建EDAG,图节点对应entity或NA(NA表示当前sentence没有与当前event role匹配的实体)。创建完成的EDAG每条完整路径对应event table中的一条事件记录。
(3)    为了记录当前实体是否已经被添加到EDAG中,本文为每个句子创建一个记忆向量m,当句子中的entity或NA被添加到EDAG中时就更新对应位置的m向量值。
Path Expanding:
该任务被视为一个二分类任务,即判断某个实体是否对应当前顺序下的event role,如果是就将该实体添加到EDAG中,如果没有任何实体能与当前event role匹配则将NA添加到EDAG中。
该步骤将对应位置的记忆向量m与entity进行拼接,并添加一个额外的可训练的实体角色指示向量(event-role indicator embedding)送入transformer-3进行encoding,然后从transformer-3的output得到一个enriched entity embedding,最后将此enriched entity embedding送入分类器进行分类。
实验:
本文构建了一个金融领域文档级别的事件抽取数据集(原数据来自),实验预定义了五类event type:股权冻结Equity Freeze (EF), 股权回购Equity Repurchase (ER), 股权减持Equity Underweight (EU), 股权增持Equity Overweight (EO) and 股权解押Equity Pledge (EP)。
为了降低error-propagation,模型训练过程中采用**计划采样【2】**方式(scheduled sampling)进行迭代训练,计划 采样是指训练网络时不完全采用真实序列作为下一步的输出,而是以一个概率p选择真实标记,以1-p概率选择模型输出,p是变化的,开始训练时p较大,模型训练越充分p越小[3]。
实验结果:
S:single-event
M:multi-event


参考:
[1] https://github.com/dolphin-zs/Doc2EDAG
[2] Samy Bengio, Oriol Vinyals, Navdeep Jaitly, and Noam Shazeer. 2015. Scheduled sampling for sequence prediction with recurrent neural networks. In NIPS.
 

这篇关于#####haohaohao#金融领域文档级别事件抽取-Doc2EDAG: An End-to-End Document-level Framework for Chinese Financial E的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/967550

相关文章

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,

Python实现合并与拆分多个PDF文档中的指定页

《Python实现合并与拆分多个PDF文档中的指定页》这篇文章主要为大家详细介绍了如何使用Python实现将多个PDF文档中的指定页合并生成新的PDF以及拆分PDF,感兴趣的小伙伴可以参考一下... 安装所需要的库pip install PyPDF2 -i https://pypi.tuna.tsingh