TPlinker解读

article/2025/8/15 6:58:14

参考:
关系抽取之TPLinker解读加源码分析
TPLinker 实体关系抽取代码解读
实体关系联合抽取:TPlinker
TPLinker中文注释版

Tagging

TPLinker模型需要对关系三元组(subject, relation, object)进行手动Tagging,过程分为三部分:
(1)entity head to entity tail (EH-TO-ET)
(2)subject head to object head (SH-to-OH)
(3)subject tail to object tail (ST-to-OT)
标记示例见下图,EH-TO-ET用紫色表示,SH-to-OH用红色表示,ST-to-OT用蓝色表示。

  • 其中紫色标签代表实体的头尾关系,红色标签代表 subject 和 object 两个实体的头部关系,蓝色标签代表 subject 和 object 两个实体的尾部关系,因为三种关系可能重叠,所以三种标签是存在于不同的矩阵,这里为了便于阐述,才放在一起。
  • 因为实体尾部不可能出现在头部之前,所以紫色标签是不可能出现在下三角区的,那么这样标就有点浪费资源,我们可以舍弃掉下三角区域;但是红标和蓝标可能出现在下三角区域,因此,我们可以把下三角区域的值映射到上三角,并标记为2
  • 标记方案如图:

模型框架

模型比较简单,整个句子过一遍 encoder,然后将 token 两两拼接输入到一个全连接层,再激活一下输出作为 token 对的向量表示,最后对 token 对进行分类即可。换句话说,这其实是一个较长序列的标注过程。

预测三元组

将模型对应的输出结果与输入的text进行匹配,解码出所需要的三元组。
通常先进行实体抽取得到字典D(key是实体头部,value是实体尾部)。
通过解码ST-to-OT关系得到有关系的两个实体的尾部,构建为字典E
通过解码SH-to-OH关系得到有关系的两个实体的头部,然后结合字典D,可以得到后续两个实体尾部。判断这两个实体尾部在不在字典E里面,如果在就是成功抽取了一条三元组。

训练数据的格式:

{"text": "In Queens , North Shore Towers , near the Nassau border , supplanted a golf course , and housing replaced a gravel quarry in Douglaston .", "id": "valid_0", "relation_list": 
[{"subject": "Douglaston", "object": "Queens", "subj_char_span": [125, 135], "obj_char_span": [3, 9], "predicate": "/location/neighborhood/neighborhood_of", "subj_tok_span": [26, 28], "obj_tok_span": [1, 2]}, {"subject": "Queens", "object": "Douglaston", "subj_char_span": [3, 9], "obj_char_span": [125, 135], "predicate": "/location/location/contains", "subj_tok_span": [1, 2], "obj_tok_span": [26, 28]}], "entity_list": 
[{"text": "Douglaston", 
"type": "DEFAULT", 
"char_span": [125, 135], 
"tok_span": [26, 28]}, 
{"text": "Queens", "type": "DEFAULT", "char_span": [3, 9], "tok_span": [1, 2]}, 
{"text": "Queens", "type": "DEFAULT", "char_span": [3, 9], "tok_span": [1, 2]}, 
{"text": "Douglaston", "type": "DEFAULT", "char_span": [125, 135], "tok_span": [26, 28]}]}

训练数据的最外层有4个主键:

  • “text”:输入数据的文本
  • “id”:输入数据的id
  • “relation_list”:输入数据文本当中存在的关系。
  • “entity_list”:输入数据文本当中存在的实体。

模型所需要的输入数据

  1. 其中作为输入的有:
  • batch_input_ids:是单词在词典中的编码
  • batch_attention_mask:指定对哪些词进行self - Attention操作
  • batch_token_type_ids:区分两个句子的编码(上句全为0,下句全为1)
  1. 其中作为模型输出的标签来辅助更新权重的有:
  • batch_ent_shaking_tag:token的【起始位置,尾部位置,实体标签】
  • batch_head_rel_shaking_tag:【关系类别,实体_1 头部,实体_2头部,关系标签a】
  • batch_tail_rel_shaking_tag:【关系类别,实体_1 尾部,实体_2尾部,关系标签b】

根据模型所需要输入的数据对训练数据进行一系列的处理。
调整训练时的参数去训练自己的数据。
调整输入输出为自己喜欢的样式。


http://chatgpt.dhexx.cn/article/txSU7DOK.shtml

相关文章

TP6中GatewayWorker的用法

一、参考网站 tp开发手册:https://www.kancloud.cn/manual/thinkphp6_0/1147857 workman与tp框架结合参考:http://doc2.workerman.net/work-with-other-frameworks.html 开发手册只介绍了Workman的使用方法,没有介绍GatewayWorker的使用方…

tp5框架Fastadmin中的Log日志如何去用

首先fastadmin是基于tp5的框架进行开发,在我们使用fastadmin写好接口后,接口在测试时没有任何问题,当前端进行访问时却无法进行交互,这是就可以使用tp5框架自带的Log日志; 下面就为大家介绍Log的使用: use think\Log; 在你使用的php文件下引入Log日志。 Log的使用方法: 一…

TP框架如何开启log日志

1.日志的处理工作是由系统自动进行的,在开启日志记录的情况下,会记录下允许的日志级别的所有日志信息。 其中,为了性能考虑,SQL日志级别必须在调试模式开启下有效,否则就不会记录。 系统的日志记录由核心的Think\Log类…

tplink路由器设置网址方法

