BERT模型在NLP各项任务中大杀四方,那么我们如何使用这一利器来为我们日常的NLP任务来服务呢?我们首先介绍使用BERT做文本分类任务。
重写读取数据的类
需要根据文件格式重写读取数据的类,只要能够正常读取数据即可。以下代码将x文本记为不含标签训练数据,y文本记为标签数据。
class StatutesProcessor(DataProcessor):
def _read_txt_(self, data_dir, x_file_name, y_file_name):
# 定义我们的读取方式,我的工程中已经将x文本和y文本分别存入txt文件中,没有分隔符
# 用gfile读取,打开一个没有线程锁的的文件IO Wrapper
# 基本上和python原生的open是一样的,只是在某些方面更高效一点
with tf.gfile.Open(data_dir + x_file_name, 'r') as f:
lines_x = [x.strip() for x in f.readlines()]
with tf.gfile.Open(data_dir + y_file_name, 'r') as f:
lines_y = [x.strip() for x in f.readlines()]
return lines_x, lines_y
def get_train_examples(self, data_dir):
lines_x, lines_y = self._read_txt_(data_dir, 'train_x_no_seg.txt', 'train_y.txt')
examples = []
for (i, line) in en