RASA框架介绍

        关于RASA一个机器学习框架,用于构建基于文本和语音的聊天机器人。框架完整,可扩展性,易用性高,高效灵活。2.0新版本统一训练数据格式,配置文件和模型处理方式。

        在最新版的rasa里已经集成了bert模型和xlnet,可以通过model选择用bert,通过LanguageModelTokenizer进行分词,EntitySynonymMapper进行命名实体识别。

框架简单介绍:

        Rule文件用于单论对话的固定规则,core部分训练会校验是否只有一个user_uttered。整合了原来的trigger intent,如果需要根据前文灵活设置对话线,还是要用story。是基于规则的流程控制,只要满足规则,每次走的都是确定性分支,适合处理较小的特定对话模式,不同于story,通过结合rule和stories可以让助手更加健壮性,处理真实的用户行为。

Intent_tokenization_flag   标记以检查是否切分意图

Intent_split_symbol  意图分割符号

Token_pattern 用于检测 token的正则表达式

关于policies 新增一个rulepolicy 新策略,对于有固定行为的对话效果比较好,需要在config.yml中有rulepolicy才能使用规则和表单,有以下功能:

单论交互,FAQs

后备交互

处理表单中的不良行为

Importers

Policies在config.yml文件中配置,

Rasa使用rasafileimporters,创建自己的数据解析器,通过其他格式加载训练数据。

实验功能:multiprojectimpoter 可以把多个rasa项目的数据集合,

RASA框架介绍_第1张图片

Nlu提供意图分类,实体提取和响应检索,通过管道的方式处理用户对话。对话管理组件可以根据上下文决定对话中的下一个动作

Agent是系统代理,接收用户输入消息,返回系统给出的答案。

Tracker store是对话存储单元,保存用户和机器人对话过程

Event broker 事件代理

Lock store 对id进行管理,对话状态管理,保证消息的顺序处理

Filesystem 文件存储服务

Action server 提供

RASA框架介绍_第2张图片

消息传入后,被interpreter接收,消息转化为字典(tokenizer)并转化为特征,提取实体,识别意图(classifier)这部分是nlu

Tracker用来追踪对话状态,当前状态(实体,特征,意图)以及历史状态信息一并传给policy。

Policy 预测下一个动作action,需要用户自己定义,fallbackpolicy,memoizationpolicy,formpolicy基于form的策略。

Action完成实际动作,并通知tracker,成为历史状态,然后把结果返回给用户。

如果要结合FAQ,需要有ResponseSelector,当用户意图识别为faq之后,直接调用相关检索知识库 收集用户消息和候选响应的word特征包,然后为每个单独计算学习的嵌入式表示。用相似度函数计算用户输入消息和已有消息的相似度,在推理时把用户消息跟候选相应做匹配,选择具有最高相似性的响应作为助手对用户输入消息的响应。需要提前进行标注,能直接判断为faq。

language: "en"

pipeline:

- name: "WhitespaceTokenizer"

- name: "CountVectorsFeaturizer"

- name: "EmbeddingIntentClassifier"

- name: "ResponseSelector"

你可能感兴趣的:(RASA,人工智能)