SaBERT-Analisis-Sentimientos-Español

VerificadoProfesional
Clasificación de texto

Este clasificador de texto basado en BERT fue desarrollado como un proyecto de tesis para la carrera de Ingeniería en Computación en la Universidad de Buenos Aires (UBA). El modelo está diseñado para detectar sentimientos en español y fue ajustado finamente sobre el modelo dccuchile/bert-base-spanish-wwm-uncased utilizando un conjunto específico de hiperparámetros. Fue entrenado en un conjunto de datos que contiene 11,500 tweets en español recopilados de varias regiones, tanto positivos como negativos. Estos tweets fueron obtenidos de una combinación bien curada de conjuntos de datos de TASS.

Como usar

Instalación

Puedes instalar las dependencias necesarias usando pip:

pip install transformers torch

Cargando el Modelo

from transformers import BertForSequenceClassification, BertTokenizer
model = BertForSequenceClassification.from_pretrained('VerificadoProfesional/SaBERT-Spanish-Sentiment-Analysis')
tokenizer = BertTokenizer.from_pretrained('VerificadoProfesional/SaBERT-Spanish-Sentiment-Analysis')

Función de Predicción

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
        probabilidades = torch.softmax(logits, dim=1).squeeze().tolist()
        clase_predicha = torch.argmax(logits, dim=1).item()
        if probabilidades[clase_predicha] and clase_predicha == 1:
            clase_predicha = 0
        return bool(clase_predicha), probabilidades

Haciendo Predicciones

text = 'Tu noticia en español aquí'
predicted_label,probabilities = predict(model, tokenizer, text)
print(f'Texto: {text}')
print(f'Clase Predicha: {predicted_label}')
print(f'Probabilidades: {probabilities}')

Funcionalidades

Clasificación de texto
Transformers
Safetensors
Español
bert

Casos de uso

Detección de sentimientos en tweets en español
Análisis de sentimientos para estudios de mercado
Monitorización de opiniones en redes sociales