Générer des mots et des phrases aléatoires avec facilité à Python
Référentiel GitHub | PYPI | Documentation
Wonderwords est un package Python utile pour générer des mots aléatoires et des phrases aléatoires structurées. Il est également livré avec une interface de ligne de commande colorée pour générer rapidement des mots aléatoires. La dernière version est disponible sur GitHub tandis que la version stable est disponible sur PYPI.
Voici de quoi Wonderwords est capable:
Pour installer la dernière version de Wonderwords, utilisez votre gestionnaire de packages préféré pour l'index Python Package pour installer le package wonderwords . Par exemple avec PIP:
pip install wonderwordsPour mettre à niveau les mots de merde avec l'utilisation de PIP:
pip install --upgrade wonderwordsPour vérifier que l'installation a fonctionné, importez des mots merveilleux dans Python:
import wonderwords Si vous obtenez une erreur ModuleNotFound , assurez-vous que vous avez installé Wonderwords à partir de l'étape ci-dessus. Pour d'autres problèmes, ouvrez un nouveau numéro de la page GitHub.
Cette section décrira brièvement l'utilisation des mots de merde. Étant donné que Wonderwords a une interface de ligne de commande et un module Python, vous trouverez deux sous-sections.
La classe de génération de mots aléatoires de base est la classe RandomWord . Vous pouvez générer des mots avec le word méthode:
from wonderwords import RandomWord
r = RandomWord ()
# generate a random word
r . word ()
# random word that starts with a and ends with en
r . word ( starts_with = "a" , ends_with = "en" )
# generate a random noun or adjective, by default all parts of speech are included
r . word ( include_parts_of_speech = [ "nouns" , "adjectives" ])
# generate a random word between the length of 3 and 8 characters
r . word ( word_min_length = 3 , word_max_length = 8 )
# generate a random word with a custom Python regular expression
r . word ( regex = ".*a" )
# some of the words in the default word lists have spaces, such as 'contact lens'
# this option disables them
r . word ( exclude_with_spaces = True )
# you can combine multiple filtering options
r . word ( starts_with = "ru" , word_max_length = 10 , include_parts_of_speech = [ "verbs" ]) Vous pouvez également obtenir une liste de tous les mots correspondant à certains critères en utilisant la méthode filter :
# get a list of ALL words that start with "am"
r . filter ( starts_with = "am" )
# you can use all the options found in the word method:
r . filter ( ends_with = "k" , include_parts_of_speech = [ "verbs" ], word_min_length = 4 ) Vous pouvez également générer une liste aléatoire de mots avec la méthode random_words . Cela ressemble beaucoup à la méthode du filtre, sauf que vous spécifiez la quantité de mots à retourner, et les mots sont choisis au hasard. S'il n'y a pas assez de mots pour satisfaire le montant, une exception NoWordsToChooseFrom est élevée:
# get a list of 3 random nouns
r . random_words ( 3 , include_parts_of_speech = [ "nouns" ])
# you can use all the options found in the word method
r . random_words ( 5 , starts_with = "o" , word_min_length = 10 )
# if the amount of words you want to get is larger than the amount of words
# there are, a NoWordsToChooseFrom exception is raised:
r . random_words ( 100 , starts_with = "n" , word_min_length = 16 )
# there are less than 100 words that are at least 16 letters long and start with
# n, so an exception is raised
# you can silence the NoWordsToChooseFrom exception and return all words even
# if there are less, by setting return_less_if_necessary to True
r . random_words ( 100 , starts_with = "n" , word_min_length = 16 , return_less_if_necessary = True ) La génération de phrases aléatoires est facile en utilisant la classe de RandomSentence :
from wonderwords import RandomSentence
s = RandomSentence ()
# Get a random bare-bone sentence
s . bare_bone_sentence ()
# Get a random bare-bone sentence with a direct object
s . simple_sentence ()
# Get a random bare-bone sentence with an adjective
s . bare_bone_with_adjective ()
# Get a random sentence with a subject, predicate, direct object and adjective
s . sentence () Les mots sont organisés en catégories, telles que les «noms», les «verbes» et les «adjectifs». Et si vous aviez vos propres catégories de mots? Vous pouvez spécifier vos catégories personnalisées lors de l'instanciation de la classe RandomWord :
from wonderwords import RandomWord
cars = [ "Chevrolet" , "Subaru" , "Tesla" ]
airplanes = [ "Boeing" , "Airbus" , "Cessna" ]
w = RandomWord ( cars = cars , airplanes = airplanes )
# Will return a random car or airplane
w . word ()
# Will return a random car
w . word ( include_categories = [ "cars" ])
# You can also mix and match custom categories with defaults
from wonderwords import Defaults
proper_nouns = [ "Austin" , "Seattle" , "New York" ]
w2 = RandomWord ( proper_nouns = proper_nouns , common_nouns = Defaults . NOUNS )
# Will return either Seattle or seat
w . word ( regex = "[Ss]eat.*" )Enfin, à partir de la version 2.3, Wonderwords a une prise en charge explicite pour filtrer les profanations à partir de listes de mots. Pour le moment, c'est rudimentaire:
from wonderwords import is_profanity , filter_profanity
# Test against words that could possibly be offensive. Good of user-facing apps.
is_profanity ( "apple" ) # False
# Can be done with a list
words = [ ... ]
# The function returns a generator, so we convert it to a list
words_clean = list ( filter_profanity ( words ))Une utilisation plus avancée (et un tutoriel!) Se trouve dans la documentation, comme l'ajout de catégories de mots personnalisées. La documentation complète avec toutes les informations peut être trouvée sur: https://wonderwords.readthedocs.io
Remarque : Avant d'utiliser l'interface de ligne de commande (CLI), assurez-vous que vous avez installé toutes les dépendances requises pour la CLI à l'aide pip install wonderwords[cli] . Wonderwords ne nécessite normalement aucune dépendance, mais utilise Rich pour la sortie colorisée dans la ligne de commande.
Wonderwords fournit également une interface de ligne de commande, qui peut être utilisée avec la commande wonderwords . Usage:
usage: wonderwords [-h] [-w] [-f] [-l LIST] [-s {bb,ss,bba,s}] [-v] [-S STARTS_WITH] [-e ENDS_WITH]
[-p {noun,verb,adjective,nouns,verbs,adjectives} [{noun,verb,adjective,nouns,verbs,adjectives} ...]]
[-m WORD_MIN_LENGTH] [-M WORD_MAX_LENGTH] [-r REGEX] [-x] [-d DELIMITER] [-E]
Generate random words and sentences from the command line. Here is a full list of available commands. To learn more
about each command, go to the documentation at https://wonderwords.readthedocs.io
options:
-h, --help show this help message and exit
-w, --word, --random-word
generate a random word
-f, --filter get a list of all known words matching the criteria specified
-l LIST, --list LIST return a list of a certain length of random words
-s {bb,ss,bba,s}, --sentence {bb,ss,bba,s}
return a sentence based on the structure chosen
-v, --version print the version number and exit
-S STARTS_WITH, --starts-with STARTS_WITH
strings the random word(s) should start with
-e ENDS_WITH, --ends-with ENDS_WITH
strings the random word(s) should end with
-p {noun,verb,adjective,nouns,verbs,adjectives} [{noun,verb,adjective,nouns,verbs,adjectives} ...], --parts-of-speech {noun,verb,adjective,nouns,verbs,adjectives} [{noun,verb,adjective,nouns,verbs,adjectives} ...]
only include certain parts of speech (by default all parts of speech are included)
-m WORD_MIN_LENGTH, --word-min-length WORD_MIN_LENGTH
minimum length of the word(s)
-M WORD_MAX_LENGTH, --word-max-length WORD_MAX_LENGTH
maximum length of the word(s)
-r REGEX, --regex REGEX, --re REGEX, --regular-expression REGEX
a python-style regular expression for the word(s) to match
-x, --exclude-with-spaces
exclude open compounds, such as 'contact lens'
-d DELIMITER, --delimiter DELIMITER
specify the delimiter to put between a list of words, default is ', '
-E, --suppress-error-on-less
suppress errors when less words are returned in a list then wanted
Les commandes de base sont:
-w : générer un mot aléatoire-f : Ce qui fonctionne un peu comme la fonction filter pour renvoyer tous les mots correspondant à un certain critère-l LIST : Obtenez une liste de mots aléatoires LIST-s {bb,ss,bba,s} : générer une phrase aléatoire:bb : phrase osseuse nuess : phrase simple (phrase osseuse nue avec objet direct)bba : phrase osseuse nue avec adjectifs : Générez une phrase simple avec un adjectif Au cours de ses premières étapes, Wonderwords n'avait pas de système de version de version définie et, par conséquent, les versions avant v2.0.0-alpha sont en désarroi. En commençant par la version 2 Alpha, Wonderwords utilise le versioning sématique .
Wonderwords est open source et est distribué sous la licence MIT. Voir la licence pour plus de détails.
Toutes les contributions sont les bienvenues et nous espérons que Wonderwords continuera de croître. Commencez par lire CONTRIBUTING.md pour contribuer aux directives et comment commencer.
Wonderwords a été rendu possible grâce aux travaux suivants:
profanitylist.txt de Robertjgabriel / Google-Profanity-Words sous la licence Apache-2.0