当前位置:   article > 正文

教程:使用Bert预训练模型文本分类_xnliprocessor

xnliprocessor

Bert介绍

Bert模型是Google在2018年10月发布的语言表示模型,Bert在NLP领域横扫了11项任务的最优结果,可以说是现今最近NLP中最重要的突破。Bert模型的全称是Bidirectional Encoder Representations from Transformers,是通过训练Masked Language Model和预测下一句任务得到的模型。关于Bert具体训练的细节和更多的原理,有兴趣的读者可以去看在arXiv上的原文。本篇文章从实践入手,带领大家进行Bert的中文文本分类和作为句子向量进行使用的教程。

准备工作

1.下载bert

git clone https://github.com/google-research/bert.git
  • 1

2.下载bert预训练模型

Google提供了多种预训练好的bert模型,有针对不同语言的和不同模型大小的。对于中文模型,我们使用Bert-Base, Chinese。为了下载该模型,可能需要使用梯子。如果需要下载其他的模型(英文以及其他语言),可以在Bert里的Pre-trained models找到下载链接。

3.(可选项)安装bert-as-service,这是一个可以利用bert模型将句子映射到固定长度向量的服务。

pip install bert-serving-server # server
pip install bert-serving-client # client, independent of 'bert-serving-server'
  • 1
  • 2

该服务要求tensorflow的最低版本为1.10。

准备数据

数据格式

作为中文文本分类问题,需要先将数据集整理成可用的形式。不同的格式对应了不同的DataProcessor类。可以将数据保存成如下格式:

game	APEX是个新出的吃鸡游戏。
technology	Google将要推出tensorflow2.0。
  • 1
  • 2

一行代表一个文本,由标签加上一个tab加上正文组成。

将文本分割为三个文件,train.tsv(训练集),dev.tsv(验证集),test.tsv(测试集);然后放置在同一个data_dir文件夹下。

编写DataProcessor类

run_classifier.py中的**def main(_)?*函数中将processors的内容增加为

processors = {
   
      "cola": ColaProcessor,
      "mnli": MnliProcessor,
      "mrpc": MrpcProcessor,
      "xnli": XnliProcessor,
      "mytask": MyTaskProcessor,
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

实现如下的MyTaskProcessor(DataProcessor)类&#x

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号