SaBERT-Spanish-Sentiment-Analysis 项目介绍
项目概述
SaBERT-Spanish-Sentiment-Analysis 是一个基于 BERT 的情感分析文本分类器项目。该模型是作为布宜诺斯艾利斯大学(Universidad de Buenos Aires, UBA)计算机工程学位论文项目而开发的,旨在分析西班牙语文本中的情感。模型在 dccuchile/bert-base-spanish-wwm-uncased 基础上进行了微调,使用了一组特定的超参。训练数据集由来自多个地区的11,500条西班牙语推文组成,其中包括积极和消极情感。所有推文都来自精心整理过的 TASS 数据集组合。
项目团队成员
模型细节
- 基础模型:dccuchile/bert-base-spanish-wwm-uncased
- 超参数:
- 随机失活率(dropout_rate)= 0.1
- 分类数(num_classes)= 2
- 最大文本长度(max_length)= 128
- 批次大小(batch_size)= 16
- 训练轮数(num_epochs)= 5
- 学习率(learning_rate)= 3e-5
- 数据集:11,500 条西班牙语推文(包含积极和消极情感)
评估指标
模型的性能通过以下指标进行评估:
- 准确率:86.47%
- F1-得分:86.47%
- 精确度:86.46%
- 召回率:86.51%
使用说明
安装
可以使用 pip 安装所需的依赖:
pip install transformers torch
模型加载
from transformers import BertForSequenceClassification, BertTokenizer
model = BertForSequenceClassification.from_pretrained("VerificadoProfesional/SaBERT-Spanish-Sentiment-Analysis")
tokenizer = BertTokenizer.from_pretrained("VerificadoProfesional/SaBERT-Spanish-Sentiment-Analysis")
预测函数
def predict(model, tokenizer, text, threshold=0.5):
inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True, max_length=128)
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
probabilities = torch.softmax(logits, dim=1).squeeze().tolist()
predicted_class = torch.argmax(logits, dim=1).item()
if probabilities[predicted_class] <= threshold and predicted_class == 1:
predicted_class = 0
return bool(predicted_class), probabilities
进行预测
text = "Your Spanish news text here"
predicted_label, probabilities = predict(model, tokenizer, text)
print(f"Text: {text}")
print(f"Predicted Class: {predicted_label}")
print(f"Probabilities: {probabilities}")
许可协议
- Apache License 2.0
- TASS 数据集许可
致谢
特别感谢 DCC UChile 提供的西班牙语 BERT 基础模型及所有为训练数据集做出贡献的人士。