2017-02-22 50 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