首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >精确文本生成

精确文本生成
EN

Stack Overflow用户
提问于 2017-06-13 14:23:36
回答 2查看 844关注 0票数 5

我有一个聊天应用程序,可以处理预定义的信息。数据库有大约80个预定义的对话,每个会话有5个可能的响应。为了澄清,这里有一个例子:

代码语言:javascript
复制
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种可能的答复,例如:

代码语言:javascript
复制
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哨所。虽然RNN可以在旧的基础上生成新的内容,但是新的内容是随机的,没有意义的。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-16 08:31:14

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

接下来是question和可能的responses之间的关系。这告诉我,在你的谈话中有一定的语义学。这意味着它不是随机的,生成的响应至少应该尝试“融入”到一些相关的响应中。像潜Dirichlet分配这样的东西,可以根据数据找到合适的类别和主题,但是以相反的方式--基于主题(问题)--你需要找到至少在某种程度上相关的数据(响应)。也许是某种将生成的文本分割成多个部分的方法,然后将这些部分向量化,并使用类似于文件距离算法的方法来找到紧密匹配?潜在语义分析也可以派上用场,因为实际上,从一个词/向量矩阵中,您需要尽可能地减少矩阵,同时保持相似之处。

票数 4
EN

Stack Overflow用户

发布于 2017-06-20 02:39:10

我建议使用PPDB http://www.cis.upenn.edu/~ccb/ppdb/来调整短语以扩展您的培训数据。查看本文,例如:https://www.aclweb.org/anthology/P/P16/P16-2.pdf#page=177,您可以使用类似的方法对每个句子进行重排。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44524279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档