tplink路由器设置网址的方法很多的用户都不知道,其实这个路由器可以通过两种方式来进行设置,十分的方便,如果你还没有完成设置不妨来试一试。 tplink路由器设置网址: 电脑: 1、首先打开浏览器,输入“192…

tp5日志

日志记录和跟踪调试。由于日志记录了所有的运行错误,因此养成经常查看日志文件的习惯,可以避免和及早发现很多的错误隐患。日志还有其他作用,用于输出一些不方便显示的调试的信息。 可以给多应用,或者前后端,分别配置…

TP Link 路由器 设置

入手某型号的TP LINK 路由器一台。希望做些定制化的设置。记录一下。 1,光猫拨号改为路由器拨号 光猫的型号是吉比特某款,其地址是192.168.1.1,此光猫没有无线。所接的路由器地址是192.168.2.1。 1,先将光猫的设置全部备份。2种…

TP5.1使用日志

日志我们在线上项目调试bug的利器,所以我们需要掌握 日志要记录的是错误信息,所以只需要将测试错误改为你需要获取的错误信息即可 1.引入think\Log这个类 2.打开log文件

TPLinker

# 笔记 1、长文本划分为短文本的时候,是以模型底层分词的个数来判断的 2、输入的X必须转换成id,输入的Y也必须转换成id,这样X输入得到的结果P才能和Y做比对,所有的模型都是围绕这个根基做转换,确认好X和Y,把…

渗透工具TPLogScan:ThinkPHP3和5日志扫描工具,提供命令行版和BurpSuite插件版,尽可能发掘网站日志信息

Git地址: r3change/TPLogScan: ThinkPHP全日志扫描工具,命令行版和BurpSuite插件版 (github.com) ThinkPHP3和5日志扫描工具,提供命令行版和BurpSuite插件版,尽可能发掘网站日志信息 命令行版 安装 git clone https://github.c…

Cadence virtuos617安装教程

Cadence virtuos安装教程 所有安装文件可在如下地址下载 链接:https://pan.baidu.com/s/1lZdRtzO1vTMHp7fmLHWGjQ?pwd=svwi 提取码:svwi下载的文件放到共享目录下。关于共享目录的设置可查看百度;并命名为Linux_space,文件名更改为Cadence.如下图 连接网络 安装虚拟机工…

Cadence 16.6安装配置教程

这里使用的是吴川斌的阿狸狗安装,傻瓜式安装,非常方便快捷 Cadence SPB 16.6安装包下载 阿狸狗下载 视频教程 双击打开阿狸狗 开始安装 其他安装

LinuxCadence学习

Linux&Cadence学习 常用指令 ls:列出当前目录下的文件ll -a:列出所有文件,包括隐藏文件ll:显示所有属性vi xxx:编辑文本;insert按键进行修改;esc退出修改;:wq!保存修改chmod 7…

014 Cadence Virtuoso 教程

安装 安利一下公众号:鱼与渔大学生服务,参考一下里面的安装教程 基本教程 参考下面这个大学的教程 http://ee.usc.edu/~redekopp/ee209/virtuoso/setup/USCVLSI-VirtuosoTutorial.pdf 设计流程 反相器实例演示 虚拟机安装后界面 新建个工作目录&…

国内计算机博士去百度云,于博士Cadence视频教程60集全套百度网盘分享

于博士Cadence视频教程60集全套百度网盘分享 于博士Cadence视频教程60集全套百度网盘分享,拿来主义,拿去主义,不谢~~~老吴就是看于博士Cadence视频教程入的门,虽然于博士录这些视频时用的是 Cadence SPB 15.7,但是其中…

linux cadence教程 pdf,cadence入门基础篇

班主任的cadence软件 Username:eda Password:123456z l 用Virtuoso Schematic Editor工具设计原理图 启动Cadence 设计软件 在linux系统下右键NewTerminal icfb & (icfb stands for Integrated Circuit Front to Back design,后缀&的作用:表示后台运行) 关掉“What…

Cadence教程4——环形振荡器

请移步简书看本文内容 http://www.jianshu.com/p/b3591d197887 本次教程主要讲array和bus的用法。 英文原文在这里。 原理图 仍然直接从inverter这个项目复制过来 新建一个cellview 放置我们之前设计的反相器,注意这里有几种方法来放置一个阵列: 直…

【Cadence16.6】安装教程

初识安装包文件 我们cadence16.6的安装包是这样的,详细请去https://www.fanyedu.com/index/mulitcourse/video.html?id1008#1008观看。 首先我们打开这个文件夹: 里面有5个压缩文件 我们全部解压在当前文件夹 点击setup.exe进行按安装 License Manager…

cadence软件安装教程

Go to Setup, start installation of the license manager use “License manager” button NOTE: When asked for License File Location, CANCEL that dialog. Install Cadence SPB 16.6 use “Product Installation” button. 2a Install Hotfixs Copy \Cadence\ folder …

cadence17.2安装教程

安装前先关闭杀毒软件和360卫士,注意安装路径不能有中文,安装包路径也不要有中文。 试装系统:win10 64bit 安装包路径和安装路径最好都不要出现中文,一般选择默认安装在C盘。 Cadence Allegro 17.2试用阿狸狗进行安装,…

Cadence教程2——反相器原理图仿真以及版图绘制

这一篇主要讲如何用cadence仿真一个简单的反相器,并画出版图的全部流程。工艺使用ncsu-free-cdk。 英文原文在此。 原理图绘制 首先建立library 新建原理图 放置元件,(快捷键为i) 再放置好pin,(快捷键为…