Les machines peuvent-elles inventer des mots ?

Par Nicolas Baille, étudiant M2 TSM

Avez-vous déjà vu I, Robot, ce film avec des robots plus vrais que nature ? À chaque fois que je vois un film de science-fiction de ce type, je me demande toujours si, avec des machines douées de parole, la langue continuerait à évoluer, ou si elle se figerait dans le temps. Créer de nouveaux mots, c’est ce qui rend une langue vivante, et les traducteurs sont en première ligne lorsqu’il s’agit de trouver des mots qui décrivent de nouveaux concepts. Bien souvent, les traducteurs proposent de nouvelles solutions pour adapter ces mots, souvent liés au domaine technologique ou à des évolutions culturelles. Ils s’arrachent les cheveux à trouver des équivalences, à mettre des gloses, etc. Ce serait tellement plus simple de créer de nouveaux mots à partir de rien… non ?

C’est ce qu’a tenté de faire David Louapre, un vulgarisateur scientifique qui, sur sa chaîne Youtube, a décrit de quelle manière il avait élaboré un programme capable de créer des mots qui sonnent bien français, tels que angerie, rumâmes ou friendeux.

Mais comment fonctionne cet algorithme, et peut-on vraiment s’en servir pour créer des mots qui tiennent la route ?

image_1

Un code simple, mais efficace

Ce programme se base en fait sur une architecture simple en deux étapes. Dans un premier temps, on lui demande d’analyser une liste de mots (ou des textes entiers) et de déterminer la probabilité qu’une lettre soit suivie d’une autre. Par exemple, il est très fortement probable qu’en français, la lettre q soit suivie d’un u. Il est en revanche beaucoup moins probable qu’elle soit suivie d’un y ou d’un autre q. De son côté, David Louapre avait utilisé des livres numérisés dans le cadre du projet Gutenberg, une bibliothèque électronique de livres tombés dans le domaine public. Une fois cette matrice de probabilités extraite, on utilise la deuxième partie du programme, qui génère des mots aléatoires en suivant ces règles. Vous pouvez retrouver la liste de mots qu’il a générés sur son blog.

Cependant, en observant cette liste, j’ai remarqué quelques anomalies : les verbes et les substantifs sont mélangés, les pluriels sont surreprésentés, et pour ce qui est des verbes, ils sont conjugués de manière aléatoire. De plus, un déterminant ne se construit pas de la même manière qu’un verbe ou qu’un adjectif. Afin d’obtenir une sortie plus « propre », j’ai donc repris son code pour l’adapter en fonction de mes propres critères.

J’ai d’abord nourri l’algorithme avec un corpus anglais : depuis Sketch Engine, j’ai extrait les 1 000 noms les plus utilisés du British National Corpus.

image_2

Une partie du corpus anglais utilisé.

Le programme a donc sorti 300 mots aléatoires dont certains sonnent bien anglais, et ressemblent à s’y méprendre à des noms que l’on pourrait effectivement croiser dans un texte, tels que famedoor, mansport, wifect ou quater. Bien sûr, la majorité des mots sortis par l’algorithme laissent à désirer, mais il faut savoir que le corpus que j’ai utilisé est relativement réduit : il ne contient en tout et pour tout que mille mots, là où David Louapre avait utilisé des livres entiers. Dans les mots de quelques caractères, on retrouve également des noms de marques, tels que nood ou dity, on peut donc imaginer que cet algorithme pourrait servir à des marketeurs en manque d’inspiration.

Curieux de pousser l’expérience plus loin, j’ai extrait les 1 000 noms les plus fréquents dans un corpus français de Sketch Engine, à savoir le French Web 2012. Vu que mon programme fonctionne mal avec les caractères spéciaux, j’ai exclu tous les mots qui en contenaient, ce qui m’a laissé avec un corpus très restreint, mais grâce auquel j’ai tout de même pu générer des mots qui sonnent français, comme doisolue, positeur, impas ou apisagne.

image_3

Pour utiliser l’algorithme, quelques bases en programmation sont requises.

Mais si la création de mots aléatoires était plutôt amusante, quelque chose clochait dans la démarche elle-même…

Ai-je vraiment créé des mots ?

Si l’on en croit la définition du CNRTL, un mot est un « [s]on ou groupe de sons articulés ou figurés graphiquement, constituant une unité porteuse de signification à laquelle est liée, dans une langue donnée, une représentation d’un être, d’un objet, d’un concept, etc. »

Les mots ne se limitent pas à des chaînes de caractères aléatoires : ils ont une histoire, mais surtout un sens. Aussi français qu’ils puissent paraître, apisagne et positeur n’ont aucun concept qui leur est rattaché naturellement, et il ne suffit pas de le décider pour qu’un mot adopte une signification. Les mots qui sont récemment entrés dans la langue française ont logiquement fait le chemin inverse : face à de nouveaux concepts, les locuteurs (et, souvent, les traducteurs) ont trouvé des mots qui leur correspondent. C’était le cas pour hipster ou Ubérisation : il ne s’agit pas de chaînes de caractères aléatoires, mais d’ensembles qui viennent de quelque part, qui ont une histoire et une bonne raison d’être formés de cette façon et pas d’une autre.

Au-delà de cette démarche à rebours, où l’on essaie de créer les mots avant de leur attribuer un sens, on peut également remettre en question l’algorithme en lui-même.

Ce programme a un défaut intrinsèque, à savoir son système de récurrence. Il part d’une lettre n, et définit la probabilité de la lettre n+1 en fonction des données qu’il a extraites du corpus. J’ai été surpris de trouver, dans ma liste de mots générés, beaucoup d’exemples avec l’enchaînement de lettres qur : l’algorithme a déterminé, logiquement, que ce qui devait suivre un q est un u. Or, un r a de fortes chances de suivre un u en français (pour, four, cour), et il a donc sorti l’enchaînement qur, bien que qu soit généralement suivi d’une voyelle (que, qui, quoi). Ce code qui ne fonctionne que d’une lettre à l’autre est donc limité : il ne raisonne qu’en termes de caractères, pas en phonèmes ou en morphèmes.

Cette machine est-elle vraiment utile ?

En fait… pas vraiment. Cette machine ne crée pas des mots, mais des coquilles vides de sens, qui n’auraient pas leur place dans un texte en français.

Pour autant, cela ne rend pas le système inutile : étant basé sur un système de corpus, on peut obtenir des résultats radicalement différents si l’on change les textes utilisés. David Louapre, à l’origine de cette « machine à créer des mots », l’avait également adaptée pour le suédois et l’allemand. Dans mon cas, je me suis amusé à utiliser une liste de noms japonais féminins pour voir ce que cela pouvait donner. Le japonais étant un système syllabique très régulier, les 300 noms générés existent en fait pratiquement tous en japonais, mais quelques-uns semblent inédits, comme Shinae ou Runko. Idéalement, on peut donc concevoir toutes sortes de mots, dans toutes les langues… Y compris fictives. Dans de tels cas, un traducteur littéraire, un traducteur de jeux vidéo ou encore un spécialiste du marketing pourraient très bien y trouver leur compte…

Liens utiles :

  • La vidéo de David Louapre sur le sujet
  • Si vous voulez utiliser l’algorithme vous-même, vous pouvez le retrouver en open source sur le blog de son créateur. Attention, quelques connaissances en Python sont nécessaires pour s’en servir.
  • Pour aller plus loin sur la création de mots en anglais, regardez le court TedX d’Erin McKean (7 minutes, en anglais).
Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s