Link Search Menu Expand Document

Rasa 常见问题

案例:如何提高意图分类准确率?

为了提高意图分类的准确性,每个意图需要多个示例话语,因为这些示例将用于训练意图分类模型。 具有不同意图的示例不应重叠。 一个典型的例子是发货编号与订单编号。 如果客户提供了一个号码,则可能很难确定它是运输号码还是订单号码。 最好将该号码作为意图,然后根据上下文将该号码分配给运输号码或电话号码的插槽。

如果您发现意图识别准确率不够高,请依次确认:

  • 是否存在类似的未合并意图。 如果有,请将意图合并并保存到意图列表中以供重复使用。
  • 意图中的示例是否太少。 如果示例数量少于3个,或者不同意图的示例数量不平衡,请酌情添加更多示例。
  • 用于测试的示例是否存在于两个或多个意图中。 如果存在,请重新组织您的意图。 请不要将相同或相似的示例放入不同的意图中,这会混淆模型。

案例:在表单中填充相似的槽位

场景:在用户信息收集表单中,需要通过三轮对话收集用户的姓氏、中间名和名字。

常见做法的问题:通常,我们在每个槽集合节点之后添加一个用户节点。 人们可能会发现这种方法不起作用,因为 NLU 组件可能无法准确识别用户的输入,这意味着模型无法区分用户是指姓氏、名字还是中间名,除非模型执行上下文相关操作。 敏感意图分类。

“我们的解决方案”:一种解决方案是尽可能地合并意图。 在这种情况下,我们可以按照以下步骤操作:

  1. 创建“名称”意图并提供具有不同姓氏、名字和中间名的示例。 示例应该尽可能多样化,并将它们保存在意图模板中。
  2. 在“项目视图”-“意图”中,找到新创建的意图并添加映射规则。 在这里,您可以选择“输入文本”将所有用户输入填充到相应的插槽中。
  3. 将此意图添加到表单中的每个插槽集合项中。

通过遵循这些步骤,我们可以提高意图识别的准确性,并根据用户输入成功填充槽位。

案例:中断后恢复表格

场景:用户通过询问与表单无关的问题来中断表单。 我们希望聊天机器人回答她的问题,然后返回表单。

常见做法的问题:尽管我们可能已经在表单之外或流程的其他部分描述了用户的问题和系统的响应,但我们希望聊天机器人能够理解用户的问题并返回到当前的表单逻辑。 然而,实际上,表单的决策逻辑是除非明确指示,否则将默认退出表单。 因此,即使用户的问题已在流程的其他部分得到解答,表单也不会返回到其中断的位置。

我们的解决方案:将用户问题放在常见问题解答模块中,将更复杂的问题放在表单的中断部分中。 只有表单中的常见问题解答和中断部分可以允许表单在回复用户后恢复。

通过实施这种方法,聊天机器人可以提供用户问题的答案,并在解决中断后返回表单。

案例:RASA 常见问题解答与基于 GPT 的常见问题解答

RASA FAQ 是一个分类模型。 基于LLM的FAQ是基于嵌入的排名模型+检索模型。 排名模型可以处理更多数量的问题,因此更具可扩展性。 它也不需要很多训练示例。