在 LUIS 中训练无意图

Anu*_*rag 7 botframework azure-language-understanding

我有一个具有以下意图的旅行机器人:-

  1. BookAFlight(训练有 20 个话语)

  2. GetTicketCopy(训练有 20 个话语)

  3. CancelTicket(训练有 20 个话语)

  4. 无(默认)(当前未训练)

MS 文档表明,对于添加到其他意图的每 10 个话语,我对至少 1-2 个话语进行 None 训练。这意味着我需要说 6-12 个话语来训练 None。

我的问题是应该使用什么的话语来训练 None?

  1. 除了与我的机器人相关的所有内容(例如,我想订购比萨饼、今天的天气如何、谁是美国总统?等)

  2. 与用于训练我的其他意图的话语相对应的所有否定陈述(例如,我不想预订机票,我不想打印出来,我不想取消我的机票等)

  3. 与当前未涵盖在我的范围内但用户仍然可以向旅行机器人询问的意图相对应的所有话语(例如,我想预订出租车到机场,我的航班状态如何)

长话短说,我试图确定什么的话语应该进入我的 None 意图。None 是处理有效话语的“否定”变体的正确位置。

Nic*_*s R 2

None意图不是为“负面变化”而设计的,而是标记不由其他意图管理的所有内容。

因此,您应该添加与您的机器人无法处理但链接到您的上下文的情况相对应的话语(您的第三个想法)。

例如,在我的一个项目中,None根据我的客户日志,使用客户的其他用例(而不是我将使用机器人处理的用例)来训练意图。这有助于避免在糟糕的情况下表现出意图

  • 尝试了另一种方法。创建了一个新的意图(TraveBot_Negative_Intents)只是为了处理负面变化。在每个功能区域使用 1-2 个负面话语对其进行训练(我不想订票,不要告诉我如何取消票等)。这样我就有了一种识别所有负面变化并做出适当反应的可靠方法。现在不能让任何人单独处理当前超出范围的区域。结果看起来很有希望。很高兴听到这是否也适用于社区中的其他人。如果有/没有,请分享您的想法。 (2认同)