BERT微博评论情感分类可视化代码示例
时间: 2024-08-12 20:08:40 浏览: 120
基于bert-wmm的微博评论情感分析
5星 · 资源好评率100%
BERT(Bidirectional Encoder Representations from Transformers)是一种预训练的深度学习模型,常用于自然语言处理任务,如文本分类。在微博评论情感分类中,我们将使用BERT对评论进行编码,然后通过一个线性层或softmax分类器预测其情感极性。
以下是一个简单的Python代码示例,使用Hugging Face的Transformers库实现BERT微博情感分类可视化:
```python
```
```py
import torch
from transformers import BertTokenizer, BertForSequenceClassification
import matplotlib.pyplot as plt
# 加载预训练的中文BERT模型和tokenizer
model_name = "bert-base-chinese"
tokenizer = BertTokenizer.from_pretrained(model_name)
model = BertForSequenceClassification.from_pretrained(model_name, num_labels=2) # 二分类问题,标签通常为0(负面)和1(正面)
# 假设我们有预处理好的评论数据
comments = ["这个产品真的好差劲", "我很喜欢这个电影"]
inputs = tokenizer(comments, return_tensors="pt") # 将评论转为模型所需的格式
# 进行前向传播并获取预测结果
outputs = model(**inputs)
logits = outputs.logits
probs = torch.softmax(logits, dim=1) # 获取每个评论的情感概率
# 可视化预测结果
labels = ["负面", "正面"]
for i, comment in enumerate(comments):
pred_label = labels[torch.argmax(probs[i])]
prob = probs[i] if pred_label == "正面" else probs[i] # 获取正面情感的概率
plt.barh(i, prob, color='green' if pred_label == "正面" else 'red')
plt.text(prob + 0.02, i, f'{pred_label}: {prob.item():.2f}')
plt.text(0, i, f'评论: {comment}')
plt.yticks([i for i in range(len(comments))], comments)
plt.xlabel('概率')
plt.title('微博评论情感分类可视化')
plt.show()
```
阅读全文