nlp系列(7)三元组识别(Bi-LSTM+CRF)pytorch

模型介绍

在实体识别中:使用了Bert模型,CRF模型

在关系识别中:使用了Bert模型的输出与实体掩码,进行一系列变化,得到关系

Bert模型介绍可以查看这篇文章:nlp系列(2)文本分类(Bert)pytorch_bert文本分类_牧子川的博客-CSDN博客

CRF模型介绍可以查看这篇文章:

nlp系列(6)文本实体识别(Bi-LSTM+CRF)pytorch_牧子川的博客-CSDN博客

模型结构

画了一个简易图

数据介绍

数据网址:https://github.com/buppt//raw/master/data/people-relation/train.txthttps://github.com/buppt//raw/master/data/people-relation/train.txt

实体1 实体2 关系 文本

模型准备

将处理的数据通过bert模型计算得到两个实体的权重,然后送入到CRF模型计算两个实体损失,然后借鉴Bert模型的掩码,将bert的输出与实体掩码及其计算,得到关系的损失,将两个损失相加,得到模型的总损失。

python 复制代码
    def compute_loss(self, input_ids, attention_mask, tag_ids, sub_mask, obj_mask, labels, real_lengths):
        hidden_output, pooled_output = self.get_features(input_ids, attention_mask)
        feats = self.hidden2tag(hidden_output)
        total_scores = self.get_total_scores(feats, real_lengths)
        gold_score = self.get_golden_scores(feats, tag_ids, real_lengths)
        ner_loss = torch.mean(total_scores - gold_score)
        relation_logits = self.get_relation_logit(pooled_output, hidden_output, sub_mask, obj_mask)
        relation_loss = self.criterion(relation_logits, labels)
        return ner_loss + relation_loss

模型预测

复制代码
文本:
除演艺事业外,李冰冰热心公益,发起并亲自参与多项环保慈善活动,积极投身其中,身体力行担起了回馈社会的责任于02年出演《少年包青天》,进入大家视线
预测结果:
少年包青天 - 主演 - 李冰冰
=========================================
文本:
马志舟,1907年出生,陕西三原人,汉族,中国共产党,任红四团第一连连长,1933年逝世
预测结果:
马志舟 - 国籍 - 中国
马志舟 - 出生日期 - 1907年
马志舟 - 民族 - 汉族
马志舟 - 出生地 - 陕西三原 

源码获取

Bert+CRF 三元组识别https://github.com/mzc421/Pytorch-NLP/tree/master/11-Bert%2BCRF%20%E4%B8%89%E5%85%83%E7%BB%84%E8%AF%86%E5%88%AB硬性的标准其实限制不了无限可能的我们,所以啊!少年们加油吧!

相关推荐
AI-智能6 小时前
别啃文档了!3 分钟带小白跑完 Dify 全链路:从 0 到第一个 AI 工作流
人工智能·python·自然语言处理·llm·embedding·agent·rag
操练起来12 小时前
【昇腾CANN训练营·第八期】Ascend C生态兼容:基于PyTorch Adapter的自定义算子注册与自动微分实现
人工智能·pytorch·acl·昇腾·cann
青云交16 小时前
Java 大视界 -- Java 大数据机器学习模型在电商评论情感分析与产品口碑优化中的应用
机器学习·自然语言处理·lstm·情感分析·java 大数据·电商评论·产品口碑
鼎道开发者联盟19 小时前
智能原生操作系统畅想:人智共生新时代的基石
人工智能·机器学习·自然语言处理
撸码猿2 天前
《Python AI入门》第9章 让机器读懂文字——NLP基础与情感分析实战
人工智能·python·自然语言处理
喜欢吃豆2 天前
使用 OpenAI Responses API 构建生产级应用的终极指南—— 状态、流式、异步与文件处理
网络·人工智能·自然语言处理·大模型
DatGuy2 天前
Week 26: 深度学习补遗:LSTM 原理与代码复现
人工智能·深度学习·lstm
阿龙AI日记2 天前
详解Transformer04:Decoder的结构
人工智能·深度学习·自然语言处理
木头左2 天前
缺失值插补策略比较线性回归vs.相邻填充在LSTM输入层的性能差异分析
算法·线性回归·lstm
ModestCoder_2 天前
ROS Bag与导航数据集技术指南
开发语言·人工智能·自然语言处理·机器人·具身智能