Brief IA : Classification de texte sans apprentissage : une révolution ?

Classification de texte sans apprentissage : une révolution ?

Brief IA
Tom Levy·5 min·0 vues

La classification de texte sans apprentissage préalable permet de labelliser des textes sans nécessiter d'ensemble de données spécifiques. Cette méthode réduit le temps et les ressources nécessaires pour créer des modèles de classification, et est particulièrement utile dans des domaines où les données étiquetées sont rares ou coûteuses à obtenir.

En bref
1La classification de texte sans apprentissage préalable permet de labelliser des textes sans entraîner de modèle spécifique.
2Cette méthode utilise le langage naturel pour évaluer la pertinence des labels par rapport au texte.
3Des applications pratiques incluent le routage de tickets de support et la modération de contenu.
💡Pourquoi c'est importantCette approche offre une flexibilité et une rapidité essentielles pour le prototypage et les tâches à faibles ressources.
Le brief IA que lisent les pros

La recherche en IA te passionne ?

Les papers et avancées qui comptent, expliqués simplement, chaque soir. Gratuit.

Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.

Choisis ton rythme

Gratuit · Pas de spam · Désabonnement en 1 clic

📄
L'analyse en français

Une nouvelle approche de la classification de texte

La classification de texte sans apprentissage préalable se distingue par sa capacité à attribuer des labels à des textes sans nécessiter de phase d'entraînement sur un ensemble de données spécifique. Contrairement aux méthodes traditionnelles, où un modèle est formé pour reconnaître des catégories prédéfinies, cette technique repose sur une compréhension générale du langage pour déterminer le label le plus approprié à partir d'une liste fournie.

Cette méthode s'avère particulièrement avantageuse dans des contextes où il est crucial de tester rapidement une idée ou de travailler avec des labels qui évoluent fréquemment. Elle permet également de créer des prototypes légers avant de s'engager dans un entraînement supervisé plus coûteux. Plutôt que de s'appuyer sur une correspondance fixe entre texte et labels, le modèle utilise sa compréhension du langage pour évaluer la signification de chaque label.

Fonctionnement de la classification sans apprentissage préalable

L'essence de cette approche réside dans le fait que le modèle ne considère pas les labels comme de simples catégories. Chaque label est transformé en une déclaration en langage naturel, et le modèle vérifie si cette déclaration est soutenue par le texte d'entrée. Cela rend cette méthode particulièrement utile pour des applications pratiques telles que le routage des tickets de support, le marquage d'articles, la détection de l'intention des utilisateurs ou l'organisation de documents internes.

Prenons un exemple concret : si le texte d'entrée est "L'entreprise a lancé une nouvelle plateforme d'IA pour les clients professionnels", et que les labels candidats sont "technologie", "sports", et "finance", le modèle reformule ces labels en déclarations telles que "Ce texte concerne la technologie". Il compare ensuite le texte à ces déclarations pour déterminer le label le plus pertinent.

Applications pratiques

Au lieu de se limiter à des labels de sujet généraux, une entreprise peut choisir des labels plus spécifiques comme "problème de facturation", "support technique" ou "demande de remboursement" pour classer les messages de service client. De même, pour les systèmes de modération, des labels comme "spam", "harcèlement" ou "sécurisé" peuvent être utilisés.

La classification sans apprentissage préalable n'est pas traitée comme un problème de classification traditionnel. Elle est plutôt considérée comme un problème de raisonnement sur la pertinence d'une description de label par rapport au texte. Cela explique pourquoi elle est efficace pour le prototypage rapide, les tâches à faibles ressources et les domaines où les données labellisées sont rares.

Exemples pratiques de mise en œuvre

Chargement du pipeline de classification

Pour commencer, il est nécessaire d'installer les bibliothèques requises :

pip install torch transformers

Ensuite, le pipeline peut être chargé :

from transformers import pipeline
classifier = pipeline(
    "[zero-shot](/glossaire/zero-shot)-classification",
    model="facebook/bart-large-mnli"
)

