ACCUEIL MON ITCH.IO MA CHAINE ME CONTACTER

Générateur de mots aléatoires Anglais

Les chaines de Markov au secours des langues

Aller directement au générateur

INTRODUCTION


De façon très générale, il existe deux types de langue :

  • Les langues syllabiques comme le Français, l'Italien, l'Espagnol
  • Les langues accentuelles comme l'Anglais, l'Allemand, le Russe
Comparons le Français et l'Anglais qui sont les deux langues que je maîtrise le mieux. ( même si je ne suis pas le dernier pour faire des fautes d'orthographe en Français et que je suis loin de lire d'écrire et de parler l'Anglais courrament...)

En Français les syllabes ont peu de sens. Des syllabes comme "MI" - "TO" -"PRA" - etc, ne veulent rien dire en elle même, ce sont juste des sons.
Bien évidemment certaines syllabes sont des mots comme "SA" , "LA" , "DE", mais collez les ensemble et elles perdent leur signification pour désigner un tout nouveau mot : "SALADE".
En Français les mots monosyllabiques existent, mais sont assez rares et souvent courts ( entre 2 et 4 lettres). En voici quelques exemples :
"LIT" - "CHAT" - "LOUP" - "DENT" - "TRAIN" - "CLOWN" - "SCEAU" , ( les plus long que j'ai trouvé sont de 5 lettres )
Dès lors, quitte à se concentrer sur les syllabes avec peu de sens, nous pouvons les considérer comme des briques élémentaires permettant de créer de nouveaux mots.

En Anglais les choses sont différentes. Si je suis capable d'inventer quantité de mots en Francais, je suis bien incapable d'inventer un mot anglais. Le fait que je ne sois pas Anglais joue surement un rôle là dedans, mais à mon avis ce n'est pas la seule difficulté.
Bien évidemment il existe des syllabes, mais celle-ci sont beaucoup plus complexes et souvent plus riches de sens. D'ailleurs il existe énormément de mots monosyllabiques qui de plus peuvent être de longueur assez conséquente. En voici une liste non exhaustive :
"BUT" - "YES" - "NO" - "WIN" - "WALKED" - "CAUSED" - "STRENGTHED" - "SCROOTCHED" - "SCRAUNCHED"
Du coup en anglais nous n'avons pas d'autre choix que de considérer chaque lettre comme une brique élémentaire, et c'est là que les choses se compliquent légèrement.

LA METHODE


Un mot c'est une suite de lettres, donc un mot aléatoire c'est une suite aléatoire de lettres.
Cependant nous ne pourrons pas tirer chacune de ces lettres totalement au hasard avec une loi uniforme et indépendemment les unes des autres et ceci pour deux raisons :

  • Notre mot aléatoire aura de grandes chances d'être imprononçable
  • Dans l'éventualité où il serait prononçable, il ne sonnerait probablement pas anglais ( ou tout autre langue )
Notre mot va donc se construire lettre par lettre, et la futur lettre dépendra des lettres précédentes. Ceci dit pour simplifier le problème nous pouvons considérer que la futur lettre ne dépendra que de la lettre précédente, ce qui nous amène à penser un mot comme une chaine de Markov homogène
Il faudrait donc connaître les probabilités conditionnelles d'apparition de chaque lettre sachant chacune des autres.
Un tableau qui ressemblerait grosso-modo à ca :

Future lettre
A B C ...
lettre connu A \(p_A(A)\) \(p_A(B)\) \(p_A(C)\)
B \(p_B(A)\) \(p_B(B)\) \(p_B(C)\)
C \(p_C(A)\) \(p_C(B)\) \(p_C(C)\)
...


J'avais arrété mon délire là lorsque je suis tombé sur cette vidéo de science étonnante !
Après cette vidéo, je me suis dit deux choses :
  • Premièrement j'ai eu plus ou moins la même idée que David Louapre ce qui n'est pas rien , car je suis plutôt fan de ses vidéos. Ceci dit n'importe quelle personne avec un minimum de bagage scientifique et voulant générer des mots lettre par lettre pense aux chaines de Markov !
  • deuxièmement je n'ai plus d'excuse pour ne pas coder mon propre générateur de mots aléatoires
Du coup vous trouverez en bas de page mon propre générateur de mots aléatoires Anglais. Vous pourrez générer des mots de 3 à 6 lettres .

MES AJOUTS PAR RAPPORT A LA VIDEO DE SCIENCE ETONNANTE


Je pense que dans sa vidéo, David Louapre passe sous silence quelques subtilités de son code.

Par exemple en Francais, la probabilité d'avoir un "L" après un "L" est assez élevée ou en tout cas pas négligeable, par contre la probabilité d'avoir 3 "L" qui se suivent est nulle. Or dans la vidéo ce genre de cas ne semble jamais arriver.
Il gère donc forcément dans son code ce genre de pathologie.
Voici les règles auxquelles j'ai pensé pour ma part :

  • il ne doit pas y avoir trois lettres identiques qui se suivent ( exemple "LLL" )
  • un mot ne doit pas commencer par deux lettres identiques

CONCLUSION


Mon générateur ne fait clairement pas de mots aussi joli et prononcable que dans la vidéo de science étonnantes.
Les explications possibles seraient :

  • Mon dictionnaire de départ est trop petit ? C'est un dictionnaire des 3000 mots les plus utilisés en anglais. C'est peu et à la fois beaucoup et à mon humble avis plus de mots ne changeraient les probabilités conditionnelles qu'à la marge.
  • Mes deux règles de fabrication des mots ne sont pas adaptées à l'anglais et il en faudrait d'autres
  • Le modèle de la chaine de Markov n'est pas adapté à l'anglais : les probabilités devraient dépendre de toutes les lettres précédentes ( Mais là le tableau des probabilités conditionnelles devient compliqué à écrire )
Cela étant dit, il apparait assez souvent dans le générateur des mots anglais déjà existant, et certains de ces mots pourraient tout à fait se retrouver dans le dictionnaire anglais !