Le langage naturel et sa complexité

Pratiqué au quotidien par tous, le langage nous est intuitif et normal. Pourtant, les machines peinent encore à nous comprendre complètement. Pourquoi tant de défis dans la compréhension informatique du langage humain ?

Les utopies que nous offrent la Science Fiction nous présentent souvent des mondes technologiques dans lesquels les interactions homme-machines sont grandement fluidifiées par des interfaces plus intuitives : Les gestes, la pensée, et probablement le plus courant : le langage.

Qu’est ce que le NLP ?

Le domaine de connaissance qui consiste à créer des programmes informatiques capables de manipuler le langage humain s’appelle le “Traitement automatique du langage naturel” ou parfois simplement “Traitement automatique des langues”.

On lui préfère le terme Anglais “Natural Language Processing”, qu’on abrège NLP.

Qu’est ce que le langage naturel ?

Le langage naturel est le terme précis pour désigner le langage humain, dont l’étude est la linguistique.
Par opposition au langage naturel, on parle de langage formel pour désigner les systèmes d’écritures bien définis, comme les écritures mathématiques ou le code informatique.

Une complexité à plusieurs visages

Le langage naturel est plus difficile à traiter pour une machine, en voici quelques raisons simples :

Des éléments trompeurs

Les mots sont souvent polysémiques (plusieurs significations).

“Il n’y a personne.” “Il y a encore une personne.”

Ici, le même mot décrit une affirmation et sa négation.

Ou encore : « douter de quelque chose ». « se douter de quelque chose ».

Des ambiguïtés

Une même phrase peut vouloir dire quelque chose et son contraire.
“Il y a plus de pain”
Cette forme est courante bien que grammaticalement incorrecte.
Si on souhaite préciser le manque de pain, il faudrait écrire : “Il n’y a plus de pain”.
Peut-on exiger de la part d’un utilisateur, une grammaire stricte plutôt que les déformations parfois plus utilisées ?

Nécessité du contexte

“Il voulait la voir.” Qui veut voir qui ? C’est ce qu’on appelle une anaphore.
Il peut s’agir d’une référence à une autre phrase, ou bien au contexte d’utilisation : une autre personne dans la pièce par exemple

L’insuffisance, parfois, du contexte

“L’étudiant alla voir le prof à la fin du cours, car il voulait lui parler.” Nous avons bien les deux personnes en présence, mais qui veut parler à qui ?

Le problème de l’orthographe

L’orthographe d’un mot est influencée par d’autres mots (Conjugaison, genre, etc.), qui permet réciproquement, de désambiguïser certaines situations.
Cette possibilité étant conditionnée par la justesse grammaticale et orthographique de la phrase !

Des relations complexes entre les mots

Un mot peut avoir deux synonymes qui sont antonymes entre eux : “Homme” <- “Humain” -> “Femme”

Le langage change en permanence

Les nouveaux usages deviennent des néologismes, là où d’anciennes expressions disparaissent des usages. Le langage mute en permanence : Le langage commun influence l’usage, mais également, l’usage influence le langage commun.

Le problème de l’universalité

D’une langue à l’autre, évidemment, la plupart des règles grammaticales varie.
Même dans une seule langue, la signification d’un mot peut être sujette aux variations culturelles.

L’absurde

On peut par exemple construire des phrases auto-référentielles, qui ne peuvent avoir aucune interprétation complète correcte.
“Cette phrase est fausse.”

Sortir de la complexité ?

De ce point de vue, le langage semble être un problème infiniment complexe, voir insoluble. Alors, comment est-il possible malgré tout d’avoir déjà aujourd’hui des interfaces homme-machines par le langage ?

Plusieurs éléments de réponse :

  • On ne s’adresse pas spontanément à une machine exactement comme à une personne. Les recherches Google en sont un bon exemple. Et donc, la complexité réelle d’une demande adressée à un logiciel est moins importante. Les utilisateurs ne feront pas référence à un élément de contexte auquel ils supposent que le logiciel n’a pas accès.
  • Malgrè toutes les variations d’une langue à l’autre, on retrouve quelques règles communes. D’autre part, il y a des familles de langues dont les règles sont très proches.
  • Enfin, “comprendre le langage” est rarement un but en soi. Il s’agit par exemple de construire une représentation d’une phrase, de résumer ou de traduire un texte. Dans le cas de Golem.ai, il s’agit de transformer la phrase en action. Chacune de ces perspectives permet d’ignorer certains aspects du langage, peu ou pas pertinents.

Certains de ces exemples sont inspirés du livre “Le langage et la pensée” de Noam Chomsky, réédition Payot parue en 2009.