我正在开发一个聊天机器人,它会询问用户数据库中不存在的信息。
考虑数据库有每个人的 40 个详细信息:姓名、年龄、最喜欢的食物、最喜欢的餐厅、最喜欢的城市、最喜欢城市的原因、城市中最喜欢的四个东西等。
所以,问题可以是“我们叫什么名字?” “你为什么喜欢巴黎?” “说出你最喜欢巴黎的四个地方吗?”
等等
我希望这些问题由机器人即时生成,但不知道如何用英语表达这些问题。任何帮助或方向(研究论文/图书馆/代码等)将不胜感激。
我正在开发一个聊天机器人,它会询问用户数据库中不存在的信息。
考虑数据库有每个人的 40 个详细信息:姓名、年龄、最喜欢的食物、最喜欢的餐厅、最喜欢的城市、最喜欢城市的原因、城市中最喜欢的四个东西等。
所以,问题可以是“我们叫什么名字?” “你为什么喜欢巴黎?” “说出你最喜欢巴黎的四个地方吗?”
等等
我希望这些问题由机器人即时生成,但不知道如何用英语表达这些问题。任何帮助或方向(研究论文/图书馆/代码等)将不胜感激。
自然语言生成是一个广阔的领域。如果您有一个(不仅是有限的而且)足够小的可能问题集,您可以使用固定文本,这意味着您准备模板字符串,并使用数据库中的必要信息来丰富,例如
"why do you like {}?"format("Paris").
这不是最优雅的方式,但绝对是 NLP 系统中经常应用的一种方法。或者,您必须构建内容确定、文本规划、微观规划和表面实现的完整管道。第一个意味着您确定问题的内容,例如“喜欢巴黎的原因”。中间概念意味着构建一个类似于 HPSG 的结构,该结构揭示了你的表达的构成结构、语义角色、动词的论点、附属词等。表面实现可以在不使用 simpleNLG 或您选择/平台的其他工具的情况下完成。两种方式都可以用于在线生成,但第一种肯定是更少的工作。要获得良好的科学概述:https ://arxiv.org/pdf/1703.09902.pdf