5分钟 NLP:使用 OpenNRE 进行关系提取

本文涉及的产品
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
简介: 5分钟 NLP:使用 OpenNRE 进行关系提取

关系提取( Relation Extraction)是一项自然语言处理任务,旨在提取实体之间的关系。例如,从句罗密欧与朱丽叶是由威廉莎士比亚写的,我们可以提取关系三元组(威廉莎士比亚,是罗密欧与朱丽叶的作者)。

关系提取是自动知识图谱构建中的一项关键技术。通过关系提取,我们可以累积提取新的关系事实,扩展知识图谱,这些知识可以作为机器理解人类世界的一种方式,在问答、推荐系统、搜索引擎等下游有很多应用。

OpenNRE 是对文本进行关系提取最常用的库之一。

OpenNRE 是一个开源且可扩展的工具包,它提供了一个统一的框架来实现关系提取模型。

该库带有两个预训练模型,无需任何训练即可投入生产:

  • wiki80_cnn_softmax:使用 CNN 编码器在 Wiki80 数据集上训练。
  • wiki80_bert_softmax:使用 BERT 编码器在 Wiki80 数据集上训练。

两个模型都在 Wiki80 数据集上进行训练,该数据集由 80 个关系组成,每个关系有 700 个实例。

为了使用 OpenNRE 库,必须首先从它的 repo 安装它:

#downloadrepowithOpenNRElibrarygitclonehttps://github.com/thunlp/OpenNRE.git#installlibrarycdOpenNREpipinstall-rrequirements.txtpythonsetup.pyinstall

接下来的步骤是:

  • Python 代码中导入库
  • 加载预训练模型。
  • 调用模型的 infer 函数,传递 (1) 一个段落,(2) 第一个实体位置,以及 (3) 第二个实体位置。该函数返回实体对的预测关系,使用段落作为上下文。
importopennre#downloadNREpretrainedmodelmodel=opennre.get_model('wiki80_cnn_softmax')
#textusedtolookforrelationstext="""Kobe Bean Bryant was an American professional basketball player.A shooting guard, he spent his entire career with the Los Angeles Lakers in the NBA."""#choosetwoentitieswhoserelationistobepredictedh_text="Kobe Bean Bryant"t_text="shooting guard"h_pos= (text.index(h_text), text.index(h_text) +len(h_text))
t_pos= (text.index(t_text), text.index(t_text) +len(t_text))
#predictrelationmodel.infer({'text': text, 'h': {'pos': h_pos}, 't': {'pos': t_pos}})
#output:
# ('position played on team / speciality', 0.9829357862472534)

尽管名称为关系提取,但我们在这里看到的示例实际上是一个多标签分类问题,其中可以提取的关系类型是训练集中存在的关系类型。


目录
相关文章
|
6月前
|
机器学习/深度学习 自然语言处理
利用深度学习技术改进自然语言处理中的命名实体识别
命名实体识别(Named Entity Recognition, NER)在自然语言处理领域扮演着重要角色,但传统方法在处理复杂语境和多样化实体时存在局限性。本文将探讨如何利用深度学习技术,特别是基于预训练模型的方法,来改进命名实体识别,提高其在现实场景中的性能和适用性。
|
6月前
|
机器学习/深度学习 自然语言处理 数据可视化
NLP:预测新闻类别 - 自然语言处理中嵌入技术
NLP:预测新闻类别 - 自然语言处理中嵌入技术
103 0
|
8天前
|
机器学习/深度学习 数据采集 自然语言处理
如何使用深度学习模型来提高命名实体识别的准确率?
如何使用深度学习模型来提高命名实体识别的准确率?
|
3月前
|
自然语言处理 BI 数据处理
自然语言处理 Paddle NLP - 基于预训练模型完成实体关系抽取
自然语言处理 Paddle NLP - 基于预训练模型完成实体关系抽取
107 1
|
3月前
|
机器学习/深度学习 存储 人工智能
自然语言处理 Paddle NLP - 检索式文本问答-理论
自然语言处理 Paddle NLP - 检索式文本问答-理论
27 1
|
4月前
|
机器学习/深度学习 数据采集 自然语言处理
如何使用深度学习模型来提高命名实体识别的准确率
如何使用深度学习模型来提高命名实体识别的准确率
|
3月前
|
机器学习/深度学习 自然语言处理 算法
nlp文本提取关键词
8月更文挑战第21天
44 0
|
自然语言处理 数据可视化 API
ESRE 系列(二):如何部署自然语言处理 (NLP):命名实体识别 (NER) 示例
本文采用示例讲解的方式,介绍使用一个命名实体识别 (NER) NLP 模型来定位和提取非结构化文本字段中预定义类别的实体。我们将通过一个公开可用的模型向您展示如何完成以下几种操作:部署模型到 Elasticsearch 中,利用 new _infer API 查找文本中的命名实体,以及在 Ingest 管道中使用 NER 模型,在文档被采集到 Elasticsearch 中时提取实体。
18209 12
ESRE 系列(二):如何部署自然语言处理 (NLP):命名实体识别 (NER) 示例
|
自然语言处理 PyTorch 测试技术
ESRE 系列(一):如何部署自然语言处理 (NLP):文本嵌入和向量检索
本文将举例说明如何使用文本嵌入模型来生成文本内容的向量表示,并演示如何对生成的向量进行向量检索。我们将会在 Elasticsearch 上部署一个面向所有人群开放的模型,然后在采集管道中使用它来从文本文档生成嵌入。接下来,我们会展示如何在向量检索中使用这些嵌入来查找对于给定查询而言语义相似的文档。
35717 12
ESRE 系列(一):如何部署自然语言处理 (NLP):文本嵌入和向量检索
|
机器学习/深度学习 人工智能 自然语言处理
深度学习应用篇-自然语言处理-命名实体识别[9]:BiLSTM+CRF实现命名实体识别、实体、关系、属性抽取实战项目合集(含智能标注)
深度学习应用篇-自然语言处理-命名实体识别[9]:BiLSTM+CRF实现命名实体识别、实体、关系、属性抽取实战项目合集(含智能标注)
深度学习应用篇-自然语言处理-命名实体识别[9]:BiLSTM+CRF实现命名实体识别、实体、关系、属性抽取实战项目合集(含智能标注)
下一篇
无影云桌面