处理聊天机器人中的上下文

时间:2017-02-22 14:18:12

标签: tensorflow nlp chatbot

我使用Tensorflow的translation model(经过一些修改)创建了一个聊天机器人,通过Ubuntu对话语料库提供消息响应对。 我想知道是否有人对如何在对话中处理上下文有任何想法? I.e.我输入一个新句子后,我不希望聊天机器人忘记我之前所说的内容。

我只能考虑一种策略,即处理预处理中的上下文。让我们说我有这个对话:

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做了类似的事情,但我不明白他们的模型是如何构建的以及如何处理它。

1 个答案:

答案 0 :(得分:0)

this answer是一个很酷的库,提供了一种维护上下文的简便方法。相关的Bot-context