Les secrets du NLP (Natural Language Processing)

Il est aujourd’hui difficile de parler d’IA sans faire référence au Traitement du Langage Naturel (Natural Language Processing ou NLP). En effet, ses applications ne cessent de progresser dans la maitrise du langage. Maitriser le langage c’est maitriser la communication. C’est permettre à l’homme et à la machine de communiquer. On imagine alors aisément le vaste champ des applications qui pourraient en découler.

 

COMMENT ÇA MARCHE ?

Tout d’abord, essayons de comprendre comment fonctionne le NLP.
Un modèle mathématique prédictif va conclure à la similarité de deux entités en calculant la distance qui les séparent. Le meilleur moyen pour y parvenir est de quantifier ces entités et les transformer en vecteurs. Comment pouvons-nous transformer un texte en une série de nombres qui le caractérisent de manière aussi unique que possible ? C’est le but du pré-traitement des données textuelles.

Une première approche simple est de découper ce texte en sous-ensembles (les phrases) et en unités élémentaires (les mots). En jargon NLP, ce découpage s’appelle la « tokenisation ». Une fois le texte tokenisé, Il est alors possible de calculer le nombre total de phrases, le nombre total de mots et le nombre total de lettres. Mais aussi la moyenne de mots par phrases ; et pourquoi pas le nombre moyen de lettres par mot. « Le joli chat est dans le pré » sera radicalement différent de « Les essais cliniques des thérapies à la cortisone donnent des résultats satisfaisants ».

Plusieurs traitements sont ensuite appliqués au texte. Chaque mot est qualifié suivant une nomenclature universelle : nom, pronom, verbe, adjectif, etc. Les « dépendances » établissent les relations syntaxiques entre les mots quelle que soit leur position dans la phrase. Le Stanford NLP en distingue 57. La « lemmatisation » consiste à retrouver pour certains mots le terme canonique primaire : « grande », « grandes » et « grands » deviendront tous « grand ».

Nous allons également compter les fréquences d’utilisation des mots et calculer un ratio entre fréquence dans le texte et fréquence dans la langue en général. Cela nous donnera un aperçu de la complexité du texte.

 

DES MOTS EN PLUSIEURS DIMENSIONS

Les laboratoires de recherche en NLP sont encore allés beaucoup plus loin. Ils ont attribué, pour chaque mot existant dans une langue donnée, une matrice définie dans un espace vectoriel entre 50 et 100 dimensions. Une librairie NLP comme spaCy par exemple a défini chaque mot de la langue anglaise par une matrice en 92 dimensions. Cela veut dire que chaque mot est défini par une suite de 96 nombres représentant ses attributs : fréquence d’utilisation, nature et contexte. Cela permet de faire des calculs avec des mots. Par exemple : Roi – Homme + Femme = Reine.

De ce point de départ, une multitude de calculs, de modèles prédictifs et de classifications sont possibles. Les applications du NLP n’ont de limite que celle de notre imagination et créativité. Nous allons les retrouver par exemple dans les moteurs de recherche. Si je cherche le mot « fruit », un moteur de recherche de première génération devra trouver la chaine de caractères identique à « fruit ». Un moteur de recherche en NLP retournera tous les vecteurs les plus proches : « pomme », « poire », « banane », etc. Les « analyses de sentiment » utilisent un classificateur supervisé pour faire la différence entre un texte triste et un texte joyeux. La même approche va trier les pourriels dans votre boite de réception.

Nul doute par conséquent que l’impact des progrès en NLP sera considérable dans le futur de nos relations avec les machines. A suivre avec grand intérêt …

 

Ce texte fait partie d’une série d’articles écrits par Roger Vandomme, associé principal et directeur en analyse des données au Groupe NEOS, visant à démystifier l’IA aux différents secteurs économiques en appliquant des modèles mathématiques, l’apprentissage machine et l’intelligence artificielle. 

 

Un commentaire
Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *