作者:GjZero
标签:Bert, 中文分类, 句子向量
本文约1500字,建议阅读8分钟。
本文从实践入手,带领大家进行Bert的中文文本分类和作为句子向量进行使用的教程。
Bert介绍
Bert模型是Google在2018年10月发布的语言表示模型,Bert在NLP领域横扫了11项任务的最优结果,可以说是现今最近NLP中最重要的突破。Bert模型的全称是Bidirectional Encoder Representations from Transformers,是通过训练Masked Language Model和预测下一句任务得到的模型。关于Bert具体训练的细节和更多的原理,有兴趣的读者可以去看在[arXiv](https://arxiv.org/abs/1810.04805)上的原文。本篇文章从实践入手,带领大家进行Bert的中文文本分类和作为句子向量进行使用的教程。
对于文本分类任务,一个句子中的N个字符对应了E_1,…,E_N,这N个embedding。文本分类实际上是将BERT得到的T_1这一层连接上一个全连接层进行多分类。
准备工作
1. 下载bert
在命令行中输入
git clone
https://github.com/google-research/bert.git
2. 下载bert预训练模型
Google提供了多种预训练好的bert模型,有针对不同语言的和不同模型大小的。对于中文模型,我们使用[Bert-Base, Chinese](https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip)。为了下载该模型,可能需要使用梯子。如果需要下载其他的模型(英文以及其他语言),可以在[Bert](https://github.com/google-research/bert)里的Pre-trained models找到下载链接。
3.(可选项)
安装bert-as-service,这是一个可以利用bert模型将句子映射到固定长度向量的服务。
在命令行中输入
pip install bert-serving-server # server