【关系抽取】基于Bert的信息抽取模型CasRel

news2024/10/5 13:51:33

     🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎

📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​

📣系列专栏 - 机器学习【ML】 自然语言处理【NLP】  深度学习【DL】

 🖍foreword

✔说明⇢本人讲解主要包括Python、机器学习(ML)、深度学习(DL)、自然语言处理(NLP)等内容。

如果你对这个系列感兴趣的话,可以关注订阅哟👋

文章目录

关系抽取 Relation Extraction

信息抽取

关系抽取实现


关系抽取 Relation Extraction

 关系提取是一项自然语言处理 (NLP) 任务,旨在提取实体(例如,比尔盖茨和微软)之间的关系(例如,创始人)。例如,从句子 比尔盖茨创建了微软 中,我们可以提取关系三元组 (比尔盖茨, 创始人, 微软)。

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


信息抽取

大部分的信息抽取任务,实际上就是从语句中抽取“三元组”的任务,具体描述如下:

三元组指的是:主实体(subject)、实体间关系(predicate)、目标实体(object)

三者之间的关系概况为:“subjectpredicateobject”。所以抽取三元组,也称为spo抽取。

信息抽取任务就是:输入一个句子,目标就是抽取出句子中包含的所有三元组

论文名称:《A Novel Cascade Binary Tagging Framework for Relational Triple Extraction》论文链接: https://aclanthology.org/2020.acl-main.136.pdf
代码地址: https://github.com/weizhepei/CasRel

CasRel 框架提出的核心观点是:我们不将关系看做实体对儿上的离散标签,而是将关系建模为主实体映射到对象实体的函数。更确切地说,我们不是学习关系分类器 f(s,o) → r,而是学习关系特定的标记器 f_{r}(s)→ o,每个标记器都识别给定主实体下的目标实体所有可能的关系。在这个框架下,关系三元组抽取是分两步完成的:首先我们识别一个句子中所有可能的主实体;然后对于每个主实体,我们应用特定于关系的标记器来同时识别所有可能的关系和相应的目标实体。

 关系三元组抽取(Relational Triple Extraction, RTE),也叫实体-关系联合抽取,是信息抽取领域中的一个经典任务,旨在从文本中抽取出结构化的关系三元组(Subject, Relation, Object)用以构建知识图谱。有时也与关系分类(Relation Classification, RC)任务统称为关系抽取(Relation Extraction, RE)。

RC与RTE的主要区别在于:RC是在给定实体对和输入文本的情况下,抽取出实体对在句子中所表达的关系;而RTE则是在仅给定输入文本的情况下,抽取出包含在文本中的所有可能的关系三元组。

信息抽取是构建大规模知识图谱的必备关键,先来说一下图谱的三元组形式,在以往常常将三元组以 (head,relation, tail) 的形式表示,在这里以(subject, relation, object)的形式表示,即(S, R,O),为了方便描述,后文将以这种形式阐述。

信息抽取分为两大部分,一部分是命名实体识别,识别出文本中的实体,另外就是关系抽取,对识别出来的实体构建对应的关系,两者便是构建三元组的基本组成。

在以往的研究工作中,早期两个任务以pipline的方式进行,先做命名实体识别,然后做关系抽取。但是pipline的流程可能造成实体的识别错误,也就造成关系构建的错误,所以后续的一些研究工作将两者采用联合学习的方式。

关系抽取实现

