1. Résumé

La langue arabe est importante sur le web : il s’agit de la 4ème langue la plus utilisée sur internet, est la langue officielle de plus de 22 pays, et parlée par plus de 400 millions de locuteurs.

Gérer la langue arabe n’est pas simple pour un chatbot. Pourquoi ?La langue arabe se décompose en trois grandes variétés 

  • CA, une forme littéraire de la langue arabe (utilisée dans les textes littéraires et le Coran),
  • MSA une forme parlée de langue utilisée à l’écrit et dans les conversations formelles
  • Finalement AD, une forme dialectale, utilisée au quotidien à l’oral et pour les conversations informelles.

La forme dialectale (AD) peut se décomposer en 6 différents sous-groupes :

  1. Egyptienne (EGY),
  2. Levantine (LEVEL)
  3. Golf (GLF)
  4. Irakienne (IRQ)
  5. Maghrébine (MAGH)
  6. Le sixième groupe regroupe les dialectes restants.

Pour complexifier encore la donne, les formes MSA et AD peuvent s’écrire en caractères arabes (اللغة العربية) ou bien en caractères latins. Par exemple, la phrase en arabe  أنا سعيد qui veut dire « je suis heureux » peut s’écrire en caractères latins ‘ana sa3idoun’ (le chiffre 3 est utilisé pour signifier une prononciation qui n’existe pas dans les langues latines).

Par ailleurs, les caractères arabes se lisent de la droite vers la gauche ◀️ : Dans certains pays de langue arabe, on utilise les chiffres dit ‘arabe oriental’ => ٠١٢٣٤٥٦٧٨٩ correspond à 1,2,3,4,5,6,7,8,9.

2. Petit rappel sur le pipeline NLU

Comme détaillé dans l’article ici, le traitement du langage naturel est constitué d’une suite d’algorithme appelé aussi « pipeline » permettant :

  • La  tokénisation 
  • La correction orthographique
  • Extraction d’entités
  • Vectorisation
  • Détection d’entités (personnalisées et standard)
  • Analyse des sentiments
  • Stemming
  • Lemmatisation
  • Détection des stop words

Cette suite d’algorithmes (ou pipeline) a pour fonction :

  • La détection de l’intention utilisateurs
  • L’extraction d’information pertinentes dans la requête utilisateur

Cela permettra par la suite de générer une réponse pertinente du chatbot.

Le schéma suivant donne un exemple de mise en œuvre de pipeline de traitement du langage naturel, avec un exemple de requête utilisateur traitée de bout en bout.

3. Impact de la langue arabe sur le pipeline

Le tableau ci-dessous rappelle de manière synthétique la fonction de chaque algorithme ainsi que l’impact de la langue arabe sur chacun de ceux-ci.

Nom de l’algorithmeFonctionImpact de la langue arabe
La correction orthographiqueLa correction orthographique consiste à corriger les fautes d’orthographe dans les requêtes utilisateur Exemple : si l’utilisateur écrit « je veux une piza », l’algorithme la corrigera en « Je veux une pizza ». Cela permettra aux algorithmes de vectLa fonction « correction orthographique » nécessite l’existence d’un dictionnaire dans la solution. Pour fonctionner correctement, il faudra notamment un dictionnaire par dialecte. Par ailleurs, les dictionnaires de langues arabes sont généralement plus volumineux car le même mot avec ou sans accent peut avoir un sens complètement différent.  Le dictionnaire comprendra par exemple les 3 mots suivants ألمْ, أَلَم ,ألم qui ont les mêmes lettres mais des diacritiques différents
La tokenisation Consiste à découper une phrase en mots Exemple : « Nous avons super faim » sera découpée en [Nous] [avons] [super] [faim]. Cet algorithme s’appuie sur une détection des espaces pour découper la phrase en mots élémentaires.En arabe, les mots sont également séparés par des espaces. Les algorithmes de « tokenisation » sont quasi similaires pour les langues arabe et latine.
VectorisationLa vectorisation consiste à transformer les phrases en vecteurs. Exemple : « J’ai super faim » sera transformé en [1, 5, 6]. Les coordonnées du vecteur sont notamment déterminées par la fréquence ou le mot apparait dans le jeu de données paramétré dans le chatbot et le nombre de fois où le mot apparait dans une phrase donnée. Par exemple « J’ai super super faim » sera vectorisé en en [1, 5, 6, 6]. La vectorisation permet aux algorithmes de détection d’intentions de déterminer des proximités entre les phrases de l’utilisateur et celles du jeu de données.Les algorithmes de vectorisation sont quasi similaires pour les langues latines et arabes.
Extraction d’entitésL’extraction d’entités consiste à extraire informatiquement d’une phrase une information particulièrement importante pour la transaction. Exemple : « je veux faire un virement de 1500 € à François Dupont » contient deux informations dont l’extraction est importante : 1500 €, soit le montant du virement et « François Dupont » le bénéficiaire du virementLes pays arabophones ont tendances à utiliser la suite de nombre 0,1,2,3,4,5,6,7,8,9. Les algorithmes d’extractions de nombre seront donc similaires. Idem pour les adresses mails qui respectent le format standard [email protected] Les algorithmes d’extractions seront généralement similaires entre les langues arabes et latines.
StemmingLe stemming permet de déterminer la racine d’un mot. Exemple : la racine de « virement »  est « vire » Les algorithmes de stemming nécessitent la présence de dictionnaires en langues arabes, assez volumineux (à cause des diactriques notamment, voir « correction orthographique » ci-dessus).
LemmatisationLa lemmatisation va retrouver la forme infinitive du mot. Exemple : « virement » sera transformé en « vire » par le stemming puis en « virer » par la lemmatisation.  Les algorithmes de lemmatisation nécessitent la présence de dictionnaires en langues arabes, assez volumineux (à cause des diactriques notamment, voir « correction orthographique » ci-dessus).
Stop wordsLes stop words sont des mots dans une phrase dont le rôle est moins important que d’autres pour la compréhension du sens de la phrase. Ex : Dans la requête « je veux manger une pizza », le mot « une » pourrait aisément être éliminé sans que le sens de la phrase soit altéré. Les algorithmes « stop word » vont éliminer ces mots au poids faible de la requête de l’utilisateur afin de rendre plus efficace la détection d’une proximité entre la requête de l’utilisateur et les phrases du jeu de données enregistrés dans le chatbot.En langue arabe, la détection d’un stop word ne peut se faire sans la prise des diacritiques. Par exemple, le mot interrogatif ألمْ un stop word tanpis que le mot أَلَمٌ (qui veut dire douleur) n’en est pas un. Les deux mots différents seulement par leur diacritique.    
Analyse des sentimentsL’analyse des sentiments consiste à détecter dans la phrase de l’utilisateur une polarité négative, neutre ou positive. Exemple : « Je suis en colère » aura une polarité égale à -0,7, « je constate » une polarité égale à 0 » et « j’adore » une polarité égale à 0,8.L’analyse des sentiments s’appuie principalement sur la détection de mots clés. Des dictionnaires de mots spécifiques à la langue arabe seront donc nécessaires afin que les algorithmes fonctionnent correctement.
Détection d’intentionFondamentalement, il compare le vecteur d’entrée à un ensemble de vecteurs préformés (intentions) pour trouver celui qui est le plus similaire. Le résultat de cette opération est le meilleur candidat d’intention et un score de confiance.Les algorithmes de détection d’intentions sont similaires pour les langues arabes et latines.

Vous souhaitez en discuter ? Contactez-nous https://smartly.ai/contact

WordPress » Erreur

Il y a eu une erreur critique sur ce site.

En apprendre plus sur le débogage de WordPress.