Traitement automatique du langage naturel | Natural language processing (NLP)

Traitement-automatique-du-langage-naturel
Le Traitement automatique du langage ( Natural langage processing) est une branche de l’intelligence artificielle qui s’intéresse à l’analyse, à la manipulation et à la génération de données issue du langage humain. Ces données peuvent provenir de diverses sources tells que:
Des emails
Des livres
Des SMS
Une conversation téléphonique
Un discours
……

Le traitement naturel du language explose de nos jours car nous vivons dans un monde de plus un plus connecté. Aujourd'hui plus de 3.7 milliard de personnes sont en ligne. De plus, en 2017 un étude a été menée par DOMO, et il a été découvert que chaque minute, 

       527 260 snapchat ont été créés.
100 millions d'emails spam ont été envoyés 
500 millions de tweets ont été postés
15 220 700 SMS ont été envoyés
3 607 080 recherches Google ont été faites
74 220 tumblr post ont été généré
154 200 appels par Skype ont été générés

Et maintenant que nous sommes en 2020, ce chiffre n'a fait qu'augmenté avec la démocratisation croissante de l'accès à internet notemment grâce à des initiatives telles que Facebook Connectivity.

Ce faisant, nous voyons bien qu'il est impossible de traiter une si grande quantité de données manuellement. C'est pourquoi, les organisme institutionnel, les entreprises, les associations, utilisent le traitement informatique du languages. C'est notemment le cas des géant tels que Google, Facebook ou encore Quora. 

Google l'utilise notamment pour trouver les mot clés correspondant le mieux à  l'ensembles des nouvelles pages Web généré chaque jours. 

Le traitement du langage naturel est également utilisé par des entreprise tels que golem.ai afin de proposer au entreprise des solution d'automatisation du services clients. Et notamment de réponse automatique au questions les plus courantes. Beaucoup d'autres application existe, les universitaires et certaines entreprise l'utilise pour étudier la propagation de rumeurs sur le Web.

Traitement automatique du langage naturel est un vrai challenge

Même si il est de plus en plus utilisé industriellement, le traitement automatique du langage reste un vrai challenge pour les chercheurs mondiaux. Traiter un email, un livre, une conversation vocale, des tweets, des commentaires est loin d'être une tâche trivial. Et cela, malgré le fait que les premières recherche sur le sujet ait vu le jour en 1948. Certains expert du deep learning s'accorder à dire que ce dernier mettra fin à ce challenge.




Applications du Traitement automatique du langage ?


Le traitement automatique du langage a de nombreuses applications, et parfois même celles-ci sont même insoupçonnées.

Domaine médicale 

Le traitement automatique du language permet la détection de maladie, ou de dépression. Il peut être également utilisé comme assistant personnelle des malades afin de les rendre plus régulier dans la prise de leurs médicament. De plus en plus, e

Sur le Web

Il est très utilisé dans les moteurs de recherche comme je l'ai cité précedemment notemment pour détecter quel page correspond à quel mot clé et pour améliorer leurs système de ranking. Probablement en faisant des corrélation inter-pages. En effet, si une nouvelles page publié ressemble très fortement au première pour un mot clé il est fort à parier qu'elle sera intéressante pour les internautes qui recherche ce terme.

Il peut également être utilisé afin de détecter et de luter contre toutes activité illégales ou illicite sur le web tels que la diffusion de fake news, le texte haineux ou encore le plagiarisme.

Marketing

Dans le marketing, le traitement automatique du language peut être utilisé afin de savoir ce que les internautes pense d'une marque ou encore d'une campagne publicitaire. Il est également utilisé afin d'automatiser le service client des entreprise dans la mesure du possible, cela se fait notemment grâce au filtrage et à au classement des emails ou encore la création de serveurs vocales.  Enfin certaines entreprises arrive même à construire des chatbot capable de vendre et de promouvoir leur produit de manière automatique.

Système de traduction

Les exemples de systèmes  de traduction en lignes ne se compte plus : reverso, google translate mais surtout DeepL considéré comme les meilleurs à ce jours. Ces derniers sont tous basé sur utilise tous l'analyse du langage naturel pour faire créer un traduction correpondant le mieux au texte rentré par l'utilisateur.

Assistant personnel

Des exemples d'assistants personnels sont cortana, siri ou encore Alexa d'amazon. 

Comment fonctionne le traitement automatique du langage (NLP) ?

Comme je l'ai dit précedemment, traiter un texte ou une conversation téléphonique est loin d'être une tâche triviale.  Alors imaginez-vous quand l’on rajoute à ce texte des images, des liens, des vidéos afin d’en faire une page web. La tâche n’en devient que plus ardue.

Dans cette article, je n'aborderais pas avec vous le traitement de documents complexe composé de média, je me contenterais de vous expliquer comment fonctionne le traitement de texte simple. 


Premièrement, il faut savoir que selon la tâche que l’on souhaite effectuer, la manière dont on va traiter le texte va différer. Si vous avez lu mon article sur la vision par ordinateur, vous savez qu'un programme de vision par ordinateur est constitué de trois principaux blocs, le premier la segmentation permet d’extraire des objets d’une image, la seconde l’extraction de caractéristiques permet de transformer les pixels de cet objet en information utile pour la tâche, la troisième consiste à réaliser la tâche voulue grâce aux informations précédemment extraites.

