一个基于Bert的情感分类

本文介绍了作者在DataFountain的“疫情期间网民情绪识别”挑战赛中,利用Bert进行情感分类的实战经验。通过数据预处理、Bert模型的简述与使用、训练过程的详细步骤,展示了Bert模型在情感分析任务中的优势,并讨论了模型的优化和提升空间。
摘要由CSDN通过智能技术生成

1. 问题描述

        题目来自于DataFountain上的“疫情期间网民情绪识别”的挑战赛,最终AUC达到了0.734,取得Top5%的成绩。主要内容是分析疫情期间的用户微博极性(分为消极:-1、中性:0、积极:1三种)。本文主要是对数据进行一定分析并做一个以该数据为基础的bert实战记录。

2. 数据分析

2.1 数据来源

疫情期间网民情绪识别-DataFountain。

    1. 训练集:包括微博id等7个列,数据量为10w行。

 2. 测试集:除情感倾向为空外的6个列,数据量为1w行。

2.2 数据预处理

        对训练集做了一些分析,首先是用户“情感倾向”,发现存在一些-1、0、1之外的其他噪声数据,并进行了消除。同时发现用户数据还具有一定的不平衡性,中性数据较多,如果判别标准是正确率的话,平衡影响并不大,但如果使用F1,就需要一定的trick作为修正,该赛题就是以F1作为评测标准的。

train_df['情感倾向'].value_counts().plot.bar()
plt.title('sentiment(target)')
# Text(0.5, 1.0, 'sentiment(target)')

        用户情感变化与时间关系:在这里我们发现在40天左右(大约2月6日,这里将年月日改成了天数做分析)网民情绪最激烈

        最后对用户的文本做分析,判断文本长度,这对于后面bert使用的文本截断有很重要的参考作用;发现这里文本长度普遍小于150字。

sns.kdeplot(train_df['weibo_len'])

3. Bert简述与使用

        尝试了SVM,TextCNN,LSTM以及最后的Bert,XLnet等,明显发现Bert等做情感分类的训练效果要更好。使用Bert模型做训练,实际是一种微调,因为Bert将任务分为了上游任务预训练(训练出一个中文或者英文模型),和下游任务微调,对训练出来的模型匹配自己的场景做微调,实际上,上游段一般不需要我们考虑,已经有很多优秀的公司做了中文的文库及Bert,Xlnet等模型的预训练。推荐两个预训练模型库:
Xlnet预训练模型
Bert及相关预训练模型
        对于里面的模型,可以转存到Google Drive(Google Drive拥有比较丰富的GPU,例如P100,T4,P4等,且几乎完全免费)。对于模型使用,进入上述两个网站,点击下面图片的红框部分,就可以轻松上传到Google Drive中。

4. Bert训练过程

        对于Bert等预训练模型,加载他们的模型库在github也有明确写道“依托于Huggingface-Transformers 2.2.2,可轻松调用以上模型”。所以想使用这些预

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值