text - 准确的文本生成

标签 text machine-learning artificial-intelligence 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: ...

假设用户会选择R3:“我不知道。愚蠢的问题”

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

R1: "Why is that silly?"
R2: "You're silly!"
R3: "Ugh. I'm done talking to you now."
R4: ...
R5: ...

每个响应都有 5 个可能的响应;之后,对话将结束,必须开始新的对话。

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

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

我研究了RNN:Karparthy's RNN post 。 虽然 RNN 可以在旧内容的基础上制作新内容,但新内容相当随机且无意义。

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

最佳答案

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

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

关于text - 准确的文本生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44524279/

相关文章:

java - 想要为我的基于文本的游戏逐字符打印文本,但它在总延迟后打印出整个文本

c++ - 用于转换为格式化文本的轻量级 HTML 解析器?

python - 设置 Keras 模型可训练与使每一层可训练之间有什么区别

python-3.x - tensorflow.contrib.learn.DNNclassifier 缺少 1 个必需的位置参数 : 'feature_columns'

machine-learning - 神经网络对于输入过于敏感

algorithm - Puyo Puyo游戏如何实现AI?

python - 如何向这些矩形添加文本?

excel - 如何使用 Excel 文件中的文本数据列作为 x 轴进行绘图?

python - 机器学习标准化的目的是什么?

machine-learning - 多个传感器=多个深度学习模型?