Quel serait le meilleur moyen d'obtenir une fonction qui renvoie un mot anglais aléatoire (de préférence un nom), sans conserver une liste de tous les mots possibles dans un fichier au préalable?
Réponses
Trop de publicités?Il y a un générateur de mots aléatoires ici - ce n'est pas en anglais mais c'est presque en anglais, c'est-à-dire que les mots sont suffisamment similaires à la langue pour qu'un utilisateur puisse les lire et les stocker dans sa mémoire à court terme.
Le code source est en C# et un peu bricolé, mais vous pourriez utiliser une approche similaire en Python pour générer beaucoup de mots sans avoir à stocker une liste massive.
Alternativement, vous pourriez appeler directement le service web sur la page de démonstration - il est hébergé chez GoDaddy, donc pas de garanties que cela fonctionnera en production !
Vous pouvez télécharger les listes "mots communs à SOWPODS et TWL" depuis http://www.math.toronto.edu/jjchew/scrabble/lists/. J'ai regroupé tous les mots de ces fichiers ensemble et la liste pesait environ 642k. Pas énorme selon toutes les normes. Cependant, les listes contiennent beaucoup de mots obscurs, car elles sont destinées à un usage au Scrabble en tournoi. La bonne chose est que les listes forment un sous-ensemble substantiel de la langue anglaise.
Eh bien, vous avez trois options :
- Intégrez la liste des mots en dur et initialisez un tableau avec celle-ci.
- Récupérez la liste depuis un emplacement sur Internet au lieu d'un fichier.
- Conservez une liste de mots possibles dans un fichier.
La seule façon d'éviter ce qui précède est de ne pas vous soucier de savoir si le mot est réel : vous pouvez simplement générer des chaînes de caractères de longueurs aléatoires. (Il n'y a aucun moyen de générer des mots de manière programmée sans une liste de dictionnaire à partir de laquelle partir.)
- Réponses précédentes
- Plus de réponses