Open FrankChen021 opened 6 years ago
Link
import string import itertools import random initial_consonants = (set(string.ascii_lowercase) - set('aeiou') # remove those easily confused with others - set('qxc') # add some crunchy clusters | set(['bl', 'br', 'cl', 'cr', 'dr', 'fl', 'fr', 'gl', 'gr', 'pl', 'pr', 'sk', 'sl', 'sm', 'sn', 'sp', 'st', 'str', 'sw', 'tr']) ) final_consonants = (set(string.ascii_lowercase) - set('aeiou') # confusable - set('qxcsj') # crunchy clusters | set(['ct', 'ft', 'mp', 'nd', 'ng', 'nk', 'nt', 'pt', 'sk', 'sp', 'ss', 'st']) ) vowels = 'aeiou' # we'll keep this simple # each syllable is consonant-vowel-consonant "pronounceable" syllables = map(''.join, itertools.product(initial_consonants, vowels, final_consonants)) # you could trow in number combinations, maybe capitalized versions... def gibberish(wordcount, wordlist=syllables): return ' '.join(random.sample(wordlist, wordcount)) >>> len(syllables) 5320 >>> gibberish(4) 'nong fromp glosk zunt' >>> gibberish(5) 'samp nuv fog blew grig' >>> gibberish(10) 'strot fray hag sting skask stim grun prug spaf mond'
Link