NER命名实体识别+bert的医疗实体及事件抽取

NER本质上是一个分类问题。利用bert对文本进行编码,对编码接入全连接或lstm+CRF,接入softmax即可得到每个类别的概率,最大概率对应的类别即为对应字的类别。
数据:病例本标签数据(数据在比赛https://www.biendata.com/competition/ccks_2020_2_1/)中,标签一共6类,分别为[‘药物’, ‘实验室检验’, ‘疾病和诊断’, ‘手术’, ‘影像检查’, ‘解剖部位’]。
本案例的代码是修改github上的项目而来:
https://github.com/ProHiryu/bert-chinese-ner

一、利用bert预训练模型对文本进行编码。

  1. bert模型下载
    bert模型构架:https://github.com/google-research/bert
    bert中文预训练模型:https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip
    下图是bert中文预训练模型的文件内容:
    中文预训练模型是参数的值
  2. bert模型的输入
    bert模型的输入是中文文本的字和对应的类别(因为中文的词量很多,所以分析字效果比较好)。类别利用BIO进行分析(也可以使用BIOS、BIOES等等,可以根据需要使用标注方法,也可以使用自定义的类别标注)。将B、I、O和实体类别进行组合,得到分类的类别种类,如下:
    在这里插入图片描述
    对病例本的训练文本进行整理标注,得到bert的输入数据示例如下:
    在这里插入图片描述
    3.bert模型的架构加载
import  bert import modeling
model = modeling.BertModel(
    config=bert_config,
    is_training=is_training,
    input_ids=input_ids,
    input_mask=input_mask,
    token_type_ids=segment_ids,
    use_one_hot_embeddings=use_one_hot_embeddings
    )
#取出bert模型中的序列数据
output_layer = model.get_sequence_output()

4、bert中文预训练模型的加载

tf.train.init_from_checkpoint(init_checkpoint, assignment_map)

二、分类层的接入

在bert模型中取出其中每一层的隐含层序列,组合后输入全连接层(或lstm+CRF层),经过softmax输出获得每一类的概率。

#对output_layer数据接入全连接层(或者lstm+CRF)
logits = tf.matmul(output_layer, output_weight, transpose_b=True)
logits = tf.nn.bias_add(logits, output_bias)
  • 2
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
### 回答1: BERT-NER-PyTorch是一个基于PyTorch深度学习框架的BERT命名实体识别NER)模型。BERT是一种在大规模未标记文本上训练的预训练模型,它可以用于各种自然语言处理任务。 BERT-NER-PyTorch利用已经使用大量标记数据进行预训练的BERT模型的表示能力,进行命名实体识别任务。命名实体识别是指从文本中识别特定实体,如人名、地名、组织、日期等。通过使用BERT-NER-PyTorch,我们可以利用预训练的BERT模型来提高命名实体识别的性能。 BERT-NER-PyTorch的实现基于PyTorch深度学习框架,PyTorch是一个用于构建神经网络的开源框架,具有易于使用、动态计算图和高度灵活的特点。通过在PyTorch环境下使用BERT-NER-PyTorch,我们可以灵活地进行模型训练、调整和部署。 使用BERT-NER-PyTorch,我们可以通过以下步骤进行命名实体识别: 1. 预处理:将文本数据转换为适合BERT模型输入的格式,例如分词、添加特殊标记等。 2. 模型构建:使用BERT-NER-PyTorch构建NER模型,该模型包括BERT预训练模型和适当的输出层。 3. 模型训练:使用标记的命名实体识别数据对NER模型进行训练,通过最小化损失函数来优化模型参数。 4. 模型评估:使用验证集或测试集评估训练得到的NER模型的性能,例如计算准确率、召回率和F1分数等指标。 5. 模型应用:使用训练好的NER模型对新的文本数据进行命名实体识别,识别出关键实体并提供相应的标签。 总之,BERT-NER-PyTorch是一个基于PyTorch的BERT命名实体识别模型,通过利用预训练的BERT模型的表示能力,在命名实体识别任务中提供了灵活、高效和准确的解决方案。 ### 回答2: bert-ner-pytorch是一个基于PyTorch框架的BERT命名实体识别模型。BERT是一种基于Transformer架构的预训练模型,在自然语言处理任务中取得了很好的效果。NER代表命名实体识别,是一项重要的自然语言处理任务,旨在从文本中识别和标注出特定类型的命名实体,如人名、地点、组织等。 bert-ner-pytorch利用预训练的BERT模型作为输入,结合神经网络模型进行命名实体识别。它通过将输入文本转化为BERT模型能够接受的格式,并在其上进行微调训练来提高NER的性能。具体来说,该模型首先使用BERT模型对文本进行编码,将文本中的每个单词转化为其对应的向量表示。然后,这些向量通过一层或多层的神经网络模型,以预测每个单词是否属于某个命名实体类别。 利用bert-ner-pytorch模型,我们可以将其应用于各种实际场景中,如信息抽取、问题回答、智能问答系统等。通过对输入文本进行命名实体识别,我们可以更好地理解文本中所包含的实体信息,从而为后续的处理与分析提供更多的潜在价值。 需要注意的是,bert-ner-pytorch模型是一个基础的NER模型,它需要根据具体的任务和数据进行进一步的训练和优化。同时,BERT模型本身也有一些限制,如较高的计算资源要求和模型大小。因此,在实际使用时,我们可能需要结合具体需求,对模型进行调整和优化,以适应不同的场景和数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值