Rasa使用指南01

article/2025/9/19 20:18:33

转载请注明出处,原文地址:
https://terrifyzhao.github.io/2018/09/17/Rasa%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%9701.html

Rasa使用指南02

前言

本文内容基于Rasa官网文档,做了翻译与整理,并添加一些自己的理解,方便大家上手Rasa,想了解更多内容的小伙伴可关注Rasa官网

Rasa是一个基于多轮对话的框架,其中包含两个模块Rasa core与Rasa nlu。

Rasa nlu是用来理解语义的,包括意图识别,实体识别,它会把用户的输入转换为结构化的数据,例如在下图的例子中,nlu会识别出用户打算发一封邮件(意图),邮箱地址amy@example.com(实体)。Rasa Core是一个对话管理的平台,它的工作是决定接下来机器该返回什么内容给用户,这里给用户返回了Should we make that your primary email?

在这里插入图片描述

在接下来的内容中,我们会基于一个简单的多轮对话带领大家搭建一个Rasa平台,为了理解起来简单,我们暂时不考虑填槽。

安装Rasa

pip install rasa_core
pip install rasa_nlu[tensorflow]

Rasa Core

我们先从Rasa core讲起,core包含两个内容,stories和domain。

1、Stories

stories可以理解为对话的场景流程,我们需要告诉机器我们的多轮场景是怎么样的,例如,在下文的例子中,我们希望的流程是这样的:用户问好 -> 机器问用户今天过得怎么样 -> 用户反馈情绪 -> 机器根据不同的情绪进行回复,这里其实包含两个流程,一个正面情绪的流程与一个负面情绪的流程,因此,我们也需要编写两个story,接下来我们看下怎么编写story。

符号说明
##story 标题
*意图
-动作
## story_happy
* greet- utter_greet
* mood_happy- utter_happy## story_unhappy
* greet2- utter_greet
*  mood_unhappy- utter_unhappy

把以上内容保存到 stories.md文件中

2、Domain

domain可以理解为机器的知识库,其中定义了意图,动作,以及对应动作所反馈的内容。

标识说明
intents意图
actions动作
templates回答模板
entities实体
slots词槽
intents:- greet- mood_happy- mood_unhappyactions:
- utter_greet
- utter_happy
- utter_unhappytemplates:utter_greet:- text: "你好,你今天过的怎么样"utter_happy:- text: "那很棒棒哦"utter_unhappy:- text: "咋了,可以告诉我吗"

把以上内容保存到 domain.yml文件中

Rasa Core的任务是在获取到用户的意图后,选择正确的action,这些action就是定义在domain中以utter_开头的内容,每一个 action会根据templates中的情况来返回对应的内容。

在我们这个简单的例子中不需要定义词槽与实体,所以domain中暂时没有。

3、训练对话模型

下一步就是用神经网络去训练我们的Core模型了,我们可以直接执行以下命令,训练的模型将会存储在models/dialogue文件夹下。

python -m rasa_core.train -d domain.yml -s stories.md -o models/dialogue

在这里插入图片描述

可以看到,训练过程采用了一个神经网络,结构为:masking->lstm->dense->activation,这里简单介绍下masking层,在nlp领域,输入的内容可能不是一样长的,为了能统一处理数据需要定长,因此某些值需要补0或者截取多余内容,但是补0的部分其实是没有意义的,masking层能让这些补0的部分不参与之后的计算,从而提升运算效率。

4、尝试和你的机器人交流吧

接下来我们就可以用训练好的模型来运行我们的机器人了,执行以下命令

python -m rasa_core.run -d models/dialogue

此时我们的机器人还无法判断用户的意图,只能根据输入的意图返回特定的答案,所以我们只能输入一些结构化的数据,例如输入我们之前在domian中定义好的意图,输入的信息需要以 /开头,我们可以直接输入意图 /greet,当然,如果你想让机器人回答更多的内容,请在stories与domain中添加更多的内容。

在这里插入图片描述

Rasa NLU

1、添加NLU模块

