2017-02-22 53 views
2

我使用Tensorflow的translation model(经过一些修改)制作了一个聊天机器人,为它提供了来自Ubuntu Dialogue语料库的消息响应对。 我在想如果有人对我在对话中如何处理上下文有任何想法? 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

我目前正在研究生成式聊天机器人,它看起来像bot-context更适合于检索 – siljech