Modelo de Análisis de Sentimientos – Fine-Tuning de XLM-RoBERTa-Large (TASS / CR-TASS)
Este repositorio contiene el modelo ajustado (fine-tuned) basado en XLM-RoBERTa-Large, entrenado para la tarea de clasificación de sentimientos en español usando el dataset académico CR-TASS (tweets etiquetados como Positivo – P, Negativo – N, Neutro – NEU).
El objetivo de este trabajo fue realizar un fine-tuning exhaustivo de un modelo multilingüe de gran tamaño para clasificación secuencial y evaluar su comportamiento bajo diferentes configuraciones de batch size.
Model Details
Modelo base: xlm-roberta-large
Tarea: Clasificación de sentimientos en español
Etiquetas:
0→ NEUTRO1→ POSITIVO2→ NEGATIVO
Model Description
Este modelo fue ajustado a partir de XLM-RoBERTa-Large, un LLM masivo entrenado sobre 100+ idiomas.
Se utilizó para fines académicos dentro del curso de PLN, con el objetivo de comparar desempeño según el batch size durante el entrenamiento.
Objetivo: Predecir el sentimiento general de un tweet en español (positivo, negativo o neutro).
El modelo utiliza la arquitectura original de xlm-roberta-large, agregando una capa clasificadora densa entrenada desde cero.
Model Sources
Modelo base: https://huggingface.co/xlm-roberta-large Curso: Análisis y Procesamiento de Lenguaje Natural — Universidad del Valle, 2025
El dataset utilizado corresponde a la versión CR-TASS, que contiene tweets pre-etiquetados para tareas de análisis de sentimientos.
Columnas:
| columna | descripción |
|---|---|
id |
identificador del tweet |
sentencia_original |
contenido del tweet |
label |
P, N o NEU |
label_id |
0 = NEU, 1 = P, 2 = N |
Uses
Direct Use
Clasificar el sentimiento de un tweet corto en español. Uso académico para análisis comparativo de performance con distintos batch_size.
Downstream Use
Entrenamiento adicional en dominios más específicos (servicio al cliente, política, reseñas). Integración con pipelines de moderación de comunidad o análisis reputacional.
Out-of-Scope Use
No recomendado para: textos largos, análisis profesional de emociones complejas, decisiones críticas (riesgo crediticio, justicia, selección laboral, etc.).
Bias, Risks, and Limitations
El dataset TASS contiene lenguaje informal → ruido, ironía, sarcasmo no detectados.
El modelo puede mostrar sesgo hacia clases frecuentes (especialmente negativo).
La precisión general del modelo es moderada (~0.39) debido a la naturaleza del dataset.
Recomendación: usar este modelo con precaución cuando el sentimiento influya en decisiones reales.
Training Details
Training Data
[More Information Needed]
Training Procedure
Preprocessing
Los datos fueron limpiados con el siguiente preprocesamiento:
- Eliminación de URLs
- Eliminación de menciones
@usuario - Eliminación de hashtags
- Eliminación de emoticones y caracteres especiales
- Conversión a minúsculas
Ejemplo del preprocesamiento utilizado:
def limpiar(texto):
texto = re.sub(r"http\S+", "", texto)
texto = re.sub(r"@\w+", "", texto)
texto = re.sub(r"#\w+", "", texto)
texto = re.sub(r"[^\w\sáéíóúüñ]", "", texto)
texto = texto.lower().strip()
return texto
#### Training Hyperparameters
Modelo: xlm-roberta-large
Épocas: 10
Batch sizes probados: 4, 8 y 16
Learning rate: 2e-5
Eval strategy: epoch
Save strategy: epoch
Optimización: AdamW
Accelerator: T4 GPU
## Evaluation
### Testing Data, Factors & Metrics
#### Testing Data
Subconjunto de validación del dataset TASS.
Etiquetas balanceadas: NEU, P, N.
#### Metrics
Se reportan: Accuracy, Precision, Recall, F1-score y Eval runtime
### Results
eval_accuracy: 0.3978840846366145
eval_precision: 0.13262802821220485
eval_recall: 0.3333333333333333
eval_f1: 0.1897554019962707
eval_loss: 1.088972806930542
#### Summary
Los tres modelos presentan accuracy ≈ 0.39, debido a la dificultad del dataset.
El batch size no generó mejoras significativas debido a:
ruido en los datos,
tamaño del dataset,
alta complejidad del modelo base.
El entrenamiento con batch size 16 solo llegó a 6 épocas por falta de memoria GPU.