文章目录

  • 引言
  • 一、项目环境配置
  • 二、数据集介绍
  • 三、代码介绍
  • 四、测试结果
    • 1.代码执行流程
    • 2. 预测流程

  • 数据代码见:https://gitee.com/lj857335332/bert_finetune_cls

引言

  这一节学习BERT模型如何在句子分类任务上进行微调。项目代码框架如下:

争取做到每行代码有注释!!!

一、项目环境配置

  • python>=3.6
  • torch==1.6.0
  • transformers==3.0.2
  • seqeval==0.0.12
  • pytorch-crf==0.7.2

二、数据集介绍

Train Dev Test Intent Labels
ATIS 4,478 500 893 21
  • 标签的数量基于训练数据集
  • 对于仅在 dev 和 test数据集中显示的意图,为标签添加 UNK

  我们这一节使用atis数据,数据集由训练集、验证集、测试集组成

seq.in文件:每一行是一个文本

label文件:每一行一个意图标签

intent_label.txt文件:这个文件是由vocab_process.py文件生成的意图标签统计文件,一共22个,基于训练数据集标签文件的21个,再加上两个额外标签“UNK”

三、代码介绍

data_loader.py文件:这个文件的功能是将文本文件转化成InputExample类数据,并将输入样本转化为bert能够读取的InputFeatures类数据,最后保存至cache文件中,方便下次快速加载。
utils.py文件:封装了很多实用程序,方便统一调用
trainer.py文件:定义了任务的训练与评估以及保存模型与加载模型
main.py文件:用于模型的训练与评估
predict.py文件:用于模型的预测

四、测试结果

1.代码执行流程

  在命令行输入:

python bert_finetune_cls/main.py --data_dir bert_finetune_cls/data/ --task atis --model_type bert --model_dir bert_finetune_cls/experiments/outputs/clsbert_0 --do_train --do_eval --train_batch_size 8 --num_train_epochs 2  --linear_learning_rate 5e-4

测试结果为:

intent_acc = 0.888
loss = 0.4982787650078535

2. 预测流程

  在命令行输入

python bert_finetune_cls/predict.py --input_file bert_finetune_cls/data/atis/test/seq.in --output_file bert_finetune_cls/experiments/outputs/clsbert_0/atis_test_predicted.txt --model_dir bert_finetune_cls/experiments/outputs/clsbert_0

如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论或者私信!


BERT模型—5.BERT模型在句子分类任务(意图识别)上的微调相关推荐

  1. bert获得词向量_手把手教你完成句子分类,最好上手的BERT初级使用指南

    大数据文摘出品 来源:github 编译:LYLM.王转转.李雷.钱天培 过去几年里,机器学习语言处理模型的发展十分迅速,已经不再局限于实验阶段,而是可以应用于某些先进的电子产品中. 举个例子,最近谷 ...

  2. 使用bert模型做句子分类

    使用bert模型微调做下游任务,在goole发布的bert代码和huggingface的transformer项目中都有相应的任务,有的时候只需要把代码做简单的修改即可使用.发现代码很多,我尝试着自己 ...

  3. BERT模型—7.BERT模型在句子分类任务上的微调(对抗训练)

    文章目录 引言 二.项目环境配置 二.数据集介绍 三.代码介绍 四.测试 1.代码执行流程 数据代码见:https://gitee.com/lj857335332/bert_finetune_cls_ ...

  4. 自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 基于BERT模型微调实现句子分类

    自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 基于BERT模型微调实现句子分类 目录 基于BERT模型微调实现句子分类案例实战 Installing the H ...

  5. NLP之文本分类:「Tf-Idf、Word2Vec和BERT」三种模型比较

    英语原文:Text Classification with NLP: Tf-Idf vs Word2Vec vs BERT 翻译:雷锋字幕组(关山.wiige) 概要 在本文中,我将使用NLP和Pyt ...

  6. bert模型可以做文本主题识别吗_NLP之文本分类:「Tf-Idf、Word2Vec和BERT」三种模型比较...

    字幕组双语原文:NLP之文本分类:「Tf-Idf.Word2Vec和BERT」三种模型比较 英语原文:Text Classification with NLP: Tf-Idf vs Word2Vec ...

  7. 7个Bert变种模型baseline在7个文本分类数据集上训练和测试

    引入和代码项目简介 https://github.com/songyingxin/Bert-TextClassification 模型有哪些? 使用的模型有下面七个 BertOrigin, BertC ...

  8. word2vec模型评估_NLP之文本分类:「Tf-Idf、Word2Vec和BERT」三种模型比较

    字幕组双语原文:NLP之文本分类:「Tf-Idf.Word2Vec和BERT」三种模型比较 英语原文:Text Classification with NLP: Tf-Idf vs Word2Vec ...

  9. 5 分钟入门 Google 最强NLP模型:BERT

    BERT (Bidirectional Encoder Representations from Transformers) 10月11日,Google AI Language 发布了论文 BERT: ...

最新文章

  1. UAVStack的慢SQL数据库监控功能及其实现
  2. 设置VMware随系统开机自动启动并引导虚拟机操作系统
  3. 康奈尔大学王飞博士:AI处理医疗数据面临的8大挑战
  4. java实用教程——组件及事件处理——DocumentEvent事件
  5. Java求数组元素的最大和最小值
  6. TCP四种定时器--学习笔记
  7. QQ通讯录VS360通讯录对新建信息界面中草稿的处理
  8. 十步轻松搞定IIS+PHP环境搭建
  9. mysql 策略_MySQL 密码策略
  10. Android 6.0 扫描不到 Ble 设备需开启位置权限
  11. VS C++ 字符串分割 strtok
  12. 中国智能硬件调研报告
  13. 移动前端图片压缩上传
  14. 利用openpyxl在Excel文件中批量复制模板表格
  15. 交通灯系统设计 educoder实训项目 logisim实现
  16. 无锡学院----软件工程导论----李振宏知识点整理
  17. Centos7.5安装redis
  18. 关于实习、校招的科普
  19. 网络适配器不见了网络连接不见了的解决方法
  20. 手把手教你入门深度强化学习(附链接代码)

热门文章

  1. 理解java中的反射
  2. 输入一个1~9的数字n,求Sn = n + nn + nnn+ nnnn + nnnnn的值
  3. BZOJ 3159: 决战 解题报告
  4. Tablestore结合Spark的流批一体SQL实战
  5. PG-REINFORCE tensorflow 2.0
  6. 哪款苹果无线充电宝最好?苹果无线充电宝哪个牌子好
  7. 《卸甲笔记》-多表查询之二
  8. 轻松学会WiFi模块(ESP8266)—基于STM32,学到就是赚到!
  9. C语言-复制特定的字符串
  10. 读心术:从零知识证明中提取「知识」——探索零知识证明系列(三)