Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- class MarkovChain():
- def __init__(self, order, max_gen = 50):
- self.probs = {}
- self.max_gen = max_gen
- self.order = order
- def process(self, word):
- for i in range(len(word) - self.order):
- try:
- self.probs[word[i:i + self.order]]
- except:
- self.probs[word[i:i + self.order]] = []
- self.probs[word[i:i + self.order]] += word[i + self.order]
- def generate(self):
- word = random.choice(list(self.probs.keys()))
- while len(word) < self.max_gen:
- try:
- word += random.choice(self.probs[word[-self.order:]])
- except KeyError:
- return word
- return word
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement