paddleNLP信息抽取模型实战(实体识别,关系抽取)

命名实体识别

NER命名实体识别是识别句子中需要的实体,
标注工具使用brat
标注方式是BIO
训练框架选用paddleNLP

训练算法使用ernie
ERINE(Enhanced Representation through Knowledge Integration)是百度发布的一个预训练模型。它将BERT中单词级别的MASK拓展成三种级别的Knowledge Masking,从而让模型学习到更多语言知识,在多项任务实践效果上超越了BERT。
ERNIE将语言知识分成了三个类别:单词级别(Basic-Level)、短语级别(Phrase-Level) 和 实体级别(Entity-Level)。通过对这三个级别的对象进行Masking(遮挡),使模型能够学习到语言知识中的语法知识和语义知识。如假设训练句子为【长沙是湖南省的省会城市】,随机遮挡掉地名实体【长沙】,则模型能够在一定程度上学习到【长沙】与【湖南省】的关系,即模型能够学习到更多语义知识。

一 、具体步骤如下

(一)、加载自定义数据
1.训练数据每条包含一句文本和这个文本中每个汉字label标签。然后,还需要对输入句子进行数据处理,如切词,映射词表id等。
(二)、数据处理
1.预训练模型ERNIE对中文数据的处理是以字为单位。预训练模型已经内置了相应的tokenizer。指定想要使用的模型名字即可加载对应的tokenizer。
2.tokenizer作用为将原始输入文本转化成模型model可以接受的输入数据形式。
在这里插入图片描述
(三)模型训练与评估
模型训练的过程通常有以下步骤:

1.从dataloader中取出一个batch data
2.将batch data喂给model,做前向计算
3.将前向计算结果传给损失函数,计算loss。将前向计算结果传给评价方法,计算评价指标。
4.loss反向回传,更新梯度。重复以上步骤。
每训练一个epoch时,程序将会评估一次,评估当前模型训练的效果
(四)模型预测
训练保存好的模型,即可用于预测。调用predict()函数即可一键预测。
模型输出测试结果

信息抽取

信息抽取旨在从非结构化自然语言文本中提取结构化知识,如实体、关系、事件等。对于给定的自然语言句子,根据预先定义的schema集合,抽取出所有满足schema约束的SPO三元组。
未完待续。。。

猜你喜欢

转载自blog.csdn.net/dream_home8407/article/details/128231568
今日推荐