Markov chain project name generator
Project description
Marko-Namo
Simple tool to generate random project or business names using a basic Markov Chain approach.
How It Words
The generator starts by creating a frequency table based on the training words supplied and the n-grams listed. Eg if our training word is hello
and our n-grams are 1 and 2, we'd get a frequency table of:
{
"h": ["e", "el"],
"he": ["l", "ll"],
"e": ["l", "ll"],
"el": ["l", "lo"],
"l": ["l", "lo", "o", null],
"ll": ["o", null],
"lo": [null, null],
"o": [null, null]
}
It then randomly selects an n-gram from the frequency table as the first letter, randomly selects a following letter and repeats until the word either ends (selects a None
) or reaches the maximum word length.
Eg if the first selected letter was e
we might go:
e
->l
->lo
-> None- Which gives
ello
How To Run
Everything is controlled via the configuration file (config.yml
)
To get started, rename the config_sample.yml
to config.yml
and remove the GoDaddy references. Then run the app:
python generate_names.py
Parameters
Parameter | Type | Description |
---|---|---|
number_of_names |
Integer | Number of names to attempt to create |
maximum_name_length |
Integer | Maximum name length. Note names can be up to length + largest n-gram in length |
n_grams |
List of integers | The word segment lengths to consider for learning and generating new words. |
extensions |
List of strings | Domain extensions to check for such as .com , .ai , etc |
training_words |
List of strings | Words to learn from and used to generate new, random, words. There's no limit to the number of words to learn from but too many will slow the program down significantly. |
Domain Name Lookup
If you'd like to check if the domain name (eg www.randomname.com
) is available for the generated names then you'll also need a GoDaddy API key. This can be generated at the following: https://developer.godaddy.com/keys
Testing
Nox is used handle test automation. To run the tests:
- Register with GoDaddy and generate OTE & PROD keys
- Set them as environment variables:
# GoDaddy OTE
GODADDY_OTE_KEY=<OTE Key>
GODADDY_OTE_SECRET=<OTE Secret>
# GoDaddy Prod
GODADDY_PROD_KEY=<Prod Key>
GODADDY_PROD_SECRET=<Prod Secret>
- Install nox if not already available
- Run the tests:
nox
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for marko_namo-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 051666f2426dd7108f351c745a4c5a7606556c8b9b888ad5f555a72efeef3e04 |
|
MD5 | 559e8f64962c44f852225d244a2bb10a |
|
BLAKE2b-256 | aeae67759eff2e90186ff4ff134d83e0d2c7251a3b84079230b8fbdcde0aa8c8 |