热门标签 | 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 长度内所有可能的实体和关系。


推荐阅读
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 优化ASM字节码操作:简化类转换与移除冗余指令
    本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • Unity编辑器插件:NGUI资源引用检测工具
    本文介绍了一款基于NGUI的资源引用检测工具,该工具能够帮助开发者快速查找和管理项目中的资源引用。其功能涵盖Atlas/Sprite、字库、UITexture及组件的引用检测,并提供了替换和修复功能。文末提供源码下载链接。 ... [详细]
  • 本文将详细探讨 Java 中提供的不可变集合(如 `Collections.unmodifiableXXX`)和同步集合(如 `Collections.synchronizedXXX`)的实现原理及使用方法,帮助开发者更好地理解和应用这些工具。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • Yii 实现阿里云短信发送 ... [详细]
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社区 版权所有