Retour au Blog
NLP 25 janvier 2025 9 min de lecture

Analyse de sentiment pour le texte arabe : BERT vs ML traditionnel

Construire un classificateur de sentiment production pour les avis clients arabes — curation de dataset, défis de prétraitement.

Curation du dataset

J'ai utilisé 3 sources :

  1. ASTD (Arabic Sentiment Twitter Dataset) — 10K tweets
  2. ArSAS (Arabic Sentiment Analysis) — 21K MSA + dialectal
  3. Avis en darija marocain scrapés depuis Jumia MA

Prétraitement

def preprocess_ar(text):
    text = re.sub(r'[\u064B-\u065F\u0670]', '', text)  # Remove diacritics
    text = re.sub(r'[أإآ]', 'ا', text)  # Normalize alef
    text = re.sub(r'ة', 'ه', text)  # Normalize teh marbuta
    text = re.sub(r'[^\w\s]', ' ', text)  # Remove punctuation
    text = re.sub(r'\s+', ' ', text).strip()
    return text

Comparaison des résultats

ModèleAccuracyF1
TF-IDF + SVM76.2%0.74
FastText81.5%0.80
AraBERT v0.288.1%0.87
CAMeL-BERT86.7%0.85

AraBERT gagne mais est 20x plus lent. Utilisez FastText si la latence compte.

Sentiment AnalysisArabic NLPBERTAraBERTText Classification
O

Ossama Elhakki

Ingénieur IA & Systèmes ML — Maroc