Bert:
BERT是一种预训练语言表示的方法,这意味着我们在大型文本语料库(例如Wikipedia)上训练通用的“语言理解”模型,然后将该模型用于我们关心的下游NLP任务,BERT优于之前的方法,因为它是第一个用于预训练NLP的无监督,深度双向系统。
相关论文:
《Attention Is All You Need》
《BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding》
之后可能会出一篇详解bert原理的文章。
一、环境搭建:
Tensorflow>=1.11.0 我使用的1.12.0
Python 3.6.8
使用GPU训练(官网说显存要求大于12g)
服务器:1080Ti 32G
二、下载模型:
下载bert:https://github.com/google-research/bert
下载bert预训练模型:https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip
三、数据准备:
将你的语料分成3个文件,分别为train.csv,test.csv,dev.csv三个(我使用的是csv文件,它与tsv区别就是分隔符号的不同,我直接将csv的分隔符‘,’转成‘\t’),放入新建data文件夹下。
具体操作:
我的语料来自于情感分析比赛的,是判断新闻标题情感积极消极还是中性,首先使用pandas对语料进行处理,最终处理成“label+content”的格式。如图所示:
将语料分割成三个文件:我分割的比例是8:1:1,可以按照自己的比例进行分割。
#!/usr/bin/env python
import os
import pandas as p