赞
踩
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
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'
该服务要求tensorflow的最低版本为1.10。
作为中文文本分类问题,需要先将数据集整理成可用的形式。不同的格式对应了不同的DataProcessor类。可以将数据保存成如下格式:
game APEX是个新出的吃鸡游戏。
technology Google将要推出tensorflow2.0。
一行代表一个文本,由标签加上一个tab加上正文组成。
将文本分割为三个文件,train.tsv(训练集),dev.tsv(验证集),test.tsv(测试集);然后放置在同一个data_dir文件夹下。
在run_classifier.py中的**def main(_)?*函数中将processors的内容增加为
processors = {
"cola": ColaProcessor,
"mnli": MnliProcessor,
"mrpc": MrpcProcessor,
"xnli": XnliProcessor,
"mytask": MyTaskProcessor,
}
实现如下的MyTaskProcessor(DataProcessor)类&#x
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。