-
fine_tuning_data.zip 可直接用bert进行微调的中文情绪数据下载
资源介绍
具体使用方法可以看我的博客:https://blog.****.net/weixin_40015791/article/details/90410083
下面也会简单介绍一下:在bert开源代码中的run_classifier.py中找到
processors = {
"cola": ColaProcessor,
"mnli": MnliProcessor,
"mrpc": MrpcProcessor,
"xnli": XnliProcessor,
"intentdetection":IntentDetectionProcessor,
"emotion":EmotionProcessor, #新加上这一行
}
然后在该文件中增加一个class:
class EmotionProcessor(DataProcessor):
"""Processor for the MRPC data set (GLUE version)."""
def get_train_examples(self, data_dir):
"""See base class."""
return self._create_examples(
self._read_tsv(os.path.join(data_dir, "fine_tuning_train_data.tsv")), "train") #此处的名字和文件夹中的训练集的名字要保持一致
def get_dev_examples(self, data_dir):
"""See base class."""
return self._create_examples(
self._read_tsv(os.path.join(data_dir, "fine_tuning_val_data.tsv")), "dev")
def get_test_examples(self, data_dir):
"""See base class."""
return self._create_examples(
self._read_tsv(os.path.join(data_dir, "fine_tuning_test_data.tsv")), "test")
def get_labels(self):
"""See base class."""
return ["0", "1","2","3","4","5","6"] #七分类则从0到6
def _create_examples(self, lines, set_type):
"""Creates examples for the training and dev sets."""
examples = []
for (i, line) in enumerate(lines):
if i == 0:
continue
guid = "%s-%s" % (set_type, i)
if set_type == "test":
label = "0"
text_a = tokenization.convert_to_unicode(line[0])
else:
label = tokenization.convert_to_unicode(line[0])
text_a = tokenization.convert_to_unicode(line[1])
examples.append(
InputExample(guid=guid, text_a=text_a, text_b=None, label=label))
return examples
最后直接调用即可,运行的命令如下:
python run_classifier.py \
--task_name=emotion \
--do_train=true \
--do_eval=true \
--data_dir=data \ #把数据解压到同一级的文件夹中,此处是该文件夹名字data
--vocab_file=chinese_L-12_H-768_A-12/vocab.txt \ #中文数据要微调的原始bert模型
--bert_config_file=chinese_L-12_H-768_A-12/bert_config.json \
--init_checkpoint=chinese_L-12_H-768_A-12/bert_model.ckpt \
--max_seq_length=128 \
--train_batch_size=32 \
--learning_rate=2e-5 \
--num_train_epochs=3.0 \
--output_dir=output #生成文件所在的文件夹
大概9个小时,最后文件夹中会有三个文件 后缀分别为index/meta/00000-of-00001,分别将这个改成bert_model.ckpt.index/bert_model.ckpt.meta/bert_model.ckpt.data-00000-of-00001,再在同一个文件夹中放入chinese_L-12_H-768_A-12中的vocab.txt和bert_config.json 即最后该文件夹中有5个文件。然后像调用chinese_L-12_H-768_A-12一样将文件夹名改成自己的文件夹名即可。
bert-serving-start -model_dir output -num_worfer=3 即可调用微调后的语言通用模型。