
Un algorithme rapide pour créer des mots
Comprenez-vous cette phrase ?
« Et cet alînté, au lieu de duesaurer que je ne manrenais pas pranchir devant des dones reacia de déffolépos, avait commencé à péesser, fadrisant que c’était rontéentit une méflée pour hâtosers, que je ne lui imapérais plus jamais rien. »
Si vous n’avez pas très bien compris ce texte, c’est tout à fait normal. Sans doute vous comprendrez beaucoup mieux celui-ci :
« Et cet imbécile, au lieu de comprendre que je ne voulais pas faire devant des tiers étalage de pourboires, avait commencé à trembler, supposant que c’était fini une fois pour toutes, que je ne lui donnerais plus jamais rien. »
C’est un extrait du roman de Marcel Proust « À la recherche du temps perdu ». Que s’est-il passé dans la première version de cet extrait ? Si vous pensez que nous avons remplacé certains mots par leurs synonymes, ce n’est pas vraiment cela. On ne les a pas non plus permuté par des mots au hasard. Mais c’est presque cela !
Les mots que vous ne comprenez pas (« alînté », « duesaurer », « manrenais », « pranchir », « dones », « reacia », « déffolépos », « péesser », « fadrisant », « rontéentit », « méflée », « hâtosers », « imapérais ») sont bien choisis aléatoirement, non pas parmi des mots appartenant à la langue française, mais plutôt parmi des mots entièrement créés par un processus algorithmique !
Créer un mot est un processus assez facile.
On pourrait tout simplement fixer la longueur de notre mot, par exemple 8, et choisir aléatoirement 8 caractères parmi les caractères possibles de la langue française. Nous aurions, par exemple, quelque chose comme ça : « hzsqçèit ». Le problème est que ce mot n’est pas tout à fait clair : il n’a pas du tout l’air d’être un mot que nous pourrions définir comme « français ». Notamment car il ne respecte pas les règles d’enchaînement des lettres typiques de la langue française : par exemple, après un « q » il n’y a jamais un « ç ».
Pour faire cela, il faut tout simplement s’appuyer sur les statistiques !
La première étape de ce procédé algorithmique est de calculer la probabilité qu’une lettre de la langue française soit suivie par une autre. Pour cela nous avons utilisé tous les mots contenus dans le roman de Marcel Proust « À la recherche du temps perdu », facilement disponible dans la librairie R “proustr” : https://cran.r-project.org/web/packages/proustr/vignettes/gettingstarted.html.
Par la suite, nous avons calculé la probabilité qu’une lettre a de débuter un mot, ainsi que sa probabilité d’être en dernière position.
Après avoir généré ces statistiques, nous avons appliqué un processus stochastique, appelé « les chaînes de Markov« , qui permet de créer des suites qui respectent des probabilités de transition. L’objectif est donc atteint : l’algorithme va générer des mots qui respectent les suites naturelles de la langue française.
L’algorithme que nous avons travaillé se déploie en 5 étapes :
- en fonction de la longueur des mots français, il choisit aléatoirement un nombre N qui représentera la quantité des caractères que nous allons avoir dans notre mot ;
- il choisit la première lettre en fonction de la probabilité que chaque lettre a de débuter un mot ;
- il choisit les autres N-3 lettres qui suivent la première en s’appuyant sur les statistiques d’enchaînement des lettres, calculées grâce au roman de Proust ;
- il choisit la dernière lettre en fonction de la probabilité que chaque lettre a de terminer un mot ;
- il choisit l’avant dernière lettre en fonction des probabilités de suite de la lettre qui la précède et de la dernière lettre qui a été choisie dans l’étape précédente.
Et voilà ! Nous avons créé des mots entièrement inexistants mais qui, visuellement et logiquement, ne nous dérangent pas particulièrement car ils « semblent » provenir de la langue française.
Nous tenons à remercier David Louapre, vulgarisateur scientifique, qui nous a donné envie de nous amuser à créer nos propres mots français. En particulier, nous vous recommandons fortement sa chaîne YouTube Science Étonnante qui est une grande source d’enrichissement intellectuel !