🚀 西班牙文情感分析分类器
本项目是一个基于BERT的文本分类器,用于检测西班牙文文本中的情感倾向。它在特定数据集上进行了微调,能够有效识别积极和消极情感。
🚀 快速开始
安装
你可以使用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}")
✨ 主要特性
- 该基于BERT的文本分类器是布宜诺斯艾利斯大学(UBA)计算机工程学位论文项目。
- 模型旨在检测西班牙文中的情感,并在 dccuchile/bert-base-spanish-wwm-uncased 模型上使用特定超参数进行了微调。
- 在包含来自不同地区的11,500条西班牙文推文的数据集上进行训练,这些推文有积极和消极两种情感,来源于精心策划的TASS数据集组合。
📦 安装指南
你可以使用以下命令安装所需依赖:
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}")
📚 详细文档
团队成员
模型详情
属性 |
详情 |
基础模型 |
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%
📄 许可证
致谢
特别感谢智利大学计算机科学系(DCC UChile)提供的基础西班牙文BERT模型,以及所有为训练所用数据集做出贡献的人员。