Update README.md
Browse files
README.md
CHANGED
|
@@ -1,3 +1,105 @@
|
|
| 1 |
-
---
|
| 2 |
-
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
language:
|
| 3 |
+
- es
|
| 4 |
+
license: mit
|
| 5 |
+
tags:
|
| 6 |
+
- text-classification
|
| 7 |
+
- sentiment-analysis
|
| 8 |
+
- reviews
|
| 9 |
+
- distilbert
|
| 10 |
+
- spanish
|
| 11 |
+
datasets:
|
| 12 |
+
- amazon_reviews_multi
|
| 13 |
+
metrics:
|
| 14 |
+
- accuracy
|
| 15 |
+
- f1
|
| 16 |
+
- precision
|
| 17 |
+
- recall
|
| 18 |
+
model-index:
|
| 19 |
+
- name: distilbert-review_classification
|
| 20 |
+
results:
|
| 21 |
+
- task:
|
| 22 |
+
type: text-classification
|
| 23 |
+
name: Clasificación de reseñas (5 clases)
|
| 24 |
+
dataset:
|
| 25 |
+
name: amazon_reviews_multi (español)
|
| 26 |
+
type: amazon_reviews_multi
|
| 27 |
+
metrics:
|
| 28 |
+
- type: accuracy
|
| 29 |
+
value: 0.5808
|
| 30 |
+
- type: f1
|
| 31 |
+
value: 0.58158
|
| 32 |
+
pipeline_tag: text-classification
|
| 33 |
+
widget:
|
| 34 |
+
- text: "Este producto es increíble, funciona perfectamente y el precio es excelente."
|
| 35 |
+
- text: "La calidad del producto deja mucho que desear y llegó con un retraso considerable."
|
| 36 |
+
---
|
| 37 |
+
|
| 38 |
+
# distilbert-review_classification
|
| 39 |
+
|
| 40 |
+
Este modelo es una variante de DistilBERT entrenada para la clasificación de reseñas de Amazon en español. Está basado en `distilbert-base-multilingual` y ha sido afinado para predecir calificaciones de estrellas (1-5) a partir del texto de la reseña.
|
| 41 |
+
|
| 42 |
+
## Modelo
|
| 43 |
+
|
| 44 |
+
**Arquitectura base:** DistilBERT (distilbert-base-multilingual)
|
| 45 |
+
**Tarea:** Clasificación de texto (5 clases)
|
| 46 |
+
**Idioma:** Español
|
| 47 |
+
**Caso de uso:** Análisis de sentimiento y clasificación de reseñas
|
| 48 |
+
|
| 49 |
+
## Rendimiento
|
| 50 |
+
|
| 51 |
+
El modelo fue evaluado en un conjunto de datos balanceado con 1000 muestras para cada clase (calificación de 1 a 5 estrellas):
|
| 52 |
+
|
| 53 |
+
| Métrica | Valor |
|
| 54 |
+
|---------|-------|
|
| 55 |
+
| Exactitud (Accuracy) | 0.5808 |
|
| 56 |
+
| F1 Score (macro promedio) | 0.58158 |
|
| 57 |
+
| Precisión (macro promedio) | 0.58303 |
|
| 58 |
+
| Recall (macro promedio) | 0.5808 |
|
| 59 |
+
|
| 60 |
+
### Rendimiento por clase
|
| 61 |
+
|
| 62 |
+
| Clase | Precisión | Recall | F1 Score | Soporte |
|
| 63 |
+
|-------|-----------|--------|----------|---------|
|
| 64 |
+
| 1 ⭐ | 0.72069 | 0.707 | 0.71378 | 1000 |
|
| 65 |
+
| 2 ⭐ | 0.50409 | 0.554 | 0.52787 | 1000 |
|
| 66 |
+
| 3 ⭐ | 0.48916 | 0.474 | 0.48146 | 1000 |
|
| 67 |
+
| 4 ⭐ | 0.51613 | 0.512 | 0.51406 | 1000 |
|
| 68 |
+
| 5 ⭐ | 0.68509 | 0.657 | 0.67075 | 1000 |
|
| 69 |
+
|
| 70 |
+
## Detalles de entrenamiento
|
| 71 |
+
|
| 72 |
+
* **Epochs:** 1
|
| 73 |
+
* **Pasos de entrenamiento:** 50,000
|
| 74 |
+
* **Tiempo de entrenamiento:** ~8.2 horas (29,486 segundos)
|
| 75 |
+
* **Loss final:** 0.9721
|
| 76 |
+
|
| 77 |
+
## Uso
|
| 78 |
+
|
| 79 |
+
```python
|
| 80 |
+
from transformers import AutoTokenizer, AutoModelForSequenceClassification
|
| 81 |
+
import torch
|
| 82 |
+
|
| 83 |
+
# Cargar modelo y tokenizer
|
| 84 |
+
tokenizer = AutoTokenizer.from_pretrained("polodealvarado/distilbert-review_classification")
|
| 85 |
+
model = AutoModelForSequenceClassification.from_pretrained("polodealvarado/distilbert-review_classification")
|
| 86 |
+
|
| 87 |
+
# Preparar el texto de entrada
|
| 88 |
+
texto = "Este producto superó mis expectativas, lo recomiendo totalmente."
|
| 89 |
+
inputs = tokenizer(texto, return_tensors="pt", padding=True, truncation=True, max_length=512)
|
| 90 |
+
|
| 91 |
+
# Realizar la predicción
|
| 92 |
+
with torch.no_grad():
|
| 93 |
+
outputs = model(**inputs)
|
| 94 |
+
logits = outputs.logits
|
| 95 |
+
predicted_class = torch.argmax(logits, dim=1).item()
|
| 96 |
+
|
| 97 |
+
# La clase predicha será un número del 0 al 4, que corresponde a 1-5 estrellas
|
| 98 |
+
estrellas_predichas = predicted_class + 1
|
| 99 |
+
print(f"Predicción: {estrellas_predichas} estrellas")
|
| 100 |
+
```
|
| 101 |
+
|
| 102 |
+
## Limitaciones
|
| 103 |
+
|
| 104 |
+
- El modelo fue entrenado con datos de reseñas de Amazon, por lo que puede tener un rendimiento reducido en otros dominios.
|
| 105 |
+
- El rendimiento es más alto para reseñas claramente positivas (5 estrellas) o c
|