OpenNRE 2.0:可一键运行的开源关系抽取工具包

OpenNRE(https://github.com/thunlp/OpenNRE.git)是清华大学自然语言处理实验室推出的一款开源的神经网络关系抽取工具包,包括了多款常用的关系抽取模型,发布仅一年即在 Github 上获得了 1700+ 星标。

现在这款工具包已经悄悄更新到了 2.0 版本!在原版 TensorFlow 实现的基础上,不仅采用了现在大热的 PyTorch 作为基础,设计了更加模块化的框架,还囊括了句子级别关系抽取、远监督关系抽取和少次学习关系抽取等丰富设定,可以说是加量不加价,值得你拥有!

OpenNRE框架图

同时,该工作也以 DEMO Paper 的形式发表在了 EMNLP 2019 上,这里是 paper 的地址: 

OpenNRE: An Open and Extensible Toolkit for Neural Relation Extraction 

https://arxiv.org/abs/1909.13078 

作者在介绍文档中还写道,相比于原版主要面对关系抽取研究者的设定,新版的 OpenNRE 受众更加广泛:

  • 对于初学者:OpenNRE 提供了详尽的介绍文档,可以快速帮助入门

  • 对于开发者:提供了简洁易用的 API 和若干预训练模型,可方便调用

  • 对于研究者:模块化设计、多种任务设定、state-of-the-art 模型,可以帮助研究者更快更高效的进行探索

  • 想要在 NLP 课上交一份满意大作业的同学:这个项目里的模型绝对能让你的教授眼前一亮

什么是关系抽取

关系抽取是自然语言处理当中的一项重要任务,致力于从文本中抽取出实体之间的关系。比如从句子“达芬奇绘制了蒙娜丽莎”中,我们可以抽取出(达芬奇,画家,蒙娜丽莎)这样一个关系三元组。

关系抽取技术是自动构建知识图谱的重要一环。知识图谱是由真实世界中的实体和实体间复杂关系构成的结构化表示,是帮助机器理解人类知识的重要工具,在问答系统、搜索引擎、推荐系统中都有着重要的应用。

关系图谱示例关系抽取十八变

由于数据和需求的不同,关系抽取这一任务也发展出了许多不同的任务场景。下面简单介绍几种,他们也都被包括在了 OpenNRE 这一工具包中。
 
句子级别关系抽取:顾名思义,句子级别的关系抽取,就是对每一个给定的句子,和在句子中出现的实体,判断他们之间的关系。在这样的设定下,通常会使用人工精标的数据进行训练和测试,如 SemEval 2010 Task8,TACRED,ACE2005 等。OpenNRE 中还提供了一个新的数据集 Wiki80,包含 80 种 Wikidata 关系和 56,000 个句子,与以往的数据集相比,规模更大。
 
包级别关系抽取:包级别的关系抽取产生于远程监督(Distant Supervision)的设定中。我们都知道,传统的机器学习方法需要大量数据,而标注数据费时费力,因此研究者们提出了远程监督这一方法,通过将知识图谱中的关系三元组与文本对齐,自动进行标注。然而这一方法也带来了大量的噪声数据,为了减小噪声的影响,多样本多标签(multi-instance multi-label)的方法被引入,模型不再对单个句子进行分类,而是对包含相同实体对的句子集(称为包)进行分类。
 
少次学习关系抽取:少次学习(Few-Shot)是一种探索如何让模型快速适应新任务的设定,通过学习少量的训练样本,即可获得对新类型事物的分类能力。刘知远老师组发布的数据集 FewRel 正是进行了这方面的探索。
 
篇章级别的关系抽取:相比于针对句子的关系抽取,篇章级别的关系抽取难度更大,但包含的信息也更丰富。要想在这方面做的更好,就需要模型具有一定的推理、指代消解的能力。这一领域的代表数据集是同样来自刘知远老师组的DocRED(https://github.com/thunlp/DocRED)。
 
上述任务场景基本涵盖了目前关系抽取领域的最新进展,OpenNRE 也提供了较为便利的接口以支持上述场景的进一步工作研究。

上手教程:如何使用OpenNRE

OpenNRE 的使用十分简单,首先 git clone 项目并安装依赖:

git clone https://github.com/thunlp/OpenNRE.git
pip install -r requirements.txt

随后在目录下打开 Python,并 import opennre:

>>> import opennre

可以使用 get_model 命令加载预训练模型:

>>> model = opennre.get_model('wiki80_cnn_softmax')

这是一个在 wiki80 数据集上进行训练的句子级别的 CNN 模型,可以在 80 个关系上对句子进行分类。随后我们可以用 infer 函数进行预测:

>>> model.infer({'text': 'He was the son of Máel Dúin mac Máele Fithrich, and grandson of the high king Áed Uaridnach (died 612).', 'h': {'pos': (18, 46)}, 't': {'pos': (78, 91)}})
('father', 0.5108704566955566)

可以看到模型正确推理出了关系 father,并给出了模型预测的置信度。

关于 OpenNRE 更详细的说明,可以查看项目主页:https://github.com/thunlp/OpenNRE

或文档:https://opennre-docs.readthedocs.io/en/latest/

关于作者

OpenNRE 由孙茂松教授领导的清华大学自然语言处理实验室(THUNLP)师生研发维护。目前 THUNLP 的 Github 主页(https://github.com/thunlp)已有 92 个项目,其中有许多高星项目。

OpenNRE 项目的两位主要作者——高天宇(https://gaotianyu.xyz/about/)和韩旭(https://thucsthanxu13.github.io/)都是 THUNLP 实验室刘知远老师的学生。

其中,高天宇是大四的本科生,韩旭是博士三年级的学生。从主页上可以看出,两人的研究方向均为自然语言处理信息抽取、图谱表示和机器学习。其中,高天宇作为大四的本科生,已经在相关领域国际会议上发表了三篇论文;而韩旭除了在相关领域发表多篇论文外,也是 OpenNRE、OpenKE 和 FewRel 等多个开源项目的主要开发者与参与者,在开源社区十分活跃。更多的信息可以参考作者个人主页以及项目文档。

PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

工程PyTorch神经网络实体关系抽取清华大学自然语言处理
3
相关数据
刘知远人物

刘知远,清华大学计算机系副教授、博士生导师。主要研究方向为表示学习、知识图谱和社会计算。2011 年获得清华大学博士学位,已在 ACL、IJCAI、AAAI 等人工智能领域的著名国际期刊和会议发表相关论文 60 余篇,Google Scholar 统计引用超过 2100 次。承担多项国家自然科学基金。曾获清华大学优秀博士学位论文、中国人工智能学会优秀博士学位论文、清华大学优秀博士后、中文信息学会青年创新奖,入选中国科学青年人才托举工程、CCF-Intel 青年学者提升计划。担任中文信息学会青年工作委员会执委、副主任,中文信息学会社会媒体处理专委会委员、秘书,SCI 期刊 Frontiers of Computer Science 青年编委,ACL、COLING、IJCNLP 领域主席。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

知识图谱技术

知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。 知识图谱这个概念最早由Google提出,主要是用来优化现有的搜索引擎。不同于基于关键词搜索的传统搜索引擎,知识图谱可用来更好地查询复杂的关联信息,从语义层面理解用户意图,改进搜索质量。比如在Google的搜索框里输入Bill Gates的时候,搜索结果页面的右侧还会出现Bill Gates相关的信息比如出生年月,家庭情况等等。

推荐系统技术

推荐系统(RS)主要是指应用协同智能(collaborative intelligence)做推荐的技术。推荐系统的两大主流类型是基于内容的推荐系统和协同过滤(Collaborative Filtering)。另外还有基于知识的推荐系统(包括基于本体和基于案例的推荐系统)是一类特殊的推荐系统,这类系统更加注重知识表征和推理。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

信息抽取技术

信息/数据抽取是指从非结构化或半结构化文档中提取结构化信息的技术。信息抽取有两部分:命名实体识别(目标是识别和分类真实世界里的知名实体)和关系提取(目标是提取实体之间的语义关系)。概率模型/分类器可以帮助实现这些任务。

问答系统技术

问答系统是未来自然语言处理的明日之星。问答系统外部的行为上来看,其与目前主流资讯检索技术有两点不同:首先是查询方式为完整而口语化的问句,再来则是其回传的为高精准度网页结果或明确的答案字串。以Ask Jeeves为例,使用者不需要思考该使用什么样的问法才能够得到理想的答案,只需要用口语化的方式直接提问如“请问谁是美国总统?”即可。而系统在了解使用者问句后,会非常清楚地回答“奥巴马是美国总统”。面对这种系统,使用者不需要费心去一一检视搜索引擎回传的网页,对于资讯检索的效率与资讯的普及都有很大帮助。从系统内部来看,问答系统使用了大量有别于传统资讯检索系统自然语言处理技术,如自然语言剖析(Natural Language Parsing)、问题分类(Question Classification)、专名辨识(Named Entity Recognition)等等。少数系统甚至会使用复杂的逻辑推理机制,来区隔出需要推理机制才能够区隔出来的答案。在系统所使用的资料上,除了传统资讯检索会使用到的资料外(如字典),问答系统还会使用本体论等语义资料,或者利用网页来增加资料的丰富性。

孙茂松人物

孙茂松,教授,博士生导师,曾任清华大学计算机科学与技术系系主任,现任教育部在线教育研究中心副主任、清华大学计算机系党委书记、清华大学大规模在线开放教育研究中心主任。

指代消解技术

在计算语言学中,共参考分辨率是一个在话语中被充分研究的问题。为了得出对文本的正确解释,或者甚至估计各种提到的主题的相对重要性,代词和其他引用表达必须与正确的个体相关联。目的解决指代的算法通常首先查找与引用表达式兼容的最近的一个之前个体。

远程监督技术

该方法由 M Mintz 于 ACL2009 上首次提出,与传统预先定义关系类别不同,Distant Supervision 通过将知识库与非结构化文本对齐来自动构建大量训练数据,减少模型对人工标注数据的依赖,增强模型跨领域适应能力。

推荐文章
暂无评论
暂无评论~