Une histoire de famille
Vous avez sûrement entendu parlé de Siri et d’Alexa, les assistants vocaux d’Apple et d’Amazon respectivement. Aujourd’hui, il est temps que vous fassiez la connaissance de leur mère, Eliza.
C’est Joseph Weizenbaum, un informaticien germano-américain et professeur à MIT, qui donna vie à Eliza au milieu des années 60 au laboratoire d’intelligence artificielle à MIT. Deux cents lignes de code et 128 kB de mémoire vive — à l’époque, cette taille était assez importante — furent nécessaire afin d’offrir aux gens le premier outil avec lequel ils pouvaient communiquer.
Assez parlé d’histoire, please meet Eliza:
Eliza a toujours aimé être à l’écoute des gens, les faire parler afin qu’ils se sentent mieux. C’est pour cela qu’elle a choisi d’être psychiatre!
Bon, revenons aux choses sérieuses. Comment tout cela fonctionne-t-il?
Reconnaître la phrase
Eliza se base sur des techniques de Natural Language Processing (NLP) ou Traitement automatique du language naturel.
D’abord, les mots sont classés par type: nom, verbe, déterminant, adjectif, pronom, etc.
[nom] → enfant, garçon, fille, pomme
[verbe] → mange, mangent, dort
[déterminant] → le, la, les, un, une, des
Les types peuvent être regroupés pour en former d’autres plus généraux. Puis, on établit des règles qui représentent les structures des phrases. Voici des exemples de règles:
[1] [phrase] → [groupe nominal][groupe verbal]
[2] [groupe nominal] →[déterminant][nom]
[3] [groupe verbal] →[verbe]
[4] [groupe verbal] →[verbe][groupe nominal]
Les règles 3 et 4 définissent deux formes possibles de groupes verbaux: les groupes avec des verbes intransitifs (règle 3), et les groupes avec des verbes transitifs (règle 4). On peut rajouter autant de règles que l’on veut, et plus il y a de règles, plus notre programme comprend ce qu’on lui dit.
Ainsi, lorsqu’on donne une phrase en entrée à notre programme, ce dernier est capable de reconnaître sa syntaxe et de construire l’arbre syntaxique qui représentera alors notre phrase.
Prenons l’exemple de la phrase très simple: le garçon mange une pomme. Le programme assigne à chaque mot le type qui lui correspond, puis, à partir des règles mentionnées plus haut, regroupe ces types au fur et à mesure afin d’arriver au sommet (ici le type “phrase”). L’arbre ci-dessous est en effet construit de bas en haut:
A présent, notre programme est capable de comprendre que l’action réalisée est “manger”, qu’elle a été faite par un “garçon”, sur une “pomme”. Maintenant, c’est à lui de vous répondre.
Répondre correctement
Au cas où vous pensiez que les chatbots sont très intelligents, désolée de vous décevoir, mais leurs réponses sont préprogrammées. A partir de reconnaissance de patterns grâce à la méthode expliquée plus haut, ils sont capable de vous répondre de façon quasi-correcte.
Si vous essayez de discuter avec Eliza, vous allez rapidement comprendre qu’elle ne fait que reformuler en question ce que vous venez de lui dire. Pour vous inciter à parler, Eliza peut vous proposer de lui parler de votre famille, des machines... Lorsque vous affirmez une proposition “A”, Eliza vous dira “Pourquoi dites-vous que A?” ou “Dites m’en plus sur A?”, en fonction du pattern reconnu. C’est pour cela qu’Eliza a été comparée à un psychiatre qui ne parle pas beaucoup et vous encourage à lui parler de vos problèmes.
Ah! Et si à un moment vous obtenez comme réponse “Je comprends”, sachez qu’il s’agit d’une proposition abusive: Eliza n’a aucune idée de ce que vous lui racontez.
Malgré ses limites, Eliza a réussi à conquérir le cœur de ses utilisateurs, et certains d’entre eux se sont même attachés émotionnellement à elle.
Les chatbots d’aujourd’hui
Eliza eut plusieurs liaisons, l’une des plus connues fut celle qu’elle eut avec Apple, et de leur union naquit Siri en 2011. Puis, en 2014, ce fut avec Amazon qu’elle donna vie à Alexa, et j’en passe.
Bien sûr les chatbots évoluent, deviennent de plus en plus performants, et sont capables de reconnaître des phrases complexes et de répondre de manière précise. Mais des difficultés sont toujours rencontrées et ceci est dû à la complexité des langues. Par exemple, dans la phrase “il est de l’est”, une machine trouvera des difficultés à savoir que le premier “est” est un verbe, alors que le second est un nom. C’est ce qu’on appelle une ambiguïté syntaxique.
Quant à l’ambiguïté sémantique, il s’agit de la confusion générée par une phrase qui peut avoir deux sens différents, par exemple: “Sylvain a vu un homme avec un télescope”. Qui avait le télescope? Sylvain, ou l’homme observé? Hors contexte, même un humain serait incapable de répondre.
Viendra-t-il un jour où on pourra discuter avec les machines? A suivre.
Références: