Example #1
0
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()
Example #2
0
    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)