class ImitationModels: def __init__(self): self.imitator = None self.nick_generator = None def index(self, dimension, nb_samples=500, window_duration=10 * 60): self.imitator = self.nick_generator = None history = list(get_history()) self.imitator = {} for nickname, timed_messages in history: _, messages = zip(*timed_messages) imitator = Imitator(messages) imitator.index(dimension) self.imitator[nickname] = imitator self.nick_generator = NicknameGenerator(history, nb_samples, window_duration) def generate_nickname(self, nickname): if self.nick_generator is None: raise NotIndexed try: return self.nick_generator.generate(nickname) except NoSuchNickInGenerator: raise NoSuchNick def generate_imitation(self, nickname): if self.imitator is None: raise NotIndexed try: imitator = self.imitator[nickname] except KeyError: raise NoSuchNick else: return imitator.generate_sentence()
def index(self, dimension, nb_samples=500, window_duration=10 * 60): self.imitator = self.nick_generator = None history = list(get_history()) self.imitator = {} for nickname, timed_messages in history: _, messages = zip(*timed_messages) imitator = Imitator(messages) imitator.index(dimension) self.imitator[nickname] = imitator self.nick_generator = NicknameGenerator(history, nb_samples, window_duration)