Rasa NLU简单来说使用NLP(自然语言处理)来理解您告诉机器人的内容。
它会理解您所说的话并将其匹配到您定义的某个意图。
另一方面,Rasa Core处理对话流程。stories markdown文件列出了它们的意图和动作。
因此,当NLU给出意图时,Core执行相应的动作,然后机器人回复该操作。
RASA NLU是意图/实体分类器:
您可以使用带有相关意图(和实体)标签的多个示例句子对分类器进行离线训练。
随后,在运行时,您向分类器提交一个输入句子,然后得到一个意图标签和与该意图相关的可能实体列表,作为分类的结果。
RASA Core是一个(概率性)对话管理器:
它决定/猜测聊天机器人对话的下一个可能“状态”(再次只是一个意图)。它使用RASA的特殊性进行离线训练:“stories”。这些是可能的意图序列,遵循开发人员在训练阶段提交的对话示例。
随后,在运行时,当用户提交一个句子(因此是先前提到的NLU组件猜测的相应意图)时,RASA Core猜测对话的“可能”下一个状态(即意图)。
注:
IMMO,仅使用许多竞争对手提出的仅具有NLU(意图分类器)组件的“解决方案”来构建聊天机器人是不可行的,因为仅使用意图分类器(NLU),您只能管理“无状态”的对话(单轮问答,没有任何上下文的对话)。最终,与其他提到的框架相比,RASA是赢家,因为它具有对话管理组件和故事设计/开发会话的方式,而没有硬编码规则(if/then)。Rasa Core:
Rasa Core是Rasa中处理对话管理的组件。对话管理负责记录对话上下文并相应地选择下一步操作。
Rasa NLU:
Rasa NLU负责意图识别和实体提取。
示例
例如,如果用户输入是“明天纽约的天气怎么样?”,Rasa NLU需要提取出用户的意图是询问天气,并提取相应的实体名称和类型,例如日期是明天,位置是纽约。
Rasa NLU
中得到的信息是:负责实体和意图提取;基本上解析聊天消息的内容。Rasa Core
: 集成实体+相应的回复逻辑,创建一个聊天机器人的对话系统。 - Sumax