询问信息获取的动态问题

Ask dynamic questions for information acquisition

我正在开发一个聊天机器人,它可以向用户询问数据库中不存在的信息。

考虑数据库中每个人的 40 个详细信息:姓名、年龄、最喜欢的食物、最喜欢的餐厅、最喜欢的城市、最喜欢城市的原因、城市中四个最喜欢的事物等

所以,问题可以是 "What is our name?" "Why do you like Paris?" "Name four places in Paris that you like the most?"

等等

我希望机器人即时生成这些问题,但不知道如何用英语表达这些问题。 任何帮助或指导(研究 papers/libraries/codes 等)将不胜感激。

自然语言生成是一个广阔的领域。如果您有一组(不仅有限而且)足够小的可能问题,您可以使用罐头文本,这意味着您准备模板字符串,您可以使用数据库中的必要信息来丰富它,例如

"why do you like {}?"format("Paris"). 

这不是最优雅的方法,但绝对是NLP系统中经常使用的方法。 或者,您必须构建内容确定、文本规划、微观规划和表面实现的完整管道。 第一个意味着您确定问题的内容,例如"reasons for liking paris"。中间概念意味着构建一个类似于 HPSG 的结构,它揭示了你的表达的构成结构、语义角色、动词的论元、副词等。 表面实现可以使用 simpleNLG 或您的 choice/platform 的其他工具来完成。 在线生成这两种方式都可以,但是第一种肯定工作量小。 要获得良好的科学概述:https://arxiv.org/pdf/1703.09902.pdf