|
---
|
|
license: mit
|
|
language: es
|
|
tags:
|
|
- text-classification
|
|
- spanish
|
|
- email-classification
|
|
- bert
|
|
- multilingual
|
|
datasets:
|
|
- custom
|
|
metrics:
|
|
- accuracy
|
|
- f1
|
|
model-index:
|
|
- name: vertigoq3/email-classifier-bert
|
|
results:
|
|
- task:
|
|
type: text-classification
|
|
name: Email Classification
|
|
dataset:
|
|
type: custom
|
|
name: Email Dataset
|
|
metrics:
|
|
- type: accuracy
|
|
value: 0.0
|
|
- type: f1
|
|
value: 0.0
|
|
---
|
|
|
|
# email-classifier-bert
|
|
|
|
Modelo BERT multilingüe fine-tuneado para clasificación de emails en español.
|
|
|
|
## Descripción
|
|
|
|
Este modelo está basado en `bert-base-multilingual-cased` y ha sido entrenado para clasificar emails en diferentes categorías. El modelo puede identificar automáticamente el tipo de email basándose en su contenido.
|
|
|
|
## Uso
|
|
|
|
```python
|
|
from transformers import AutoTokenizer, AutoModelForSequenceClassification
|
|
import torch
|
|
import numpy as np
|
|
import pickle
|
|
|
|
# Cargar el modelo y tokenizer
|
|
model = AutoModelForSequenceClassification.from_pretrained("vertigoq3/email-classifier-bert")
|
|
tokenizer = AutoTokenizer.from_pretrained("vertigoq3/email-classifier-bert")
|
|
|
|
# Cargar el encoder de etiquetas
|
|
with open("label_encoder.pkl", "rb") as f:
|
|
encoder = pickle.load(f)
|
|
|
|
def clasificar_email(texto):
|
|
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
|
model.to(device)
|
|
|
|
inputs = tokenizer(texto, return_tensors="pt", truncation=True, padding=True, max_length=512)
|
|
inputs = {k: v.to(device) for k, v in inputs.items()}
|
|
|
|
with torch.no_grad():
|
|
outputs = model(**inputs)
|
|
|
|
pred = np.argmax(outputs.logits.detach().cpu().numpy(), axis=1)
|
|
return encoder.inverse_transform(pred)[0]
|
|
|
|
# Ejemplo de uso
|
|
resultado = clasificar_email("¿Cuándo abren mañana?")
|
|
print(f"Categoría: {resultado}")
|
|
```
|
|
|
|
## Instalación
|
|
|
|
```bash
|
|
pip install transformers torch numpy scikit-learn
|
|
```
|
|
|
|
## Entrenamiento
|
|
|
|
El modelo fue entrenado con:
|
|
- **Base Model**: bert-base-multilingual-cased
|
|
- **Epochs**: 6
|
|
- **Learning Rate**: 2e-5
|
|
- **Batch Size**: 8
|
|
- **Weight Decay**: 0.01
|
|
|
|
## Limitaciones
|
|
|
|
- El modelo está optimizado para texto en español
|
|
- Requiere el archivo `label_encoder.pkl` para funcionar correctamente
|
|
- Las categorías de clasificación dependen del dataset de entrenamiento
|
|
|
|
## Contacto
|
|
|
|
Para preguntas o problemas, contacta al autor del modelo.
|
|
|