2017-02-22 40 views
2

Я сделал чатбот, используя Tensorflow's translation model (с некоторыми изменениями), подав его парами сообщений-ответов из Ubuntu Dialogue Corpus. Мне было интересно, есть ли у кого-нибудь идеи о том, как я могу обрабатывать контекст в разговоре? I.e. Я не хочу, чтобы chatbot забыл то, что я сказал ранее, после того, как я введу новое предложение.Управление контекстом в чате

Я могу только подумать об одной стратегии, которая должна обрабатывать контекст в предварительной обработке. Допустим, что у меня есть этот разговор:

M1: Hi, how are you? 
R1: Hey, good! I just finished work at the restaurant. How are you? 
M2: Good. How was it? 
R2: Exhausting... 
M3: Many customers? 
R3: Yes, and they didn't tip well either! 

Тогда я мог бы поставить их в парах, как это: (M1-R1) (R1M2-R2), (R2M3-R3) и т.д. ... Другой вариант для сохранения контекста из M1 в каждой паре, например (M1-R1), (M1R1M2-R2), (M1R1M2R2M3-R3), но тогда продолжительность тренировочных предложений будет увеличиваться (много), что приведет к увеличению выделения памяти во время обучения, и мне, вероятно, потребуется уменьшить мою сеть (меньше нейронов в каждом слое).

Они сделали что-то подобное в this paper, но я не понимаю, как их модель построена и как она справится с этим.

ответ

0

Bot-context - классная библиотека, которая обеспечивает простой способ поддержания контекста. Связанный blog post.

+0

В настоящее время я работаю над генеративным чатботом, и похоже, что бот-контекст более подходит для поиска – siljech