目前我们的机器人已经可以通过输入意图来获取答案了,但是怎么让机器理解真正的语言呢,这个时候就需要用到NLU模块了,NLU的任务是解析消息,它能把自然语言解释成我们需要的结构化的数据,我们继续完善下去。

首先,我们需要定义一个对应的意图可能会出现的文本内容文件nlu.md

## intent:greet
- 你好
- 上午好
- 下午好
- 早上好
- 晚上好## intent:mood_happy
- 很好
- 我很好## intent:mood_unhappy
- 我很难受
- 我心情很差

把以上内容保存到 nlu.md文件中

除此之外,我们还需要一个nlu的配置文件,nlu_config.yml,由于我们是中文系统,所以language对应的是zh,如果你需要英文的对话请修改为en。

language: zh
pipeline: tensorflow_embedding

把以上内容保存到nlu_config.yml文件中

准备好之后就可以开始训练NLU模型了,执行以下命令

python -m rasa_nlu.train -c nlu_config.yml --data nlu.md -o models --fixed_model_name nlu --project current --verbose

2. 再一次和你的机器人进行交流吧

添加完NLU模型之后我们就能让机器识别自然语言了,我们执行下以下命令。

python -m rasa_core.run -d models/dialogue -u models/current/nlu

在这里插入图片描述

到此我们简单的Rasa系统就搭建完成了,大家可以继续添加stories、domain、nlu文件的内容来搭建一个属于自己的Rasa系统。下一篇文章将会带领大家学习如何做实体识别与填槽。

Rasa使用指南02


http://chatgpt.dhexx.cn/article/9iNOxJrg.shtml

相关文章

Rasa安装

下载 Rasa https://download.csdn.net/download/Da___Vinci/12404001 Rasa-x https://download.csdn.net/download/Da___Vinci/12403992 安装 找个位置存放,cd到那个目录执行安装,注意你的pip版本,我的是3.7,如果装了多个pyhon&#xf…

RASA介绍

引言 自然语言是人类表达情感、观念的主要工具和人类思维的重要载体,而最常见的自然语言应用场景则是对话。人们希望通过自然语言控制机器,甚至实现机器与人类的对话与交流。使用自然语言作为输入输出的媒介,会使用户获得更自然友好的人机交互…

关于Rasa你必须要知道的几件事

关于Rasa你必须要知道的几件事 1、为什么选择Rasa 2、Understanding the Rasa NLU Pipeline 3、Components in Rasa 4、DIET in Rasa 5、Dialogue Management in Rasa 2.0 6、TED Policy in Rasa 本文从一个high-level的角度对使用Rasa构建聊天助手的整个过程进行了总结&#x…

Rasa系列教程(一) -- 系统及各组件介绍

目录 前言 一、传统对话机器人架构 二、对话系统流程 2.1 ASR语音识别 2.2 NLU自然语言理解 2.3 DM对话管理 2.4 NLG自然语言生成 2.5 TTS语音合成 三、Rasa组件介绍 3.1 Rasa简介 3.2 Rasa安装 3.3 Rasa项目基本流程 3.4 Rasa常用命令 3.4 Rasa常用命令 ​​​​…

数据治理-数据标准

问题导读1.为什么要做数据标准管理?2.生产变更的标准管理主要解决了哪些问题?3.变更通知谁(影响范围)?4.业务元数据的标准管理主要解决了哪些问题? 一、为什么要做数据标准管理 数据治理的问题并不仅仅只…

数据治理效果差?掌握正确治理方法,解决企业数据问题

数字化时代,数据已经成为构建现代化社会的重要元素,也深深扎根于商业世界,成为无数企业经营管理中悉心培养的”明珠“。 然而,这些宝贵的数据是需要有人来照料、培养的,如果企业没有完善的数据治理方案,就…

数据治理要点

目录 数据治理-ods治理前言-确定表主键数据治理-行政区划数据治理-字段拆分数据治理-必去的脏数据数据治理-全角转半角 已经在公司待了有一段时间了,自己也亲身接触和实践了一些项目,最近发现自己一直没有进步,想了想或许是自己一直没有反思总…