一对多的抽取分类任务,样本主要特点如下:

  • s和o未必是分词工具分出来的词,因此要对query做标注才能抽取出正确的s、o,而考虑到分词可能切错边界,因此应该使用基于字的输入来标注;
  • 样本中大多数的抽取结果是“一个s、多个(p, o)”的形式,比如“周杰伦的《告白气球》、《龙卷风》《明明就》等等歌曲都是我常伴我的良友”,那么要抽出“(周杰伦, 歌曲, 告白气球)”、“(周杰伦, 歌曲, 龙卷风)”、“(周杰伦, 歌曲, 明明就)”;
  • 抽取结果是“多个s、一个(p, o)”甚至是“多个s、多个(p, o)”的样本也占有一定比例,比如“《战狼》、《战狼2》的主演都是吴京”,那么要抽出“(战狼, 主演, 吴京)”、“(战狼2, 主演, 吴京)”;
  • 同一对(s, o)也可能对应多个p,比如“《如果我爱你》是由海润影视与明道工作室联合出品”,那么要抽出“(如果我爱你, 出品公司, 海润影视)”、“(如果我爱你, 出品公司, 明道工作室)”;
  • 极端情况下,s、o之间是可能重叠的,比如“《鲁迅自传》由江苏文艺出版社出版”,严格上来讲,除了要抽出“(鲁迅自传, 出版社, 江苏文艺出版社)”外,还应该抽取出“(鲁迅自传, 作者, 鲁迅)”。

需要抽取的spo类别如下:

{"object_type": "地点", "predicate": "祖籍", "subject_type": "人物"}
{"object_type": "人物", "predicate": "父亲", "subject_type": "人物"}
{"object_type": "地点", "predicate": "总部地点", "subject_type": "企业"}
{"object_type": "地点", "predicate": "出生地", "subject_type": "人物"}
{"object_type": "目", "predicate": "目", "subject_type": "生物"}
{"object_type": "Number", "predicate": "面积", "subject_type": "行政区"}
{"object_type": "Text", "predicate": "简称", "subject_type": "机构"}
{"object_type": "Date", "predicate": "上映时间", "subject_type": "影视作品"}
{"object_type": "人物", "predicate": "妻子", "subject_type": "人物"}
{"object_type": "音乐专辑", "predicate": "所属专辑", "subject_type": "歌曲"}
{"object_type": "Number", "predicate": "注册资本", "subject_type": "企业"}
{"object_type": "城市", "predicate": "首都", "subject_type": "国家"}
{"object_type": "人物", "predicate": "导演", "subject_type": "影视作品"}
{"object_type": "Text", "predicate": "字", "subject_type": "历史人物"}
{"object_type": "Number", "predicate": "身高", "subject_type": "人物"}
{"object_type": "企业", "predicate": "出品公司", "subject_type": "影视作品"}
{"object_type": "Number", "predicate": "修业年限", "subject_type": "学科专业"}
{"object_type": "Date", "predicate": "出生日期", "subject_type": "人物"}
{"object_type": "人物", "predicate": "制片人", "subject_type": "影视作品"}
{"object_type": "人物", "predicate": "母亲", "subject_type": "人物"}
{"object_type": "人物", "predicate": "编剧", "subject_type": "影视作品"}
{"object_type": "国家", "predicate": "国籍", "subject_type": "人物"}
{"object_type": "Number", "predicate": "海拔", "subject_type": "地点"}
{"object_type": "网站", "predicate": "连载网站", "subject_type": "网络小说"}
{"object_type": "人物", "predicate": "丈夫", "subject_type": "人物"}
{"object_type": "Text", "predicate": "朝代", "subject_type": "历史人物"}
{"object_type": "Text", "predicate": "民族", "subject_type": "人物"}
{"object_type": "Text", "predicate": "号", "subject_type": "历史人物"}
{"object_type": "出版社", "predicate": "出版社", "subject_type": "书籍"}
{"object_type": "人物", "predicate": "主持人", "subject_type": "电视综艺"}
{"object_type": "Text", "predicate": "专业代码", "subject_type": "学科专业"}
{"object_type": "人物", "predicate": "歌手", "subject_type": "歌曲"}
{"object_type": "人物", "predicate": "作词", "subject_type": "歌曲"}
{"object_type": "人物", "predicate": "主角", "subject_type": "网络小说"}
{"object_type": "人物", "predicate": "董事长", "subject_type": "企业"}
{"object_type": "Date", "predicate": "成立日期", "subject_type": "机构"}
{"object_type": "学校", "predicate": "毕业院校", "subject_type": "人物"}
{"object_type": "Number", "predicate": "占地面积", "subject_type": "机构"}
{"object_type": "语言", "predicate": "官方语言", "subject_type": "国家"}
{"object_type": "Text", "predicate": "邮政编码", "subject_type": "行政区"}
{"object_type": "Number", "predicate": "人口数量", "subject_type": "行政区"}
{"object_type": "城市", "predicate": "所在城市", "subject_type": "景点"}
{"object_type": "人物", "predicate": "作者", "subject_type": "图书作品"}
{"object_type": "Date", "predicate": "成立日期", "subject_type": "企业"}
{"object_type": "人物", "predicate": "作曲", "subject_type": "歌曲"}
{"object_type": "气候", "predicate": "气候", "subject_type": "行政区"}
{"object_type": "人物", "predicate": "嘉宾", "subject_type": "电视综艺"}
{"object_type": "人物", "predicate": "主演", "subject_type": "影视作品"}
{"object_type": "作品", "predicate": "改编自", "subject_type": "影视作品"}
{"object_type": "人物", "predicate": "创始人", "subject_type": "企业"}

