DeBERTa-v3 pour l'Analyse de Sentiment Basée sur les Aspects (ABSA)
Ce dépôt contient un modèle DeBERTa-v3 ajusté (fine-tuned) spécifiquement pour l'Extraction de Termes d'Aspect (ATE) et la Classification de Polarité (PC) en utilisant la bibliothèque PyABSA.
Ce modèle est entraîné exclusivement sur des données en anglais. Bien que la documentation soit disponible en français, les entrées fournies au modèle doivent impérativement être en anglais pour obtenir des résultats fiables.
Description du Modèle
Le modèle est conçu pour :
- Extraire les Aspects : Identifier automatiquement les caractéristiques ou sujets spécifiques mentionnés dans une phrase (ex: "nourriture", "service", "autonomie de la batterie").
- Classer le Sentiment : Déterminer le sentiment exprimé envers chaque aspect identifié (Positif, Négatif ou Neutre).
Il est basé sur l'architecture microsoft/deberta-v3-base, qui offre des performances supérieures dans les tâches de NLU par rapport à BERT ou RoBERTa.
Installation
Pour utiliser ce modèle, vous devez installer pyabsa et ses dépendances :
pip install pyabsa transformers torch
Utilisation
Vous pouvez utiliser l'extrait suivant pour exécuter une inférence localement :
import os
from pyabsa import AspectTermExtraction as ATEPC
# Initialiser l'extracteur d'aspects
# PyABSA gérera automatiquement le téléchargement et le chargement du modèle s'il est lié à HF
model = ATEPC.AspectExtractor(checkpoint="votre-nom-d-utilisateur/deberta-absa")
text = "The food was delicious but the service was extremely slow."
result = model.predict(text, print_result=True)
# Traiter les résultats
for aspect, sentiment in zip(result['aspect'], result['sentiment']):
print(f"Aspect: {aspect} | Sentiment: {sentiment}")
Format d'Entrée/Sortie
Entrée
Le modèle accepte une chaîne de texte brut (une phrase ou un paragraphe).
Exemple : "The pizza was amazing but the staff was rude."
Sortie
Le modèle renvoie un résultat structuré contenant :
- Aspects : Les entités ou caractéristiques spécifiques identifiées (ex:
["pizza", "personnel"]). - Sentiments : La polarité du sentiment pour chaque aspect (ex:
["positive", "negative"]).
Sortie Détaillée
Pour les utilisateurs avancés, le modèle fournit une sortie plus granulaire incluant des informations au niveau des jetons et des probabilités de sentiment :
{
"sentence": "The pizza was amazing",
"tokens": ["The", "pizza", "was", "amazing"],
"IOB": ["O", "B-ASP", "O", "O"],
"aspect": ["pizza"],
"position": [[1]],
"sentiment": ["positive"],
"probs": [[0.0002, 0.0003, 0.9994]],
"confidence": [0.9994]
}
- IOB : Balises Inside-Outside-Beginning pour l'extraction de termes d'aspect.
- Probs : Distribution de probabilité sur
[négatif, neutre, positif]. - Position : Décalage du jeton de l'aspect dans la phrase.
Le modèle a été entraîné sur un jeu de données combiné incluant SemEval 2014, SemEval 2015 et SemEval 2016 (Ordinateurs portables et Restaurants), en se concentrant sur une extraction d'aspect robuste et une classification de sentiment de haute précision.
Performance
| Tâche | Précision / F1 |
|---|---|
| Extraction d'Aspect (ATE F1) | 85.85% |
| Classification de Polarité (APC Accuracy) | 89.86% |
| Classification de Polarité (APC F1) | 84.08% |
Auteurs
Ce travail a été développé et affiné par :
- Othmen Siwar
- Bouallégue Abir
Citation
Si vous utilisez ce modèle, veuillez citer le dépôt PyABSA original et l'article DeBERTa.