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


📂 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 :
    pip install -r requirements.txt
    
  4. Lancer python app.py