object和predicate之间组合一个重复

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

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

相关文章

冒名顶替综合症:悄悄地杀死你的梦想

如今,越来越多的开发人员自学成才,很容易消极地与那些拥有计算机科学学士学位或硕士学位的同事进行比较,但请不要这样做。 你们中的很多都很出色,只是你们不清楚这一点。看到那些认为自己不够优秀,但实际上很了不起的人…

MySQL语句

目录 一、常用查询 二、高级SQL语句 1、按关键字排序 单字段排序 按分数降序排列 结合条件过滤 多字段排序 查询学生信息先按兴趣id升序排列,相同分数的,id按升序排列 区间判断及查询不重复记录 嵌套/多条件 对hobbyid进行分组查询&#xff0c…

RabbitMQ学习笔记之Work Queues

工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。 相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进 程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起…

Nacos2.0.3集群搭建

集群搭建 前置条件 JDK 1.8MySQL 5.7.29Nacos 2.0.3 搭建过程 将Nacos安装包上传至三个服务器,本次搭建使用三个端口来模拟三个不同的主机解压: tar -zvxf nacos-server-2.0.3.tar.gzNacos持久化,首先确保服务器已经安装MySQL(Nacos持久化要…

爆肝!阿里最新版的Spring Security源码手册,强行霸占GitHub榜首

写在前面 Spring Security 的前身是 Acegi Security,在被收纳为Spring 子项目后正式更名为Spring Security。在笔者成书时,Spring Security已经升级到5.1.3.RELEASE版本,加入了原生OAuth2.0框架,支持更加现代化的密码加密方式。 …

你入职的时候一定要问领导要的maven私服配置文件,它是什么?Nexus入门使用指南

上一篇教大家如何在Linux搭建Nexus Linux安装Nexus(图文解说详细版) 文章目录🙋登录Nexus👰在maven中配置自己的私服地址🙇在idea中使用nexus作为maven私服💑 引用nexus里面的jar包💇配置maven文…

【NLP】自然语言处理的语料库与词库

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

双十二有哪些实用性强的数码好物?值得入手的实用数码好物推荐

赶在年末的双十二快来了,大家有没有心仪的数码好物正在购物车里蠢蠢欲动呢?入手数码产品最重要的还是要看其实用性强不强,下面,我整理了一份值得入手的实用数码好物清单,希望能给大家有个参考。 一、蓝牙耳机 蓝牙耳…

10、Springboot整合Security很全

1.什么是Security SpringSecurity是基于Spring AOP和Servlet过滤器的安全框架。 它提供全面的安全性解决方案,同时在Web 请求级和方法调用级处理身份确认和授权。 2.Spring Security核心功能? (1)认证(你是谁&…

Java集合容器面试题(2023最新版)

集合容器概述 什么是集合 集合框架:用于存储数据的容器。 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。 任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。 接口:表示集合的抽象数据类型。接口…

王洪伟:流体力学与微积分方法求解水池进排水问题

作者 | 王洪伟 北京航空航天大学副教授,仿真秀专栏作者 导 读:经过了几篇略显烧脑的文章后,来一篇轻松一点的,经典的小学数学应用题。 1、问题分析 题:一个水池有一个进水管和一个排水管。只开进水管,2个…

Linux常用命令总结

目录和文件命令 (1)用户目录:位于/home/user,称之为用户工作目录; (2)ls:是英文单词list的简写,其功能为列出目录的内容; ls -a 列出隐藏文件,文…

CAS号:67131-52-6, 三肽Ala-Ala-Tyr

H-Ala-Ala-Tyr-OH 用于合成突变型多肽。H-Ala-Ala-Tyr-OH can be synthesized mutant peptides[1][2]. 编号: 193893中文名称: 三肽Ala-Ala-TyrCAS号: 67131-52-6单字母: H2N-AAY-OH三字母: H2N-Ala-Ala-Tyr-COOH氨基酸个数: 3分子式: C15H21N3O5平均分子量: 323.34精确分子量:…

Vue学习:分析hello案例

一个vue实例&#xff0c;接管不了两个容器 和 多个实例&#xff0c;一个容器都不允许 容器实例必须一对一 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" conten…

Nexus存储库管理器搭建-Maven私服

写在前面 &#x1f341;个人主页&#xff1a;微枫Micromaple ✨本期专栏&#xff1a;《0到1项目搭建》欢迎订阅学习~ &#x1f4cc;源码获取&#xff1a;GitCode、GitHub、码云Gitee 持续更新中&#xff0c;别忘了 star 喔~ 在企业开发过程中&#xff0c;就比如说我们Java程序员…

Linux内核中ideapad-laptop.c文件全解析10

接前一篇文章《Linux内核中ideapad-laptop.c文件全解析9》&#xff0c;地址为&#xff1a; Linux内核中ideapad-laptop.c文件全解析9_蓝天居士的博客-CSDN博客 本文针对于上一篇文章提到的配置选项"CONFIG_LEDS_BRIGHTNESS_HW_CHANGED"进行详细分析。在make menuco…

python -- PyQt5(designer)中文详细教程(五)对话框

对话框 对话框是⼀个现代GUI应用不可或缺的⼀部分。对话是两个人之间的交流&#xff0c;对话框就是⼈与电脑之 间的对话。对话框用来输⼊数据&#xff0c;修改数据&#xff0c;修改应用设置等等。 输入文字 QInputDialog 提供了⼀个简单方便的对话框&#xff0c;可以输入字符…

SpringBoot 玩一玩代码混淆,防止反编译代码泄露!

编译 简单就是把代码跑一哈&#xff0c;然后我们的代码 .java文件 就被编译成了 .class 文件 反编译 就是针对编译生成的 jar/war 包 里面的 .class 文件 逆向还原回来&#xff0c;可以看到你的代码写的啥。 比较常用的反编译工具 JD-GUI &#xff0c;直接把编译好的jar丢进…

深度学习 LSTM长短期记忆网络原理与Pytorch手写数字识别

深度学习 LSTM长短期记忆网络原理与Pytorch手写数字识别一、前言二、网络结构二、可解释性三、记忆主线四、遗忘门五、输入门六、输出门七、手写数字识别实战7.1 引入依赖库7.2 加载数据7.3 迭代训练7.4 数据验证八、参考资料一、前言 基本的RNN存在梯度消失和梯度爆炸问题&am…

毕业设计-基于机器视觉的深蹲检测识别-TensorFlow-opencv

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…