Vous êtes-vous déjà demandé comment votre téléphone pouvait comprendre ce que vous lui disiez ? Comment cet amalgame de métal et de plastique avait acquis la capacité de communiquer avec des humains ? Si vous avez déjà passé du temps à jouer avec Siri, Google, Alexa ou Cortana, en essayant de les piéger avec des questions alambiquées, alors vous avez joué avec la data science et avez surement déjà une idée de ce qu’est le Natural Language Processing (NLP).
A ce jour, personne n’a encore été capable d’inventer une intelligence artificielle capable de communiquer comme nous le faisons. Passons en revue quelques incontournables AI en Natural Language Processing, et voyons ce que l’on peut attendre du futur.
Une définition du Natural Language Processing
Ce domaine des sciences de l’information inclus un grand nombre de sujets :
- la classification de textes
- la compréhension de texte
- la reconnaissance vocale
- le text-to-speech
- la réponse aux questions
- la synthèse
- la reconnaissance optique des caractères (OCR)
- et bien d’autres
Comme vous l’avez certainement compris, le domaine du Natural Language Processing est sans limite !
En tant qu’humains, nous parlons depuis l’enfance. Pendant que vous lisez ces lignes, vous ne vous posez pas la question de la manière dont votre cerveau donne du sens à toutes ces lettres.
Posons-nous un instant.
Essayons de nous mettre dans la peau d’un ordinateur. Nous n’avons la capacité de traiter que des chiffres. Comment alors reconnaître un mot ? Ou comprendre une phrase ?
Vous avez maintenant une idée de la difficulté de la tâche.
Alan Turing, l’un des pères de l’intelligence artificielle a suggéré de mesurer l’intelligence d’une machine à sa capacité à se faire passer pour un humain. C’est ce qu’on appelle le test de Turing.
Le Deep Learning et le Natural Language Processing: un combo idéal
L’avènement du deep learning à ouvert le champ des possibles. Alors que nous étions jusqu’à présent cantonné aux statistiques et aux techniques basées sur des règles, il nous a permis d’avoir plus d’abstractions. Rappelez-vous que les mots sont abstraits pour les ordinateurs ! Grâce aux nouvelles avancées, nous sommes capables de convertir les mots en vecteurs. En d’autres termes, nous traduisons notre langue dans celle des machines. Depuis des décennies, nous avions l’habitude de tricher en remplaçant les mots par des représentations chiffrées.
Le progrès le plus important : Word2Vec.
Grâce aux réseaux neuronaux, nous pouvons transformer des mots provenant d’un corpus de text en vecteurs. Les vecteurs sont simplement une liste de chiffres… et les ordinateurs adorent les chiffres ! Non seulement ils les aiment, mais la manière dont ces vecteurs sont générés créé des relations entre les mots du corpus. Disons que vous avez ces mots : reine, roi, femme et homme. Nous pouvons déduire les relations entre chacun. Encore mieux ! Avec Word2Vec, nous sommes en mesure de les voir. Comme les mots sont des vecteurs, nous pouvons en faire tout ce qui est mathématiquement possible. Tout ça pour dire qu’on peut les additionner et les soustraire. Et que se passe t-il lorsque vous faites le calcul suivant : roi – homme + femme ? Bingo ! Vous obtenez la reine. Impressionnant n’est-ce pas ? Ce qu’on appelle le word embedding est largement utilisé pour le pré-traitement dans de nombreux cas. Par exemple, si vous voulez classifiez des textes, vous pouvez utiliser Word2Vec pour accroître les performances.
Les autres solutions
Word2Vec n’est pas la seule technologie existante. Depuis, plusieurs solutions émergent : GloVe, ELMo, BERT,… Chacune d’entre elles pousse les possibilités de traitement des machines encore plus loin. Ce qui est bien, c’est que si vous voulez vous amuser avec ça, il existe des tas de bibliothèques open-source qui les ont déjà intégrées. Vous pouvez donc rapidement monter votre propre modèle pour vos besoins. La plupart des problématiques que vous pourriez vouloir résoudre en Natural Language Processing passera par une étape de transformation de texte en vecteurs compréhensibles pour les machines.
Le Natural Language Processing: un futur sans limites...
Aujourd’hui, le Natural Language Processing couvre de nombreuses tâches comme la compréhension de textes, la classification de sujets, la traduction et bien d’autres. Les chatbots, ces interlocuteurs intelligents, sont simplement la partie émergée de l’iceberg.
Le NLP peut vous aider à extraire l’information que vous ne pourriez pas trouver seul dans une large volume de données textuelles. Il peut contribuer à identifier des bugs rapidement en lisant les commentaires sur un produit. Les options sont infinies et le futur est rempli d’améliorations encore plus sensationnelles ! Pour l’instant la génération de texte est l’un des challenge majeur dans ce domaine. Les avancées récentes de Open AI ont mis le pied dans la porte de la discussion libre des intelligences artificielles.
Malgré ces impressionnants progrès, il subsiste néanmoins quelques limites. Pour l’instant cela nécessite un gros volume de données. La plupart du temps elles proviennent d’Internet, mais la qualité n’est pas forcément au rendez-vous. De plus, Internet n’est pas comparable à la vraie vie de tous les jours, et des biais peuvent survenir dans les décisions de l’IA. Et entraîner ces intelligences artificielles coûte beaucoup d’argent, car cela nécessite d’énormes fermes de serveurs pour obtenir des résultats satisfaisants.
Heureusement, les choses évoluent vite. Quelque soit votre besoin en Natural Language Processing, vous trouverez une solution pour y répondre. Parler comme nous est toujours complexe pour un smartphone ou un ordinateur. Réussir à faire discuter une IA comme nous prendra encore du temps. C’est une avancée qui se fera pas à pas. Le Natural Language Processing est un domaine qui va continuer de croître et s’adapter, et il va conduire le Machine Learning vers de nouveaux horizons.