热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关系抽取模型SpERT模型

关系抽取模型----SpERT模型SpERT模型是联合式抽取模

关系抽取模型----SpERT模型

SpERT模型是联合式抽取模型,同时抽取实体和关系。SpERT模型采用分类的思想实现联合抽取,实体抽取和关系抽取模型均为分类模型。SpERT模型是Span-based Joint Entity and Relation Extraction with Transformer Pre-training(2020)提出的,代码地址,SpERT模型
(1) 实体抽取和关系抽取均采用分类的思想
(2) 采用穷近的思想预测给定文本中所有可能的文本片段所属的实体类型
(3) 关系抽取依赖于出抽取出的实体,预测抽取实体的所有组合的关系类型
(4) 进行关系抽取会可考虑实体间的文本特征信息

模型结构

SpERT的模型采用bert 作为embedding,预测实体类型,选取实体类型为非None的实体进行关系分类,结构如下图:
spert模型
(1)实体分类,这里对实体进行分类,是一个softmax,但是考虑了实体的头尾,实体分类模型得到的是实体的类别和实体span,也就是文本中的那些字段是实体,模型的输入文本tokenizer, 实体span,实体mask,实体size等
(2)对实体进行过滤span filter,对实体模型的结果进行过滤,保留有实体,根据保留的实体构建关系负样本,
(3)关系分类,输入是实体,实体间连续文本特征max-pooling,实体宽度矩阵,经过一个线性层,得到关系分类的结果
注意:实体分类采用的是softmax,关系分类采用的是sigmoid

span classification

  • span’s BERT embeddings
    在这里插入图片描述
  • BERT/width embeddings
    在这里插入图片描述
    其中c是是bert embedding中CLS向量,即这个句子的句向量。
  • entity classification
    在这里插入图片描述

span filtering

过滤实体类型为None的实体

Relation classification

-特征表示
在这里插入图片描述
-关系分类
在这里插入图片描述
其中?(?_1 ),?(?_2)表示BERT/width embeddings,?为实体间max-pooling的BERT embeddings

Loss计算

关系分类的loss和实体分类的loss和为整个模型的loss
在这里插入图片描述
其中ℒ^?为cross entropy ,ℒ^?为binary cross entropy。

模型数据构建说明

span classification数据说明

实体分类模型中加入了负样本,提高模型的鲁棒性。

  • 数据candidate span 实体构建方式
    (1)正例:数据中的实体数据
    (2)反例:在句子中选取所有长度小于实体最大span长度的文本片段作为实体反例,实体类型为None。
    例如:古往今来,能饰演古龙小说人物“楚留香”的,无一不是娱乐圈公认的美男子,2011年,36岁的张智尧在《楚留香新传》里饰演楚留香,依旧帅得让人无法自拔。假设实体最大span长度为5,
    实体正例为(张智尧,人物,45,47),(楚留香新传, 影视作品,50,54),(楚留香,人物,15,17)
    实例反例为:(古,None,0,0),(今,None,1,1)…
    (古往,None,0,1)(往今,None,1,2)(今来,None,2,3)…

    (古往今来,None,0,4) (往今来,能,None,1,5)…
    随机选取实体的反例数量为100
    注意:反例实体数据中不包含真正的实体数据
  • relation classification数据说明
    (1)正例数据集:正例数据为训练集中的实体关系数据
    (2)反例数据:采用正例中的关系subject和关系object两两配对构建关系类型为None的数据。
    例如:古往今来,能饰演古龙小说人物“楚留香”的,无一不是娱乐圈公认的美男子,2011年,36岁的张智尧在《楚留香新传》里饰演楚留香,依旧帅得让人无法自拔。
    正例数据关系三元组:(楚留香新传,主演,张智尧),(张智尧,饰演,楚留香)
    反例数据关系三元组:(楚留香新传,None,楚留香)
    注意:关系反例中的subject和object不能相同,且关系三元组中的subject和object与正例不能相同,关系反例的数量为100

实验结果

在百度2020关系抽取数据集上,SpERT的模型的结果如下:

precision = 57.09, recall = 80.67, f1_score = 66.86

测试集上的举例结果如下:

