| | --- |
| | language: fr |
| | license: mit |
| | tags: |
| | - absa |
| | - aspect-based-sentiment-analysis |
| | - deberta |
| | - natural-language-processing |
| | model_name: DeBERTa-v3 ABSA (Extraction de Termes d'Aspect et Classification de Polarité) |
| | --- |
| | |
| | # 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`. |
| |
|
| | > [!IMPORTANT] |
| | > **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 : |
| | 1. **Extraire les Aspects** : Identifier automatiquement les caractéristiques ou sujets spécifiques mentionnés dans une phrase (ex: "nourriture", "service", "autonomie de la batterie"). |
| | 2. **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 : |
| |
|
| | ```bash |
| | pip install pyabsa transformers torch |
| | ``` |
| |
|
| | ## Utilisation |
| |
|
| | Vous pouvez utiliser l'extrait suivant pour exécuter une inférence localement : |
| |
|
| | ```python |
| | 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 : |
| |
|
| | ```json |
| | { |
| | "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. |
| |
|