A simple implementation of a Markov chain text generator that can work at both character and word levels.
- Character-level text generation
- Word-level text generation
- Configurable order (number of previous items to consider)
- Customizable output length
- Optional starting sequence
- Clone this repository
- Run the example:
python markov_chain.py
from markov_chain import MarkovChain
# Create a character-level model
char_model = MarkovChain(text="Your input text here", order=3, level='char')
generated_text = char_model.generate(length=100)
print(generated_text)
# Create a word-level model
word_model = MarkovChain(text="Your input text here", order=2, level='word')
generated_text = word_model.generate(length=50)
print(generated_text)
text
(str): The input text to train the model onorder
(int): The order of the Markov chain (how many previous items to consider)level
(str): Either 'char' for character-level or 'word' for word-levellength
(int): The desired length of the generated textstart
(tuple): Optional starting sequence for generation
The Markov chain model works by:
- Breaking down the input text into tokens (characters or words)
- Building a probability model based on the frequency of tokens following each sequence
- Generating new text by randomly selecting tokens based on the learned probabilities
The higher the order, the more coherent but less varied the output will be. Lower orders will produce more varied but potentially less coherent text.