{
"text": "《吸血鬼偶像》是李根旭指导的一部情景喜剧,集结了洪宗玄、金宇彬等众多年轻偶像,并由搞笑明星申东烨和实力演员金秀美参演配角,讲述了一个吸血鬼星球傻乎乎的王子和他的护卫们来到地球上,为了成为明星而孤军奋斗的故事",
"entity": [
{
"type": "影视作品",
"start_index": 1,
"name": "吸血鬼偶像"
},
{
"type": "人物",
"start_index": 8,
"name": "李根旭"
},
{
"type": "人物",
"start_index": 24,
"name": "洪宗玄"
},
{
"type": "人物",
"start_index": 28,
"name": "金宇彬"
},
{
"type": "人物",
"start_index": 45,
"name": "申东烨"
},
{
"type": "人物",
"start_index": 53,
"name": "金秀美"
}
],
"relation": [
{
"subject": "吸血鬼偶像",
"predicate": "导演",
"object": "李根旭"
},
{
"subject": "吸血鬼偶像",
"predicate": "主演",
"object": "洪宗玄"
},
{
"subject": "吸血鬼偶像",
"predicate": "主演",
"object": "金宇彬"
},
{
"subject": "吸血鬼偶像",
"predicate": "主演",
"object": "申东烨"
},
{
"subject": "吸血鬼偶像",
"predicate": "主演",
"object": "金秀美"
}
]
},
{
"text": "蒋明杭州杭氧股份有限公司董事长他一直主张杭氧要走自主创新的道路,把核心技术、关键技术牢牢掌握在自己手中",
"entity": [
{
"type": "人物",
"start_index": 0,
"name": "蒋明"
},
{
"type": "企业",
"start_index": 2,
"name": "杭州杭氧股份有限公司"
}
],
"relation": [
{
"subject": "杭州杭氧股份有限公司",
"predicate": "董事长",
"object": "蒋明"
}
]
}

总结

SpERT模型采用分类思想实现实体和关系抽取,其中使用了max-pooling特征,SpERT模型可以抽取出span 长度内所有可能的实体和关系。


推荐阅读
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 如何处理PHP缺少扩展的问题
    本文将详细介绍如何解决PHP环境中缺少扩展的问题,包括检查当前环境、修改配置文件以及验证修改是否生效的具体步骤,帮助开发者更好地管理和使用PHP扩展。 ... [详细]
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • Leetcode学习成长记:天池leetcode基础训练营Task01数组
    前言这是本人第一次参加由Datawhale举办的组队学习活动,这个活动每月一次,之前也一直关注,但未亲身参与过,这次看到活动 ... [详细]
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • 机器学习(ML)三之多层感知机
    深度学习主要关注多层模型,现在以多层感知机(multilayerperceptron,MLP)为例,介绍多层神经网络的概念。隐藏层多层感知机在单层神经网络的基础上引入了一到多个隐藏 ... [详细]
  • DirectShow Filter 开发指南
    本文总结了 DirectShow Filter 的开发经验,重点介绍了 Source Filter、In-Place Transform Filter 和 Render Filter 的实现方法。通过使用 DirectShow 提供的类,可以简化 Filter 的开发过程。 ... [详细]
  • 说明Python教程正在编写中,欢迎大家加微信sinbam提供意见、建议、纠错、催更。drymail是一个邮件发送库,封装了Python的smtplib ... [详细]
  • CSS 百分比单位的取值依据是什么
    本文详细探讨了 CSS 中百分比单位的取值依据,包括不同定位方式下的包含块概念及其应用。通过具体的示例和代码,帮助读者更好地理解和掌握这一知识点。 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • 使用方法:将要控制的角色拖到TargetBody,将相机的焦点拖到CamerPivot,,建议CameraPivot是一个放在TargetBody下的子物体,并且位置应该是在Tar ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • 使用jqTransform插件美化表单
    jqTransform 是由 DFC Engineering 开发的一款 jQuery 插件,专用于美化表单元素,操作简便,能够美化包括输入框、单选按钮、多行文本域、下拉选择框和复选框在内的所有表单元素。 ... [详细]
author-avatar
我叫yyson_836
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有