2016-12-09 19:37:55 +01:00
|
|
|
from src.config import redis, tokenizer
|
2016-11-12 23:25:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
class DataLearner:
|
2016-12-09 19:37:55 +01:00
|
|
|
def __init__(self):
|
|
|
|
self.redis = redis
|
|
|
|
self.tokenizer = tokenizer
|
2016-11-12 23:25:58 +01:00
|
|
|
|
2016-12-09 19:37:55 +01:00
|
|
|
def learn(self, message):
|
|
|
|
pipe = self.redis.instance().pipeline()
|
2016-11-12 23:25:58 +01:00
|
|
|
|
2016-12-09 19:37:55 +01:00
|
|
|
words = self.tokenizer.extract_words(message)
|
|
|
|
for trigram in self.tokenizer.split_to_trigrams(words):
|
|
|
|
key = self.tokenizer.to_key(message.chat_id, trigram[:-1])
|
|
|
|
last_word = trigram[-1]
|
2016-11-12 23:25:58 +01:00
|
|
|
|
2016-12-09 19:37:55 +01:00
|
|
|
pipe.sadd(key, last_word)
|
2016-11-12 23:25:58 +01:00
|
|
|
|
2016-12-09 19:37:55 +01:00
|
|
|
pipe.execute()
|