Rasa NLU pipeline 组件列表

发布时间: 2023-04-07 15:34:02 作者: 大象笔记

官方文档

https://rasa.com/docs/rasa/components

记录几个感觉比较重要的:

语言模型 Language Model

在一些文章里看到说是官方推荐使用 SpacyNLP, 但是我在官方文档里没有找到这样的说明。但给我的感觉是 SpacyNLP 更正规一些,至少可以下载到官方训练好的语言模型。而不需要去百度网盘去下载一些个人训练的模型。

是否必须使用语言模型? 之所以有这个疑问,是因为我看到可以使用结巴分词,那么就没有使用语言模型的必要了。

如果 Rasa NLU 里面引用预训练的语言模型,那就需要提前加载,如果 Tokenize 使用空格分词或者结巴分词,特征向量使用 One-hot 编码或者 CountVectorsFeaturizer 编码,那就不在需要语言模型了。

分词组件 Tokenizers

将对话文本分割成 token, 即切割成词。

特征提取组件 Featurizers

可以使用多个组件来提取特征,例如正则等。

其他几个,我没看懂。。。等实操时再理解吧。

意图分类组件 Intent Classifiers

即,意图识别。

Intent classifiers assign one of the intents defined in the domain file to incoming user messages.

意图定义在项目根目录的 domain.yml 配置文件中,例如:

version: "3.1"

intents:
  - greet
  - goodbye
  - bot_challenge

responses:
  utter_greet:
  - text: "Hey! How are you?"

  utter_goodbye:
  - text: "Bye"

  utter_iamabot:
  - text: "I am a bot, powered by Rasa."

Entity Extractors

疑问

意图是如何识别出来的? 仅仅从 nlu.yml 配置文件中的那些硬编码规则,如何能智能识别意图?

data 目录下的 nlu.yml 就是训练数据。

我是一名山东烟台的开发者,联系作者