官网
https://rasa.com/
stack
使用 Rasa 构建天气查询机器人
Rasa NLU 的 pipeline 和 component
本文将详细介绍 Rasa NLU 的 pipeline 和 component,介绍其原理和如何使用。
pipeline 定义了各个组件之间数据的前后流动关系,组件之间是存在依赖关系的,任意一个组件的依赖需求没有被满足都将导致 pipeline 出错(Rasa NLU 会在启动的时候检查是否每一个组件的依赖都被满足,如果没有满足,则终止运行并给出相关的提示消息)。具有以下特征:
- 组件之间的顺序关系至关重要,比如 NER 组件需要前面的组件提供分词结果才能正常工作,那么前面的组件中有必须有一个分词器。
- 组件是可以相互替换的,比如同样是提供分词结果,同时有几个 component 可以选择,比如中文的可以选择清华的分词器、北大的分词器的。
- 有些组件是互斥的,比如:分词器是互斥的,分词结果不能同时由两个组件提供,否则会出现混乱。
- 有些组件是可以同时使用的,比如:提取文本特征的组件可以同时使用基于规则的和基于文本嵌入向量的。
一个 NLU 应用通常包括 命名实体识别 和 意图识别 两个任务。为了完成这些任务,一个 典型 的 Rasa NLU pipeline 通常具有以下的 pattern:
- 初始化类组件:为了加载模型文件,为后续的组件提供框架支持,如初始化 SpaCy 和 MITIE
- 分词组件:将文本分割成词语序列,为后续的高级 NLP 任务提供基础数据
- 提取特征:提取词语序列的文本特征,通常采用 Word Embedding 的方式,提取特征的组件可以同时使用,同时搭配的还可能有基于正则表达式的提取特征的方法。
- NER 组件:根据前面提供的特征对文本进行命名实体的识别
- 意图分类:按照语义对文本进行意图的分类,也称意图识别
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于