基于bert预训练后处理任务,根据intent做文本分类和slot做实体识别任务的简要总结

本文详细介绍了如何使用BERT模型进行意图识别和槽位填充任务。首先,数据预处理包括分词、标注编码;接着,通过BERT将文本转换为数字输入;然后,构建并微调预训练模型,记录多个epoch的loss;最后,利用验证集评估模型性能。在实现过程中,遇到的问题包括特定参数的理解和优化器配置。虽然序列标注任务已完成初步运行,但尚待深入研究。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基于bert的分类任务识别intent

01 数据包含一段话和这段话所包含的intent+entity,然后从中识别出标注的intent+entity

  (1)处理数据部分,将文本数据切分为token列表。

  (2)将intent+entity构成的列表数据,然后为对应位置数字

  (3)将token根据bert模型,将文本形式转化为数字

  (4)将数据输入构建好的基于bert的预训练模型,并对结果进行finetinue,得到loss

          (5) 设置500epochs,每100epoch记录一次loss,然后用验证的数据,预测loss和对应的f1,presion,recall指标值。并将每一次最优的模型记录。

02 遇到的问题:

          (1) 对于  self.tokenizer.convert_tokens_to_ids(words)、self.bert.config.hidden_size这类型的参数还是比较不了解。

          (2)对于代码部分,这部分代码还没有弄懂是什么意思。

no_decay = ["bias", "LayerNorm.weight"]
        optimizer_grouped_parameters = [
            {
                "params": [
                    p
                    for n, p in model.named_parameters()
                    if not any(nd in n for nd in no_decay) and p.requires_grad
                ],
                "weight_decay": config["model"]["weight_decay"],
            },
            {
                "params": [
                    p
                    for n, p in model.named_parameters()
                    if any(nd in n for nd in no_decay) and p.requires_grad
                ],
                "weight_decay": 0.0,
            },
        ]
        optimizer = AdamW(
            optimizer_grouped_parameters,
            lr=config["model"]["learning_rate"],
            eps=config["model"]["adam_epsilon"],
        )
        scheduler = get_linear_schedule_with_warmup(
            optimizer,
            num_warmup_steps=config["model"]["warmup_steps"],
            num_training_steps=config["model"]["max_step"],
        )

 (3)writer = SummaryWriter(log_dir)这个还没有弄懂是什么意思

         二、基于bert的序列标注任务识别slot

  这一部分,因为时间原因,只是跑通了代码。还没有时间看更多的细节。后续做为补充。

  

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值