def generate_food_chains(): words = [] food_words = Food_Word.get_all_words() dishes = Dish.get_all_dishes() words.extend(food_words) words.extend(dishes) # Generate Markov chains. # Since dish names are short, I'm using an n-gram size of 1. for i in range(len(words)): word = words[i] for j in range(len(word) - 1): char = word[j] next = word[j + 1] if CHAINS.get(char): CHAINS[char].append(next) else: CHAINS[char] = [next]