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

Smartly.ai est un logiciel d’automatisation de la Relation Client.
Nos chatbots soulagent vos équipes, réduisent le temps de réponse et améliorent la satisfaction client.

© 2012-2022 Smartly.AI