前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >5分钟 NLP:使用 OpenNRE 进行关系提取

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

作者头像
deephub
发布2021-12-28 08:59:48
8540
发布2021-12-28 08:59:48
举报
文章被收录于专栏:DeepHub IMBA

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

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

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

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

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

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

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

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

代码语言:javascript
复制
# download repo with OpenNRE library
git clone https://github.com/thunlp/OpenNRE.git

# install library
cd OpenNRE
pip install -r requirements.txt
python setup.py install

接下来的步骤是:

  • Python 代码中导入库
  • 加载预训练模型。
  • 调用模型的 infer 函数,传递 (1) 一个段落,(2) 第一个实体位置,以及 (3) 第二个实体位置。该函数返回实体对的预测关系,使用段落作为上下文。
代码语言:javascript
复制
import opennre

# download NRE pretrained model
model = opennre.get_model('wiki80_cnn_softmax')

# text used to look for relations
text = """
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.
"""

# choose two entities whose relation is to be predicted
h_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))

# predict relation
model.infer({'text': text, 'h': {'pos': h_pos}, 't': {'pos': t_pos}})

# output:
# ('position played on team / speciality', 0.9829357862472534)

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DeepHub IMBA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
灰盒安全测试
腾讯知识图谱(Tencent Knowledge Graph,TKG)是一个集成图数据库、图计算引擎和图可视化分析的一站式平台。支持抽取和融合异构数据,支持千亿级节点关系的存储和计算,支持规则匹配、机器学习、图嵌入等图数据挖掘算法,拥有丰富的图数据渲染和展现的可视化方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档