Rasa实战:构建开源对话机器人
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 功能与结构

Rasa NLU负责意图提取和实体提取。例如,输入“明天上海的天气如何?”,Rasa NLU要提取出该句子的意图是查询天气,以及相应的实体值和类型名:明天是日期;上海是城市。

从结构上来说,Rasa NLU使用有监督算法来完成功能,因此需要开发者提供适当数量的语料,语料包含意图信息和实体信息。Rasa NLU在软件架构上设计得很灵活,允许开发者使用各种算法来完成功能,这些算法的具体实现被称为组件(component)。为了让组件灵活配置和维持正确的前后组件的依赖关系,Rasa NLU引入了基于有向无环图(Directed Acyclic Graph, DAG)的组件配置系统。有向无环图描述了模型中的组件之间的依赖关系,以及数据如何在它们之间流动。这有两个主要的好处:有向无环图可以优化模型的执行和灵活地表示不同的模型架构。

后面将逐一介绍Rasa NLU的核心要素。