Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.77 KB | None | 0 0
  1. import random
  2.  
  3. class MarkovChain():
  4.     def __init__(self, order, max_gen = 50):
  5.         self.probs = {}
  6.         self.max_gen = max_gen
  7.         self.order = order
  8.        
  9.     def process(self, word):
  10.         for i in range(len(word) - self.order):
  11.             try:
  12.                 self.probs[word[i:i + self.order]]
  13.             except:
  14.                 self.probs[word[i:i + self.order]] = []
  15.  
  16.             self.probs[word[i:i + self.order]] += word[i + self.order]
  17.  
  18.     def generate(self):
  19.         word = random.choice(list(self.probs.keys()))
  20.  
  21.         while len(word) < self.max_gen:
  22.             try:
  23.                 word += random.choice(self.probs[word[-self.order:]])
  24.             except KeyError:
  25.                 return word
  26.        
  27.         return word
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement