工程实践:基于规则句法的事件关系与主谓宾三元组抽取项目实现

目前,知识图谱在学术界如火如荼地进行,但受限于知识图谱各个环节中的性能问题,还尚未能够在工业界大规模运用。而与知识图谱中以实体为知识节点,实体关系为实体关系边对知识进行组织不同,以事件作为节点,事件关系作为节点关联的三元组信息的抽取和应用,当前也是大家在探索的一个方向(即事理图谱,先撇开其建模和应用现状不讲)。
笔者之前围绕事件关系三元组抽取,结合语言学背景,尝试了一些朴素方式下的事件关系三元组、事件主谓宾三元组抽取的工作。如:
顺承事件关系三元组抽取,地址:
https://github.com/liuhuanyong/SequentialEventExtration
因果事件关系三元组抽取,地址:
https://github.com/liuhuanyong/CausalityEventExtraction
复合事件关系三元组抽取,地址:
https://github.com/liuhuanyong/ComplexEventExtraction
事件主谓宾三元组抽取,地址:
https://github.com/liuhuanyong/EventTriplesExtraction
本文选择复合事件关系三元组抽取和事件主谓宾三元组抽取两个实践项目进行介绍。前者的输出可以作为后者的输入,通过识别出事件关系的两头事件实体,再通过主谓宾关系抽取,可以进一步得到事件的主体和客体,主体和客体可以进一步成为事件实体链接的桥梁,以实现与实体知识的联合建模。

一、ComplexEventExtraction复合事件关系三元组抽取

chinese compound event extraction,中文复合事件抽取,包括条件事件、因果事件、顺承事件、反转事件等事件抽取,并形成事件关系三元组。

1、复合事件关系中事件的界定
如果要做事件关系三元组抽取,那么就务必要回答其中的事件形态是什么,其边界在哪儿。基于框架体系FrameNet那套的ACE将事件表示成为一个个论元集合,CEC事件数据集、SemEval等数据集中将事件界定为一个动词。不同的事件界定方式,直接决定了后续技术的选择以及对应的技术难度下图总结了当前遇到的几种工业界事件表示方式:
以因果事件为例, 已知句子:这几天非洲闹猪瘟,导致国内猪肉涨价。
图片

图1-复合事件关系的界定

2、事件关系的几种类型
坦白的说,对于事件关系的界定,当下有不同的标准。下表列举了当下的几个典型的事件关系类型。而通过结合语言学规则,利用显式的关系词和模式词进行触发、统计,可以发现,因果事件关系是最为明显的,最有规律可循的。
图片

图2-复合事件关系的类型

3、事件关系抽取的实施
当前朴素的事件关系抽取,还是以显式的关系触发词展开,可以针对因果关系【导致、造成、所以】、条件关系【如果、前提、要是】、反转关系【虽然、但是、尽管】、顺承关系【紧接着、然后、接下来】,构造对应的句法模式,将以该触发词为核心的主语和宾语部分抽取出来,即可以得到事件关系三元组。
例如:
1)转折关系三元组模板
图片

2)因果关系三元组模版
图片

4、事件关系抽取的效果
通过对已有的非结构化文本如新闻报道等进行模板抽取,我们可以得到相应的关系三元组抽取效果,如下所示:
1)因果事件三元组图谱可视化效果
图片

图2-美国攻打伊拉克因果事件关系三元组效果

图片

图3-寿光发生洪水因果事件关系三元组效果

2)反转与条件事件关系三元组抽取数据表结果
图片

3)反转事件关系三元组抽取结果图谱可视化结果
图片

图4-反转事件关系可视化效果

4)条件事件关系三元组抽取结果图谱可视化结果
图片

图5-条件事件关系可视化效果

二、EventTriplesExtraction事件主谓宾三元组抽取

基于依存句法与语义角色标注的事件三元组抽取,文本表示一直是个重要问题,如何以清晰,简介的方式对一个文本信息进行有效表示是个长远的任务,我尝试过使用关键词,实体之间的关联关系,并使用textgrapher的方式进行展示,但以词作为文本信息单元表示这种效果不是特别好,所以,本项目想尝试从事件三元组的方式出发,对文本进行表示。
项目地址:
https://github.com/liuhuanyong/EventTriplesExtraction

1、基于依存句法分析和语义角色标注的事件三元组抽取
当前开源的句法分析组件,包括LTP、hannlp、百度DDParse等为我们进行特定句子的依存分析和语义角色标注提供了快速调用的接口。通过对一个句子进行依存句法分析,可以得到一个句子的核心动词、与该动词直接依存的词,如SBV主语关系、VOB动宾关系、OBJ谓语关系集合。因此,我们可以在此基础上,以句子的动词为核心,先后找出其主语和谓语,并通过ATT修饰关系、COO并列关系等进行主语和宾语的扩展,形成三元组。

1)抽取实施
本项目分别使用LTP、百度DDParse作为句法分析器针对输入的文本进行抽取,先进行长句切分,然后进行依存句法分析,并设定扩展规则,可以快速得到三元组集合。
图片

2)抽取结果
本项目的抽取结果如下,选取了“以色列对加沙地带进行轰炸”这一新闻快讯进行处理,得到svos等主谓宾集合。
图片

2、基于词性模板规则的事件三元组抽取
基于依存句法的方式进行事件三元组抽取,其性能受限于依存句法性能的精度,但坦白的说,当前的依存句法分析器的性能并不是特别高,中文的精度在80%-85%之间。因此,我们可以有另一种方式来实现三元组抽取,即基于词性模板的方式,其思想在于,通过构造事件三元组的成词词性模板,如一个典型的IP短语、NP短语、VP短语等,就可以得到三元组结果:
在这里插入图片描述

1)抽取实施
本项目分别使用开源jieba分词器作为分词和词性标注组件,针对输入的文本进行抽取,先进行长句切分,然后进行处理,并设定三元组词性模板,快速得到三元组集合。

2)抽取结果
同样的,本项目选取了“以色列对加沙地带进行轰炸”这一新闻快讯进行处理,得到svos等主谓宾集合。
图片

三、项目总结

1、ComplexEventExtraction复合事件关系三元组抽取总结
本项目对事件图谱的类型、表现形式进行了归纳,并结合复合事件模式与语料进行了实验。实验表明,反转事件,其实在某种程度上可以用来构造反义词词典,例如"不是A而是B"这种模式,可以得到很多反义的词或短语,这让我想到了我的一个反义词项目接口:(https://github.com/liuhuanyong/ChineseAntiword) ,我们可以用wordvector找相近词,可以靠这种方式收集反义词,对了,还可以加上情绪。
实验表明,汉语显示标记其实在中文文本当中还是用的很普遍的,统计了以下,跑了1000W文本,有超过半数的文本中包含以上模式。因此,如果能够把显式的事件关系三元组做好,感觉用处还是很多的。本项目还有很多不足,比如模式上,比如对事件类型和事件表示的z总结上,而且,事件关系三元组还是限定在句子级别,这是一种讨巧的方式,因为放在篇章级上,实施的难度会更大。

2、EventTriplesExtraction事件主谓宾三元组抽取总结
本项目公开了基于ltp句法分析和语义角色标注、基于百度DDParser以及基于词法模式的事件三元组抽取方法,并给了实验示例。通过实验,我们发现
LTP在DDParser之外,还提供了语义角色标注的功能,这个可以用于事件三元组抽取的有效补充,LTP速度比DDParser要快,但语义角色标注模块存在明显的内存泄漏问题。此外,基于词法模式的事件三元组抽取速度最快,但效果取决于分词、词性标注性能,基于词法模式,可以得到语义更长的三元组元素信息。

关于作者

刘焕勇,liuhuanyong,现任360人工智能研究院算法专家,前中科院软件所工程师,主要研究方向为知识图谱、事件图谱在实际业务中的落地应用。
得语言者得天下,得语言资源者,分得天下,得语言逻辑者,争得天下。
1、个人主页:https://liuhuanyong.github.io。
2、个人博客:https://blog.csdn.net/lhy2014/。
欢迎对自然语言处理、知识图谱、事件图谱理论技术、技术实践等落地应用的朋友一同交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文浅尝 | LightRNN:存储和计算高效的 RNN

链接:https://arxiv.org/pdf/1610.09893.pdf动机在NLP任务中使用RNN已经被证明是很有用的模型方法。但是传统的RNN在NLP中的应用有一个很大的限制:RNN的输出输入Embedding占用的空间太大,比如1024维10M词表大小的Embedding矩阵就要占掉40GB&a…

阿里最全Java面试100题汇总:涵盖天猫、蚂蚁金服等面试题!含答案~

【阿里天猫、蚂蚁、钉钉面试题目】 1、微信红包怎么实现。 2、海量数据分析。 3、测试职位问的线程安全和非线程安全。 4、HTTP2.0、thrift。 5、面试电话沟通可能先让自我介绍。 6、分布式事务一致性。 7、nio的底层实现。 8、jvm基础是必问的,jvm GC原理&a…

ACL2020 奇葩论文标题大赏

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 灵魂写手rumor酱编 | 不拖更的夕小瑶又是一年一度的ACL,之前通过卖萌屋Arxiv服务已经零零碎碎看了一些,还是准备刷一下论文list,看看哪篇能让我的模型效果一飞冲天。…

字符串匹配算法(BF RK)

文章目录1. BF(Brute Force)暴力匹配BF代码2. RK(Rabin-Karp)算法RK代码3. 思考题:(二维匹配)1. BF(Brute Force)暴力匹配 BF算法的思想,在主串中&#xff0…

用Python寻找最优投资组合

原文地址:https://www.jianshu.com/p/2a25dfd465e9 现代投资组合理论(Modern Portfolio Theory,MPT)告诉我们投资者应该分散投资来实现最小化风险最大化投资回报。大邓刚开始学习这方面知识,用了将近一天的时候才搞懂M…

技术动态 | 事理图谱,下一代知识图谱

本文转载自公众号:DataHorizon。 人工智能与认知智能当前人工智能时代下,机器与人类之间的博弈一直在进行着。如图1所示,从1926年达特茅斯会议的召开标志人工智能诞生到深度学习模型在…

头条Java后台3面(含答案):事务+List集合+慢查询SQL+Redis+秒杀设计

头条Java一面 1.讲讲jvm运行时数据库区 2.讲讲你知道的垃圾回收算法 3.jvm内存模型jmm 4.内存泄漏与内存溢出的区别 5. select、epoll 的区别?底层的数据结构是什么? 6.mysql数据库默认存储引擎,有什么优点 7.优化数据库的方法&#xf…

CNN卷积神经网络(吴恩达《卷积神经网络》笔记一)

CNN 卷积网络说明卷积 Convolution填充 Padding步长 StrideRGB图像卷积池化 Pooling完整CNN为什么人们喜欢用卷积神经网络?实例分析说明 关于CNN的基础知识:卷积、填充、步长、池化、完整的深度CNN网络可以参考 链接: AI学习笔记——卷积神经网络&#…

字符串匹配算法(BM)

文章目录1. BM(Boyer-Moore)算法1.1 坏字符规则1.2 好后缀规则1.3 两种规则如何选择2. BM算法代码实现2.1 坏字符2.2 好后缀2.3 完整代码2.4 调试3. 总结1. BM(Boyer-Moore)算法 思想:有模式串中不存在的字符&#xf…

SQL 数据分析常用语句

1 基础查询 • 2 字符串数字日期时间 • 3 聚合数据查询 • 4 子查询 • 5 联接组合查询 • 6 高级查询 • 7 更新数据 阅读提醒:点击图片放大可看清晰的 1 基础查询 2 字符串数字日期时间 3 聚合数据查询 4 子查询 5 联接组合查询 6 高级查询 7 更新数据 参考资料 …

开源词法分析工具LAC重大升级!打造属于自己的个性化分词器!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 匿名大佬编 | 北大小才女小轶本文将为大家介绍如何使用百度开源的词法分析工具LAC实现个性化分词(附代码),并展示LAC在各数据集上惊艳的性能表现。背景介绍分词是中文…

老刘说NLP:这几年的NLP历程回顾,以及关于NLP(知识图谱等)落地的思考

得语言者,得天下。得语言资源者,分天下。得语言逻辑者,争天下。 前言 只有把自己所思考的,所认识的东西,以文字的方式记录下来,才是对自己成长最好的记录方式。 是的,距离上一次动手写博客或者…

Redis系列教程(一):Redis缓存的设计、性能、应用与数据集群同步

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上…

论文浅尝 | 提取计数量词丰富知识库

OpenKG 祝各位读者新年快乐!论文标题:Enriching Knowledge Bases with Counting Quantifiers论文链接:https://link.springer.com/content/pdf/10.1007%2F978-3-030-00671-6_11.pdf发表会议:ISWC 2018论文源码:https:/…

RNN循环神经网络(吴恩达《序列模型》笔记一)

1、为什么选择序列模型 2、数学符号 用1来代表人名,0来代表非人名,句子x便可以用y[1 1 0 1 1 0 0 0 0]来表示 3、循环网络模型 值得一提的是,共享特征还有助于减少神经网络中的参数数量,一定程度上减小了模型的计算复杂度。 …

字符串匹配算法(KMP)

文章目录1. KMP由来2. KMP算法基本原理3. 代码4. Leetcode 28. 实现 strStr()1. KMP由来 上一节说的BM算法是最高效、最常用的字符串匹配算法。最知名的却是KMP,它3位作者(D.E.Knuth,J.H.Morris,V.R.Pratt)&#xff0…

常用的SQL语句

常用的SQL语句 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server 1 --- 创建 备份数据的 device 2 3   USE master 4 5   EXEC sp_addumpdevice disk, te…

论文浅尝 | 用对抗学习做知识表示(NAACL2018)

论文链接:https://arxiv.org/pdf/1711.04071.pdf代码链接:https:// github.com/cai-lw/KBGAN 本文针对在生成负样本时有大部分负样本可以很好地和正样本区分开,对训练的影响不大,提出了使用生成对抗网络(GANs&#xff…

为什么搜索与推荐场景用AUC评价模型好坏?

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 吴海波在互联网的排序业务中,比如搜索、推荐、广告等,AUC(Area under the Curve of ROC)是一个非常常见的评估指标。网上关于AUC的资料很多,知…

Redis系列教程(九):Redis的内存回收原理,及内存过期淘汰策略详解

Redis内存回收机制 Redis的内存回收主要围绕以下两个方面: 1.Redis过期策略:删除过期时间的key值 2.Redis淘汰策略:内存使用到达maxmemory上限时触发内存淘汰数据 Redis的过期策略和内存淘汰策略不是一件事,实际研发中不要弄混淆了,下面会…