Genere palabras y oraciones aleatorias con facilidad en Python
Repositorio de GitHub | Pypi | Documentación
Wonderwords es un paquete de Python útil para generar palabras aleatorias y oraciones aleatorias estructuradas. También viene con una colorida interfaz de línea de comandos para generar rápidamente palabras aleatorias. La última versión está disponible en GitHub, mientras que la versión estable está disponible en PYPI.
Esto es de lo que Wonderwords es capaz de:
Para instalar la última versión de Wonderwords, use su administrador de paquetes favorito para el índice de paquetes de Python para instalar el paquete wonderwords . Por ejemplo con PIP:
pip install wonderwordsPara actualizar Wonderwords con Pip Use:
pip install --upgrade wonderwordsPara verificar que la instalación funcionó, importe Wonderwords en Python:
import wonderwords Si recibe un error ModuleNotFound , asegúrese de haber instalado Wonderwords desde el paso anterior. Para obtener más problemas, abra un nuevo problema desde la página de GitHub.
Esta sección describirá brevemente el uso de Wonderwords. Dado que Wonderwords tiene una interfaz de línea de comandos y un módulo Python, encontrará dos subsecciones.
La clase base de generación de palabras aleatorias es la clase RandomWord . Puede generar palabras con el método word :
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" ]) También puede obtener una lista de todas las palabras que coinciden con algunos criterios utilizando el método 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 ) También puede generar una lista aleatoria de palabras con el método random_words . Esto es muy parecido al método de filtro, excepto que especifica la cantidad de palabras para devolver, y las palabras se eligen aleatoriamente. Si no hay suficientes palabras para satisfacer la cantidad, se plantea una excepción de NoWordsToChooseFrom :
# 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 ) Generar oraciones aleatorias es fácil de usar la clase 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 () Las palabras se organizan en categorías, como "sustantivos", "verbos" y "adjetivos". ¿Qué pasa si tuviste tus propias categorías de palabras? Puede especificar sus categorías personalizadas al instancias de la clase 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.*" )Finalmente, comenzando con la versión 2.3, Wonderwords tiene un soporte explícito para filtrar las blasfemias de las listas de palabras. Por el momento, esto es rudimentario:
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 ))Se encuentra un uso más avanzado (¡y un tutorial!) En la documentación, como agregar categorías personalizadas de palabras. La documentación completa con toda la información se puede encontrar en: https://wonderwords.readthedocs.io
Nota : Antes de usar la interfaz de línea de comandos (CLI), asegúrese de instalar todas las dependencias requeridas para la CLI usando pip install wonderwords[cli] . Wonderwords normalmente no requiere dependencias, pero usa rico para la salida colorizada en la línea de comandos.
Wonderwords también proporciona una interfaz de línea de comando, que se puede usar con el comando wonderwords . Uso:
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
Los comandos básicos son:
-w : Generar una palabra aleatoria-f : que funciona muy parecida a la función filter para devolver todas las palabras que coinciden con ciertos criterios-l LIST : Obtenga una lista de palabras aleatorias LIST-s {bb,ss,bba,s} : Genere una oración aleatoria:bb : oración de huesos desnudosss : oración simple (oración de hueso desnudo con objeto directo)bba : oración de hueso desnudo con adjetivos : Genere una oración simple con un adjetivo Durante sus primeras etapas, Wonderwords no tenía un sistema de versiones establecido y, por lo tanto, las versiones antes de v2.0.0-alpha están en desorden. Comenzando con la versión 2 Alpha, Wonderwords utiliza versiones semáticas .
Wonderwords es de código abierto y se distribuye bajo la licencia MIT. Vea la licencia para más detalles.
Todas las contribuciones son bienvenidas, y esperamos que Wonderwords continúe creciendo. Comience leyendo CONTRIBUTING.md para contribuir con pautas y cómo comenzar.
Wonderwords ha sido posible gracias a los siguientes trabajos:
profanitylist.txt de Robertjgabriel/Google-Profanity-Words bajo la licencia Apache-2.0