Pour le traitement automatique du langage, c’est la même chose, des données textuelles vont être extraites d’une base de données (site web, base de conversation téléphonique,réseau sociaux, etc. ), ces données vont être transformées en information à l’aide d’algorithme tel que Bag of words, Latent Dirichlet Allocation (LDA) ou d’autres modèles tels word2vec de Google, puis pour finir vont être envoyé à un modèle « généralement un classifieur » qui effectuera la tâche souhaitée.

Comment les data-scientist extrait des informations d’un texte ?
Il existe plusieurs manières d’extraire des informations d’un texte et la méthode utilisée est souvent dépendante de la tâche que l’on souhaite exécuter. Cependant, deux modèles ressortent comme le must-know de l’analyse du langage naturel. Il s’agit de Bag of Word et de Word2Vec. Latent Dirichlet Allocation (LDA) semble aussi important à connaître, mais pas tant que ça.

Algorithmes de traitement automatique du language :


Bag of Words (littéralement : Sac de mots)

La représentation Bag of words consiste à construire l’histogramme des occurrences de l’apparition des mots dans un texte. Le but de cette opération est de concasser le texte en unité de sens, puis de créer une matrice d’unité de sens.

Dans la matrice de Bag of word, en ordonnées on retrouvera généralement la classe du texte et en abscisse les unités de sens.

Exemple :

Texte 1 :La vision humaine regroupe l’ensemble des processus biologiques permettant la capture d’images, l’analyse et la compréhension du monde dans lequel nous vivons.

Texte 2 :La vision par ordinateur est permise grâce à l’union de composants matériels (hardware) et de composants logiciels (software). La caméra à un rôle identique à celui de notre œil, elle est chargée de capturer des images du monde environnant.

Forme basique :


visionhumainebiologiquesimagecapturecapturerla...
Texte 11111102...
Texte 21001012...


Forme avancée :


visionhumainebiologiquesimagecapturecapturerla...
Texte 11111102...
Texte 21001012...


vision

humaine

biologiques

image

capture(r)

processus

caméra

...

Texte 1

1

1

1

1

1

1

0

...

Texte 2

1

0

0

1

1

0

1

...



Modèle n-grams


visionhumainebiologiquesimagecapturecapturerla...
Texte 11111102...
Texte 21001012...


Une unité de sens, peut aussit être composé de plusieurs mot, on dit alors qu'elle est n-grams. Le tableau ci-dessous présente des unités de sens 2-grams.




Vision humaine

Vision ordinateur

Processus biologiques

rôle identique

composants matériels

Compréhension monde

Monde environnant

...

Texte 1

1

0

1

1

0

1

0

...

Texte 2

0

1

0

1

1

1

1

...

Allocation de Dirichlet latente où Latent Dirichlet Allocation (LDA)

Je ne couvrirais que partiellement l'allocation de Dirichlet latente dans cette article car elle repose sur un processus mathématique complexe. 

L'allocationd de Dirichlet latente représente un document comme étant une mixture de plusieurs sujet différent. Par exemple, un document peut à la fois d'enfant et de jouet. LDA permet d'obtenir en fonction du vocabulaire présent dans le document un niveau duquel le texte parle d'un sujet en particulier. 


Word2Vec 

Word2Vec à été créé, publié et breveté en 2013 par une équipe de recherche de Google mené par Tomas Mikolov. Word2Vec est un ensemble de réseaux neuronaux permettant d'encoder des documents. Ces derniers prennent en entrées des documents et en sortie produisent un vecteur de valeur numérique.


Une fois le texte encodé, il est temps de le traiter. Selon le type d'application que l'on souhaite en faire, un modèle d'apprentissage sera choisi. Les réseaux de  neurones récurrents sont très populaires pour le traitement automatique du langage.

Les réseau de neurones récurent (Reccurent neural network - RNN):

Le réseau de neurones se distingue des autres types de réseaux de neurones par sa topologie qui n'a pas d'orientation et notemment que dans ce type de réseau, un neurones peut être typiquement connecté à lui même. 

Ce type de réseaux permet la prise en compte du contexte dans le traitement des informations car ces dernier ont la particularité de se rappeler de l'information passé et donc d'influencer leurs sortie selon celle-ci.

Classiquement, les RNN simple, ne peuvent mémoriser que des moment passé dit proche. C'est pourquoi, généralement l'industrie utilise des réseau de neurones réccurent plus complexe tels que le Long Short Term memory network qui comme son nom l'indique à la capacité de stocker des informations provenant de passé lointain. Ces dernier seront généralement bidirectionnel, c'est à dire que pour les applications le permettant l'on leur donnera des informations passé et des informations futur afin d'améliorer leurs résultats. 

Ces réseaux à  large  « mémoire  court-terme » ont notamment révolutionné la reconnaissance de la voix par les machines (Speech Recognition) et la compréhension et la génération de texte (Natural Langage Processing).


Source :

Word2Vec

Latent Dirichlet allocation

Your Guide to Natural Language Processing (NLP)

What Is Natural Language Processing?

Survey on Natural Language Processing and its Applications

Natural Language Processing Tutorial

Data Never Sleeps 5.0

Promise of Deep Learning for Natural Language Processing

Efficient Estimation of Word Representations in Vector Space

  

 

.