Ce pipeline offre un moyen simplifié d'utiliser un modèle pré-entraîné sans avoir à écrire du code d'inférence complexe. Le modèle facebook/bart-large-mnli est souvent utilisé pour cette tâche car il est conçu pour évaluer si un texte soutient un autre.

Exemple de classification simple

Voici un exemple de base :

text = "Ce tutoriel explique comment les modèles de transformateur sont utilisés en NLP."
candidate_labels = ["technologie", "santé", "sports", "finance"]
result = classifier(text, candidate_labels)
print(f"Meilleure prédiction : {result['labels'][0]} ({result['scores'][0]:.2%})")

Sortie :

  • Meilleure prédiction : technologie (96.52%)

Cela montre que le modèle choisit le label qui correspond le mieux à la signification du texte. Étant donné que la phrase traite des modèles de transformateur et du traitement du langage naturel, "technologie" est le meilleur ajustement parmi les labels proposés.

Classification multi-labels

Il arrive qu'un texte appartienne à plusieurs catégories. Dans ce cas, l'option multi_label=True peut être activée :

text = "L'entreprise a lancé une application de santé et a annoncé une forte croissance commerciale."
candidate_labels = ["technologie", "santé", "affaires", "voyage"]
result = classifier(
    text,
    candidate_labels,
    multi_label=True
)
threshold = 0.50
top_labels = [
    (label, score)
    for label, score in zip(result["labels"], result["scores"])
    if score >= threshold
]
print("Meilleurs labels :", ", ".join(f"{label} ({score:.2%})" for label, score in top_labels))

Sortie :

  • Meilleurs labels : santé (99.41%), technologie (99.06%), affaires (98.15%)

Cette fonctionnalité est utile lorsque plusieurs labels peuvent s'appliquer à un même texte. Dans cet exemple, la phrase concerne à la fois la technologie, la santé et les affaires, ce qui se reflète dans les scores élevés attribués à ces labels.

Personnalisation du modèle d'hypothèse

Il est également possible de personnaliser le modèle d'hypothèse. Bien que le pipeline utilise une formulation par défaut, un modèle plus clair ou plus naturel peut parfois améliorer les résultats :

text = "L'utilisateur ne peut pas accéder à son compte et continue de voir une erreur de connexion."
candidate_labels = ["support technique", "problème de facturation", "demande de fonctionnalité"]
result = classifier(
    text,
    candidate_labels,
    hypothesis_template="Ce texte concerne {}."
)
for label, score in zip(result["labels"], result["scores"]):
    print(f"{label}: {score:.4f}")

Sortie :

  • support technique : 0.7349
  • demande de fonctionnalité : 0.1683
  • problème de facturation : 0.0968

Cette personnalisation est particulièrement utile lorsque les labels sont spécifiques à une tâche réelle. Un bon modèle d'hypothèse fournit au modèle une déclaration plus claire à évaluer, améliorant ainsi la correspondance entre le texte et le label souhaité.

Conclusion

La classification de texte sans apprentissage préalable offre une solution puissante pour éliminer le besoin d'un entraînement spécifique à une tâche dans de nombreux flux de travail en phase précoce. Plutôt que de collecter immédiatement des données labellisées, il est souvent possible d'obtenir des résultats utiles en choisissant des labels candidats clairs et en laissant le modèle raisonner à leur sujet.

L'idée clé est que le modèle ne prédit pas directement des labels dans le sens traditionnel. Il évalue si chaque label, formulé comme une hypothèse concise, est soutenu par le texte. C'est pourquoi les modèles entraînés sur MNLI, comme facebook/bart-large-mnli, sont si efficaces pour cette tâche.

En pratique, la qualité des résultats dépend fortement de la clarté des labels définis. Une formulation de label solide et un modèle d'hypothèse sensé peuvent faire une différence notable. Bien que la classification sans apprentissage préalable soit un excellent point de départ, elle fonctionne mieux lorsque la sémantique des catégories est soigneusement réfléchie.

Suivez Brief IA

L'actu IA du jour, aussi dans votre fil.

Commentaires