数据治理

数据治理(DataGovernance),是企业数据治理部门发起并推行的,关于如何制定和实施针对整个企业内部数据的商业应用和技术管理的一系列政策和流程。 数据治理是一套持续改善管理机制,通常包括了数据架构组织、数据模型、政策及体系制定、技术工…

主数据治理项目前期调研

随着企业的不断发展进步,业务部门的需求不断增加,企业逐渐上了很多应用系统以及硬件设备,如OA办公协同系统、ERP企业资源管理系统、HR人力资源管理系统、CRM客户关系管理系统等,也在业务发展中沉淀了大量数据,但是这些…

通俗理解数据治理之主数据

1)如需数据治理-元数据材料可前往(狗头.gif) https://download.csdn.net/download/u010763324/87589200https://download.csdn.net/download/u010763324/875892002)如需数据治理-主数据材料可前往(狗头.gif&#xff0…

数据治理概述

一、 首先认识一些名词 在学习数据治理知识之前,首先要明白治理的对象都有哪些,什么才是数据?是1,2,3,4这种纯数字类型的才算数据吗?还是所有的文本数据都是数据? 请往下看。 1.1…

数据治理:数据治理框架和标准

参考《一本书讲透数据治理》、《数据治理》等 数据治理并不是新概念,在国内外都有实践,这里重点介绍下国内外对数据治理的主流框架和标准 国际数据治理框架 国际上,主流的数据治理框架主要有:ISO数据治理标准、GDI数据治理框架、…

数据治理项目经验分享

绝大多数互联网公司没时间建模、治理,直接拖宽表。业务变更频繁、建模缺位、指标爆炸,是导致互联网大数据环境中数据质量的低下的根本原因。 而在部委、集团中,时间相对充裕一些,标准更规范一些,但是同样面临部委和省…

谈谈数据治理

数据治理的本质是组织对数据的可用性、完整性和安全性的整体管理。 1.数据治理的本质 可用性指数据可用、可信且有质量保证,不会因为分析结果的准确性造成偏差,从业者可以放心地根据数据结果做业务决策;完整性分为两个方面,一方面…

数据治理:企业数据治理蓝图

参考《一本书讲透数据治理》、《数据治理》等 文章目录 企业数据治理体系企业数据治理9个要素企业数据治理4个层面 企业数据治理之道企业数据治理之法企业数据治理之术企业数据治理之器 企业数据治理体系 数据治理、数据管理、数据管控三者是什么关系?很多人都搞混…

也谈数据治理

1.数据治理的概念 数据治理,对于有数据的企业来说,是一个非常重要的内容。数据治理,之所以重要,是因为当前,数据已成为一种重要的资产,是组织进行管理、生产和行动的重要职称。 笔者结合了多方资料&#…

数据治理专栏

随着数字化转型大趋势发展浪潮以及数据作为新的生产要素,数据在企业的发展中扮演越来越重要的角色。然而数据本身不会自动产生价值,一般来说数据价值变现有两种方式:一种是通过数据治理将数据资源转化为数据资产,再把数据资产链接…

数据治理简介

参考文章:数据治理到底能治什么,怎么治 浅谈数据治理 数据治理的定义,挑战和最佳实践 1. 数据治理的背景 狭义上讲,数据治理是指对数据质量的管理、专注在数据本身。广义上讲,数据治理是对数据的全生命周期进行管理…

数据治理问题

01前言 为什么想开这个话题,一是因为目前业内数据产品也基本完成了从0-1的建设工作,但主要集中在数据生产加工和数据应用分析两侧,对于数据管治方向的建设多分散在了包括安全、指标元数据、SLA等在内的各个环节,缺乏统一的规划统…

【数据治理】数据治理8种方法

今天给大家推荐的是数据治理套路8法,个人觉得这8种方法中监管驱动法和利益驱动法是最常见的,也是一直在治,但只能局部治理的方法,未来是数字时代,必须体系构建(顶层设计)价值驱动(利…