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.gitpip 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 等多个开源项目的主要开发者与参与者,在开源社区十分活跃。更多的信息可以参考作者个人主页以及项目文档。

opennre 中文关系抽取_OpenNRE 2.0:可一键运行的开源关系抽取工具包相关推荐

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

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

  2. [信息抽取]基于ERNIE3.0的多对多信息抽取算法:属性关系抽取

    [信息抽取]基于ERNIE3.0的多对多信息抽取算法:属性关系抽取 https://aistudio.baidu.com/aistudio/projectdetail/5143572?contribu ...

  3. 中文文本分类语料库-TanCorpV1.0

    转自 http://www.360doc.com/content/12/0216/21/3430376_187198503.shtml 中文文本分类语料库-TanCorpV1.0 谭松波,王月粉 1 ...

  4. 直播预告 | 长文本知识抽取:基于语义分割的文档级三元组关系抽取

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  5. mysql常用命令英文词汇_MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档

    MySQL在高并发连接.数据库记录数较多的情况下,SELECT ... WHERE ... LIKE '%...%'的全文搜索方式不仅效率差,而且以通配符%和_开头作查询时,使用不到索引,需要全表扫描 ...

  6. 【Vue2.0】—Vue与Component的关系(十二)

    [Vue2.0]-Vue与VueComponent的关系(十二) <body><div id="root"><h2>{{name}}</h ...

  7. php7 jpgraph,JpGraph4.0.2中文乱码以及在php7.0版本无法显示的解决办法

    [摘要] PHP即"超文本预处理器",是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语法混合了C.Java.Perl以及 ...

  8. [代码发布]中文文字转换组件 1.0,支持VB/ASP编程

    中文文字转换组件 1.0 *************************************************************** 版本历史: ***************** ...

  9. 计算机中文速录技能,亚伟中文速录机训教程(6.0版).doc

    亚伟中文速录机训教程(6.0版) 亚伟中文速录机培训教程 Page PAGE 7 of NUMPAGES 52 亚伟中文速录机培训教程 绪论 亚伟中文速录机结构图 上编 第一讲 亚伟速录机的设计原则, ...

最新文章

  1. bigdecimal为0 xml不走_爱情不能够接受谎言的星座,天蝎座容忍度为0,发现将失去彼此...
  2. 预告丨2018年值得关注的200场机器学习会议
  3. vooc充电原理_Reno3系列最快56分钟充满,VOOC闪充技术再次行业领先
  4. js验证input输入框(字母,数字,符号,中文)
  5. Python数模笔记-NetworkX(4)最小生成树
  6. 消息队列之推还是拉,RocketMQ 和 Kafka是如何做的?
  7. 图片服务 - thumbor启用检测器
  8. Android ScrollView
  9. Spark源码系列(一)spark-submit提交作业过程
  10. golang ide 环境搭建_golang环境搭建
  11. php怎么弄钓鱼,php 最新qq钓鱼空间php源码 需要修改数据库连接 WEB(ASP,PHP,...) 247万源代码下载- www.pudn.com...
  12. 国内比较常见的工厂管理系统有哪些?
  13. linux使用du命令查看文件夹大小(磁盘使用情况)
  14. 关于安卓图片剪切造成软件崩溃问题的解决方法
  15. (精)广东工业大学《数据可视化技术》 2018实验报告
  16. 表情识别------CNN训练fer2013数据集
  17. linux cut指令
  18. 2010年6月 工作 计划 发奋图钱 再接再厉
  19. Go 并发 | 数据竞争及竞争条件
  20. Shopee使用虚拟信用卡绑卡测试购物教程

热门文章

  1. php yii orm,Yii中的sql查询的位置(或任何支持ORM的框架)?
  2. Node.js实现服务器端生成Excel文件(xls格式、xlsx格式文件)并弹出下载文件
  3. 实验四 定位与导航算法
  4. 自己开发开源jquery插件--给jquery.treeview加上checkbox
  5. [PKUWC2018]随机算法
  6. [转载]Matlab之静态文本多行输出
  7. 执行eclipse,迅速failed to create the java virtual machine。
  8. iPhone App开发实战手册学习笔记(5)之IOS常用机制
  9. Windows环境下Unicode编程总结和将ANSI转换到Unicode 将Unicode转换到ANSI
  10. html内通过parentNode来得到上级对象,与此对应的,还有childNodes[x]得到下级对象...