目标
- 使用文本二分类的任务类型SST-2的微调脚本微调中文预训练模型, 判断句子的情感倾向
数据集介绍
sentence: 表示文本语句
label:数字1 表示好评 数字0 表示差评
训练数据集
sentence label
酒店有点旧,房间比较小,但酒店的位子不错,就在海边,可以直接去游泳。8楼的海景打开窗户就是海。如果想住在热闹的地带,这里不是一个很好的选择,不过威海城市真的比较小,打车还是相当便宜的。晚上酒店门口出租车比较少。 1
位置很好,走路到文庙、清凉寺5分钟都用不了,周边公交车很多很方便,就是出租车不太爱去(老城区路窄爱堵车),因为是老宾馆所以设施要陈旧些, 1
酒店设备一般,套房里卧室的不能上网,要到客厅去。 0
验证数据集
sentence label
是一家很实惠的酒店,交通方便,房间也宽敞,晚上没有电话骚扰,住了两次,有一次住501房间,洗澡间排水不畅通,也许是个别问题.服务质量很好,刚入住时没有调好宽带,服务员很快就帮忙解决了. 1
位置非常好,就在西街的街口,但是却闹中取静,环境很清新优雅。 1
房间应该超出30平米,是HK同级酒店中少有的大;重装之后,设备也不错. 1
运行微调脚本
export DATA_DIR='/root/data/cn_data'
export SAVE_DIR='./bert_cn_finetuning'
python3 run_glue.py \
--model_type BERT \
--model_name_or_path bert-base-chinese \
--task_name SST-2 \
--do_train \
--do_eval \
--data_dir $DATA_DIR/SST-2/ \
--max_seq_length 128 \
--learning_rate 2e-5 \
--num_train_epochs 1.0 \
--output_dir $SAVE_DIR \
--overwrite_output_dir
输出:
04/29/2020 19:08:39 - INFO - __main__ - ***** Eval results sst-2 *****
04/29/2020 19:08:39 - INFO - __main__ - acc = 0.881
04/29/2020 19:08:39 - INFO - __main__ - loss = 0.35931790455430745
使用transformers-cli上传模型
transformers-cli login
transformers-cli upload ./bert_cn_finetuning
使用上传的模型进行预测
import torch
source = 'huggingface/pytorch-transformers'
# 模型名字为'baihaisheng/bert_cn_finetuning'
model_name = 'baihaisheng/bert_cn_finetuning'
tokenizer=torch.hub.load(source,'tokenizer',model_name)
model=torch.hub.load(source,''modelForSequenceClassification',model_name)
def get_label(text):
text_index=tokenizer.encoder(text)
text_tensor=torch.tensor([text_index])
with torch.no_grad():
result_output=model(text_tensor)
output_label=torch.argmax(result__output[0]).item
return output_label
if __name__=='__main__':
text='酒店环境非常干净’
output_label=get_label(text)
print("输入文本{} 预测标签{}".format(text,output_label)
本文介绍了一种使用BERT预训练模型对中文文本进行情感分析的方法。通过微调BERT模型,实现了对中文句子情感倾向的准确判断,适用于酒店评论等场景。文章详细展示了微调脚本、模型训练过程及验证结果。
558

被折叠的 条评论
为什么被折叠?



