准确的文本生成

Ily*_*hov 5 text artificial-intelligence machine-learning generator recurrent-neural-network

我有一个使用预定义消息的聊天应用程序.数据库有大约80个预定义的对话,每个对话有5个可能的响应.为了澄清,这是一个例子:

Q: "How heavy is a polar bear?"

R1: "Very heavy?"
R2: "Heavy enough to break the ice."
R3: "I don't know. Silly question."
R4: ...
R5: ...
Run Code Online (Sandbox Code Playgroud)

假设用户将选择R3:"我不知道.傻问题"

然后该响应将有5个可能的响应,例如:

R1: "Why is that silly?"
R2: "You're silly!"
R3: "Ugh. I'm done talking to you now."
R4: ...
R5: ...
Run Code Online (Sandbox Code Playgroud)

每个回复都有5个可能的回复; 在此之后,对话将结束,并且必须开始新的对话.

所以回顾一下,我有80个手动编写的对话,每个对话有5个可能的响应,深入3层=总共10,000条消息.

我的问题:使用机器学习自动生成更多对话的最准确方法是什么?

我研究了RNN:Karparthy的RNN帖子.虽然RNN可以基于旧内容制作新内容,但新内容是相当随机且无意义的.

为了更好地理解这些对话的使用,请访问http://getvene.com/并观看预览视频.

Iva*_*vak 4

我可能会从生成文本模型开始。有一篇很好的文章使用了 Python 和 Keras(不过,您也可以将 LSTM 循环神经网络与TensorFlow一起使用)。有了一组良好且丰富的训练数据,该算法确实可以产生非常有趣的文本输出。正如上面的文章中提到的,有一个古腾堡项目,您可以在其中免费找到大量免费书籍。这应该提供足够数量的训练数据。然而,由于您可能已经玩过 RNN,我将继续进行下去。

接下来是 aquestion和 possible之间的关系responses。这告诉我,你们的对话中涉及某种语义。这意味着它不是随机的,生成的响应至少应该尝试“适应”某种相关的响应。像潜在狄利克雷分配这样的东西可以根据数据找到适当的类别和主题,但以相反的方式 - 基于主题(问题),您需要至少以某种方式找出相关数据(响应)。也许有某种方法可以将生成的文本分割成许多部分,然后对这些部分进行矢量化并使用文档距离算法之类的东西来找到最接近的匹配?潜在语义分析也是一个可以派上用场的想法,因为事实上,从单词/向量矩阵中,您需要尽可能地减少矩阵,同时仍然保留相似性。