问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于BERT和RoBERTa的情感分析系统:结果分析

创作时间:
作者:
@小白创作中心

基于BERT和RoBERTa的情感分析系统:结果分析

引用
CSDN
1.
https://blog.csdn.net/asd343442/article/details/139003441

本系列文章介绍了如何使用Tensorflow、BERT、RoBERTa和Sklearn构建情感分析系统。本文作为系列的最后一篇,将通过混淆矩阵和分类报告来评估BERT和RoBERTa在微博情感分类任务上的表现,并总结两个模型在不同情感类别上的准确性、召回率、F1分数等性能指标。

RoBERTa情感分类报告

通过下面的代码生成并打印输出BERT模型在测试集上的分类报告信息,包括了每个情感类别(Negative、Neutral、Positive)的精确度、召回率、F1分数等评估指标。

print('Classification Report for BERT:\n',classification_report(y_test,y_pred_bert, target_names=['Negative', 'Neutral', 'Positive']))

上述代码生成并打印出BERT模型在测试集上的分类报告,其中包含了每个情感类别(Negative、Neutral、Positive)的精确度、召回率、F1分数等评估指标。根据结果,BERT模型在各个情感类别上表现均衡,整体准确度较高。执行后会输出:

Classification Report for BERT:
               precision    recall  f1-score   support
    Negative       0.88      0.91      0.89      1629
     Neutral       0.89      0.75      0.82       614
    Positive       0.89      0.91      0.90      1544
   micro avg       0.89      0.89      0.89      3787
   macro avg       0.89      0.86      0.87      3787
weighted avg       0.89      0.89      0.88      3787
 samples avg       0.89      0.89      0.89      3787  

RoBERTa情感分类报告

下面的代码生成并打印出RoBERTa模型在测试集上的分类报告,其中包含了每个情感类别(Negative、Neutral、Positive)的精确度、召回率、F1分数等评估指标。

print('Classification Report for RoBERTa:\n',classification_report(y_test,y_pred_roberta, target_names=['Negative', 'Neutral', 'Positive']))

上述代码生成并打印出RoBERTa模型在测试集上的分类报告,其中包含了每个情感类别(Negative、Neutral、Positive)的精确度、召回率、F1分数等评估指标。根据结果,RoBERTa模型在Negative和Positive情感类别上表现良好,但在Neutral类别上的表现相对较差。执行后会输出:

Classification Report for RoBERTa:
               precision    recall  f1-score   support
    Negative       0.91      0.89      0.90      1629
     Neutral       0.74      0.84      0.78       614
    Positive       0.92      0.88      0.90      1544
   micro avg       0.88      0.88      0.88      3787
   macro avg       0.85      0.87      0.86      3787
weighted avg       0.88      0.88      0.88      3787
 samples avg       0.88      0.88      0.88      3787  

两种大模型性能的对比可视化

使用Seaborn库绘制了两个热力图,展示了BERT和RoBERTa两个模型在测试集上的混淆矩阵。

fig, ax = plt.subplots(1,2,figsize=(9,5.5))
labels = ['Negative', 'Neutral', 'Positive']
plt.suptitle('Sentiment Analysis Comparison\n Confusion Matrix', fontsize=20)
sns.heatmap(confusion_matrix(y_test.argmax(1),y_pred_bert.argmax(1)), annot=True, cmap="Blues", fmt='g', cbar=False, ax=ax[0], annot_kws={"size":25})
ax[0].set_title('BERT Classifier', fontsize=20)
ax[0].set_yticklabels(labels, fontsize=17);
ax[0].set_xticklabels(labels, fontsize=17);
ax[0].set_ylabel('Test', fontsize=20)
ax[0].set_xlabel('Predicted', fontsize=20)
sns.heatmap(confusion_matrix(y_test.argmax(1),y_pred_roberta.argmax(1)), annot=True, cmap="Blues", fmt='g', cbar=False, ax=ax[1], annot_kws={"size":25})
ax[1].set_title('RoBERTa Classifier', fontsize=20)
ax[1].set_yticklabels(labels, fontsize=17);
ax[1].set_xticklabels(labels, fontsize=17);
ax[1].set_ylabel('Test', fontsize=20)
ax[1].set_xlabel('Predicted', fontsize=20)
plt.show()  

执行后会绘制两种大模型的混淆矩阵对比可视化图,如图11-8所示。混淆矩阵是一种用于评估分类模型性能的可视化工具,显示了模型对每个类别的分类情况。其中,热力图中的颜色越深,表示模型在该类别上的表现越好。整个图表通过两个子图进行对比,分别展示了BERT和RoBERTa分类器的混淆矩阵。

图11-8 混淆矩阵对比图

这个可视化图展示了BERT和RoBERTa两个模型在情感分析任务上的优秀性能,分类的准确度达到了90%左右。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号