rasa
- rasa nlu
- rasa core
基于故事的对话管理,包括解析故事并生成对话系统中的对话管理模型(DM),输出系统决策。
简单示例
- NLU data
- responses
- Stories
(用户意图 -> 反馈 -> 用户意图 -> 反馈..) 由用户意图和反馈组成的对话流图
- Forms
表单,收集用户的信息
- Rules
当用户触发某个intent的时候,返回特定的action
最佳实践
CDD(对话测试驱动开发)
NLU 数据
- 避免 intent 混淆
- 拆分实体和意图
- 提升实体识别效果
- 预训练的识别识别器
SpacyEntityExtractor和DucklingEntityExtractor
- 正则
- 查找表
- 同义词(同一个表达的不同说法,类似norm value的概念)
- 处理边界case
- 发音/拼写错误
CountVectorFeaturizer
- 定义UNKNOWN意图,用来识别没有定义的意图。
对话数据
- 设计Stories
设计对话流程,包括预期内的回复流程 & 不符合预期的对话流程
- 写规则
规则是一种将意图映射到响应的简单方法,为这些消息指定固定的答案。
rules:
- rule: Greeting Rule
steps:
- intents: greet
- action: utter_greet
多轮交互需要使用story来定义。
stories:
story: Greeting and ask user how they're doing
steps:
- intent: greet
- action: utter_greet
- action: utter_ask_how_doing
- intent: doing_great
- action: utter_happy
管理对话流图
管道组件
rasa components
语言模型
- MitieNLP
- SpacyNLP more
- Tokenizer
intent_tokenization_flag - WhitespaeTokenizer
- JiebaTokenizer
...
特征
所有的特征化器都可以返回两种不同的特征:序列特征和句子特征。
- 序列特征是一个大小为 的矩阵(number-of-tokens x feature-dimension)
- 句子特征由一个大小为 的矩阵表示(1 x feature-dimension)
意图识别
- MitieIntentClassifier
- SklearnIntentClassifier
- DIETClassifier(包括实体识别)
- FallbackClassifier
实体提取
选择器

浙公网安备 33010602011771号