NLP迁移学习-利用微调模型文本情感分析

本文介绍了一种使用BERT预训练模型对中文文本进行情感分析的方法。通过微调BERT模型,实现了对中文句子情感倾向的准确判断,适用于酒店评论等场景。文章详细展示了微调脚本、模型训练过程及验证结果。
目标
  • 使用文本二分类的任务类型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)
	
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值