classification-text / readme.md
Merwan6
modification readme
3eae2ef
|
raw
history blame
2.39 kB
# 📰 AG News Text Classification Demo
Ce projet présente une application de classification de textes d’actualité basée sur le dataset **AG News**.
L'objectif est de comparer plusieurs stratégies d'inférence de modèles Transformers pour la classification de texte.
---
## 🚀 Démo en ligne
L’application est disponible ici :
[**Lien vers la démo Hugging Face Space**](https://huggingface.co/spaces/Merwan611/classification-text)
---
## 📂 Organisation du projet
- `app.py` : interface Gradio avec deux onglets (`Demo` + `Documentation`)
- `scripts/inference.py` : fonctions d’inférence pour 4 types de modèles
- `scripts/train.py` : script d’entraînement du modèle BERT fine-tuné sur AG News
- `scripts/utils.py` : calcul des métriques d’évaluation (accuracy, F1, etc.)
- `requirements.txt` : liste des dépendances Python
---
## 🧠 Description des modèles utilisés
1. **Base model**
Modèle BERT préentraîné `textattack/bert-base-uncased-ag-news` utilisé directement sans fine-tuning.
2. **Zero-shot**
Modèle `facebook/bart-large-mnli` utilisé pour classification zero-shot via pipeline Hugging Face.
3. **Few-shot**
Approche zero-shot avec exemples dans le prompt (prompt engineering).
4. **Fine-tuned model**
Modèle BERT `bert-base-uncased` entraîné sur un sous-ensemble équilibré du dataset AG News (3000 exemples par classe), sauvegardé sur Hugging Face Hub sous `Merwan611/agnews-finetuned-bert`.
---
## 📊 Données et entraînement
- **Dataset** : AG News (4 classes : World, Sports, Business, Sci/Tech)
- **Préprocessing** : tokenisation avec `AutoTokenizer` BERT
- **Entraînement** : 3 epochs, batch size 32, métrique optimisée : accuracy
- **Sous-échantillonnage** pour accélérer l’entraînement : 3000 exemples par classe pour le train, 1000 par classe pour le test
---
## 📈 Performances
Les métriques calculées sont :
- Accuracy
- Precision (moyenne pondérée)
- Recall (moyenne pondérée)
- F1-score (moyenne pondérée)
Le modèle fine-tuné atteint généralement une meilleure précision que le modèle de base ou les approches zero-shot.
---
## ⚙️ Lancer l’application localement
1. Cloner le repo
2. Créer un environnement virtuel Python
3. Installer les dépendances :
```bash
pip install -r requirements.txt
4. Lancer python app.py