Text Classification
Transformers
Safetensors
Spanish
bert
machine-learning
educational-example
text-embeddings-inference
Instructions to use WalterWi/transformers_clas_texto with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use WalterWi/transformers_clas_texto with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="WalterWi/transformers_clas_texto")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("WalterWi/transformers_clas_texto") model = AutoModelForSequenceClassification.from_pretrained("WalterWi/transformers_clas_texto", device_map="auto") - Notebooks
- Google Colab
- Kaggle
|
Download README.md from WalterWi/transformers_clas_texto: direct link, hf CLI and curl.
- Browser
- Download file 4.48 kB
-
https://huggingface.co/WalterWi/transformers_clas_texto/resolve/main/README.md
- Command line
-
hf download hf://WalterWi/transformers_clas_texto/README.md
-
curl -L -o README.md https://huggingface.co/WalterWi/transformers_clas_texto/resolve/main/README.md
4.48 kB
| language: | |
| - es | |
| library_name: transformers | |
| pipeline_tag: text-classification | |
| tags: | |
| - machine-learning | |
| - text-classification | |
| - bert | |
| - educational-example | |
| license: mit | |
| # Clasificador de comentarios con Transformers: 驴positivo o negativo? | |
| ## Descripci贸n del modelo | |
| Este modelo es un ejemplo pedag贸gico del Seminario de Actualizaci贸n (IFTS N.潞 18). Muestra **todas las piezas** que se publican cuando se comparte un modelo de Hugging Face Transformers: la arquitectura, los pesos y el tokenizer. | |
| Clasifica comentarios cortos sobre departamentos como `positivo` o `negativo`. | |
| Es un BERT diminuto **entrenado desde cero** con un vocabulario propio y muy chico. En un caso real no se entrena desde cero: se hace *fine-tuning* de un modelo preentrenado del Hub. Igual, los archivos que se publican son los mismos. | |
| ## Objetivo | |
| Clasificar un texto en una de dos clases. Es un problema de clasificaci贸n binaria, como el de la Clase 11, pero con texto como entrada. | |
| ## Datos de entrenamiento | |
| - **Dataset:** sint茅tico, generado en `train.py` a partir de 5 plantillas de frases y 16 adjetivos (8 positivos y 8 negativos). | |
| - **Cantidad de registros:** 368 comentarios. Se usan 294 para entrenar y 74 para evaluar. | |
| - **Entrada (X):** el texto del comentario, por ejemplo "el departamento es muy luminoso". | |
| - **Salida (y):** la etiqueta, `negativo` (0) o `positivo` (1). | |
| ## Entrenamiento | |
| - **Tipo de aprendizaje:** supervisado. | |
| - **Problema:** clasificaci贸n de texto (binaria). | |
| - **Arquitectura:** `BertForSequenceClassification` con 2 capas, 2 cabezas de atenci贸n, dimensi贸n 32 y unos 20.500 par谩metros. | |
| - **Tokenizer:** a nivel palabra (`WordLevel`), con 37 tokens. Pasa todo a min煤sculas y saca las tildes. | |
| - **Funci贸n de p茅rdida:** entrop铆a cruzada. La calcula el modelo cuando recibe `labels`. | |
| - **Optimizador:** `AdamW`, con tasa de aprendizaje 0,001. | |
| - **脡pocas:** 15, en lotes de 16. | |
| - **Biblioteca:** Hugging Face Transformers, con PyTorch. | |
| ## Evaluaci贸n | |
| Se evalu贸 sobre 74 comentarios que el modelo no vio durante el entrenamiento. | |
| | M茅trica | Resultado | | |
| |---|---| | |
| | Accuracy | 1,000 | | |
| Que acierte el 100 % **no quiere decir que el modelo sea bueno**. Los comentarios de test usan las mismas plantillas y los mismos adjetivos que los de entrenamiento: es un examen con las mismas preguntas que la pr谩ctica. Ver *Limitaciones*. | |
| ## Archivos | |
| | Archivo | Qu茅 es | | |
| |---|---| | |
| | `config.json` | la arquitectura: capas, dimensiones, etiquetas (`id2label`) | | |
| | `model.safetensors` | los pesos | | |
| | `tokenizer.json` | el vocabulario y c贸mo se corta el texto en tokens | | |
| | `tokenizer_config.json` | la configuraci贸n del tokenizer y sus tokens especiales | | |
| | `train.py` | el c贸digo que lo entren贸 | | |
| | `predict.py` | c贸mo cargarlo y usarlo | | |
| | `requirements.txt` | las dependencias | | |
| | `README.md` | esta Model Card | | |
| **Modelo y tokenizer van juntos.** Si el modelo se publica sin su tokenizer, no se puede usar: los n煤meros que entiende el modelo son posiciones del vocabulario de ese tokenizer y de ning煤n otro. | |
| ## C贸mo utilizar el modelo | |
| Desde esta carpeta: | |
| ```python | |
| from transformers import pipeline | |
| clasificador = pipeline("text-classification", model=".") | |
| print(clasificador("el departamento es muy luminoso")) | |
| # [{'label': 'positivo', 'score': 0.99...}] | |
| ``` | |
| Una vez publicado en el Hub, se cambia la carpeta por el nombre del repo: | |
| ```python | |
| clasificador = pipeline("text-classification", model="tu-usuario/nombre-del-repo") | |
| ``` | |
| Funciona con Transformers 4 (la versi贸n de Colab) y con Transformers 5. | |
| ## Limitaciones | |
| - Tiene fines exclusivamente educativos. | |
| - **Solo conoce 37 palabras.** Cualquier otra palabra se convierte en `[UNK]` (desconocida). Por ejemplo, "tiene una vista incre铆ble" queda como `[UNK] [UNK] [UNK] [UNK]`. **El modelo igual responde, y con seguridad alta:** dice `negativo (1.00)`. Un modelo puede equivocarse con total confianza cuando le llega algo distinto de lo que vio al entrenar. | |
| - No entiende negaciones ("no es luminoso") ni iron铆a. Las frases de entrenamiento no las tienen. | |
| - El dataset sale de plantillas, as铆 que el accuracy de test es optimista. | |
| - Para un uso real, conviene partir de un modelo preentrenado en espa帽ol y hacerle fine-tuning con comentarios reales. | |
| ## Autor铆a | |
| Modelo desarrollado con fines educativos para el IFTS N.潞 18. Docente: Cynthia M. Villagra. | |