【发布时间】:2017-02-22 14:18:12
【问题描述】:
我使用 Tensorflow 的 translation model(进行了一些修改)制作了一个聊天机器人,通过 Ubuntu 对话语料库中的消息-响应对向它提供。 我想知道是否有人对我如何处理对话中的上下文有任何想法?即我不想让聊天机器人在我输入一个新句子后忘记我之前说过的话。
我只能想到一种策略,就是在预处理中处理上下文。假设我有这个对话:
M1:嗨,你好吗? R1:嘿,很好!我刚在餐厅完成工作。你好吗? M2:好。它曾是怎样的? R2:精疲力竭…… M3:很多客户? R3:是的,他们也没有给小费!
然后我可以像这样将它们成对放置:(M1-R1)、(R1M2-R2)、(R2M3-R3) 等...另一种选择是在每对中保存来自 M1 的上下文,例如(M1-R1),(M1R1M2-R2),(M1R1M2R2M3-R3) - 但是训练句子的长度会增加(很多) - 导致训练期间分配更多的内存,我可能需要减少我的网络(每层中的神经元更少)。
他们在this paper 中做了类似的事情,但我不明白他们的模型是如何构建的以及它将如何处理这个问题。
【问题讨论】:
-
你有解决办法吗?
标签: tensorflow nlp chatbot