Rasa学习记录 01
Rasa的安装和简单的测试
怪雨是新手,刚刚接触Rasa,以下内容不一定正确。有错误的地方欢迎指出。
什么是Rasa:
我的理解是一开源的机器学习框架用于AI助手和机器人。基于两个主要的模块
- NLU:自然语言理解(Natural Language Understanding,简称NLU)技术
- Core:核心 保存对话并决定下一步做什么
安装Rasa:
怪雨的系统:manjaro18+kde
安装前先更新同步数据库:sudo pacman -Syy
系统已经安装过以下内容的,可以跳过这一步(这一步也只是确保不会因为缺少什么而报错)
- 安装pip3sudo pacman -S python-pip
- 安装相关的依赖的python3的库pip install numpy pandas jieba sklearn
安装Rasa和Rasa-x 并初始化Rasa
pip install rasa-x --extra-index-url https://pypi.rasa.com/simple
rasa init
rasax就是Rasa 带界面的工具安装后终端运行rasax会自动弹出浏览器进入Rasax界面
测试自带的数据

现在就可以测试自带的简单数据了

不过对话要按照自己编写的stories来对话
输入/stop就能推出Rasa shell
输入Rasa shell就能再次进入对话!
查看项目里的文件内容
创建一个项目:
rasa init --no-prompt不加后面的--no-prompt的话会详细的问你需要设置什么查看训练数据
- 可以通过
cat data/nlu.md来查看 (以下是markdown的格式)
## intent:affirm
- yes
- indeed
- of course
- that sounds good
- correct ## intent:deny
- no
- never
- I don't think so
- don't like that
- no way
- not really
##后面是intents(意图) 就是以下的几条消息所要表达的意图
-后面跟的就是消息了
意思就是把这一组消息都是这一意图
- 可以通过
为你的模型配置
你可以通过
cat config.yml来查看配置文件# Configuration for Rasa NLU.
# https://rasa.com/docs/rasa/nlu/components/
language: en
pipeline: supervised_embeddings # Configuration for Rasa Core.
# https://rasa.com/docs/rasa/core/policies/
policies:
- name: MemoizationPolicy
- name: KerasPolicy
- name: MappingPolicy
这些文件定义了你这个模型会使用的NLU和CORE组件
NLUpipeline的选择:
如果训练样例小于1000的 使用
pipeline: "pretrained_embeddings_spacy"如果训练样例大于1000的 使用
pipeline: "supervised_embeddings"以上两个是最重要的两个pipelines
编写自己的第一个Stories
这个文档是教你的助手如何去回应消息的
strories就是机器和用户的对话,core models通过真实的对话学习来训练自己。
同样
cat data/stories.md查看一下里面的内容(截取部分)## happy path
* greet
- utter_greet
* mood_great
- utter_happy ## sad path 1
* greet
- utter_greet
* mood_unhappy
- utter_cheer_up
- utter_did_that_help
* affirm
- utter_happy
*greet* 后面的是用户发送的消息(语句的意图或是实体)- utter_greet- 后面是action (机器人需要执行的操作,可以是回一段消息或是自定义操作) action中如果是回消息的话需要 回话必须要以utter_开头且与domain里面定义的一致
如果是自定义操作虽然没有强制要求不过最好以action_开头
action这里还大有内容,后面学习了更新到后面的文章
定义一个Domain
[^]: 这里说域的话好像不太合适 保留英文Domain吧
老样子查看
cat domain.ymlintents:
- greet
- goodbye
- affirm
- deny
- mood_great
- mood_unhappy
templates:
utter_greet:
- text: Hey! How are you?
utter_cheer_up:
- text: 'Here is something to cheer you up:'
image: https://i.imgur.com/nGF1K8f.jpg
utter_did_that_help:
- text: Did that help you?
utter_happy:
- text: Great carry on!
utter_goodbye:
- text: Bye
actions:
- utter_greet
- utter_cheer_up
- utter_did_that_help
- utter_happy
- utter_goodbyeintents 你期待用户说的话(意图) actions 机器人能做的和能说的 templates 机器人回话模板 训练模型
每次一的更新内容,我们都需要重新训练我们的模型
执行下列代码
rasa train
echo "Finished training."
与机器人对话
执行
rasa shell
举一反三(自己的第一个机器人)
修改
data/nlu.md中加入中文截取内容如下
## intent:affirm
- yes
- indeed
- of course
- that sounds good
- correct
- 是的
- 当然
- 正确
修改
cat config.yml的内容把
language: en改为language: zh修改
domain.yml内容修改templates: utter 的text的文本内容
templates:
utter_greet:
- text: 嗨!生活还好吗
utter_cheer_up:
- text: '希望这张图片能让你心情有所好转:'
image: https://i.imgur.com/nGF1K8f.jpg
utter_did_that_help:
- text: 对你有帮助吗?
utter_happy:
- text: 加油!继续!
utter_goodbye:
- text: 再见
尝试训练
rasa train运行
rasa shell

Rasa学习记录 01的更多相关文章
- "利用python进行数据分析"学习记录01
"利用python进行数据分析"学习记录 --day01 08/02 与书相关的资料在 http://github.com/wesm/pydata-book pandas 的2名字 ...
- python源码剖析学习记录-01
学习<Python源码剖析-深度探索动态语言核心技术>教程 Python总体架构,运行流程 File Group: 1.Core Modules 内部模块,例如:imp ...
- Python_OpenCV学习记录01安装
Python照样快! 众所周知,虽然Python语法简洁,编写高效,但相比C/C++运行慢很多.然 而Python还有个重要的特性:它是一门胶水语言!Python可以很容易地扩展 C/C++.Open ...
- php数组学习记录01
array_change_key_case array_change_key_case - 将数组中的所有键名修改为全大写或小写 <?php $input_array = array(" ...
- 01.基础架构:一条SQL查询语句是如何执行的?学习记录
01.基础架构:一条SQL查询语句是如何执行的?学习记录http://naotu.baidu.com/file/1c8fb5a0f2497c3a2655fed89099cb96?token=ff25d ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- 我的Spring学习记录(二)
本篇就简单的说一下Bean的装配和AOP 本篇的项目是在上一篇我的Spring学习记录(一) 中项目的基础上进行开发的 1. 使用setter方法和构造方法装配Bean 1.1 前期准备 使用sett ...
- GIT初始学习记录
目录 GIT学习记录 配置github与gitlib两个账号 基本操作 git init:初始化仓库 git status:查看仓库状态 git add :向缓存区中添加文件 git commit 保 ...
- JVM学习记录-线程安全与锁优化(二)
前言 高效并发是程序员们写代码时一直所追求的,HotSpot虚拟机开发团队也为此付出了很多努力,为了在线程之间更高效地共享数据,以及解决竞争问题,HotSpot开发团队做出了各种锁的优化技术常见的有: ...
随机推荐
- Sql UpdateOrInsert
SqlServer(先更新,受影响条数为0,则Insert,通过事务): begin tran update table set column=columnvalue where wherestr b ...
- (转载)IDEA中对Git的常规操作(合并,提交,新建分支,更新)
工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小袁 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三:小 ...
- FormGroup验证不起作用
读文件来动态地生成FormGroup 类似下面的代码 private formAttrs: FormGroup; for (var i = 0; i < this.array.length; i ...
- JavaScript DOM 编程艺术(第二版) 初读学习笔记
这本书留给我的印象就是结构.表现和行为层的分离,以及书后面部分一直在强调的最佳实践原则:平稳退化,逐步增强,向后兼容以及性能考虑. 要注意这不是一本JavaScript入门书籍~ 2.1 准备工作 用 ...
- react native 传值方式之 :子组件通过调用 其父组件传来的方法 传值回其父组件
- 【AMAD】schema -- 使用pythonic的方式进行schema验证
动机 简介 用法 个人评分 动机 验证数据是否符合规范是很有用的,比如: 用于单元测试 用于验证用户提交的数据是否合法 简介 schema1是一个用来验证python数据结构的库. 可以用来验证诸如: ...
- 【C/C++语言】指针常量与常量指针的区别
三个名词虽然非常绕嘴,不过说的非常准确.用中国话的语义分析就可以很方便地把三个概念区分开. 一) 常量指针. 常量是形容词,指针是名词,以指针为中心的一个偏正结构短语.这样看,常量指针本质是指针,常量 ...
- 【Linux开发】linux设备驱动归纳总结(七):2.内核定时器
linux设备驱动归纳总结(七):2.内核定时器 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...
- 【Linux开发】linux设备驱动归纳总结(一):内核的相关基础概念
linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...
- 通道的分离与合并,ROI,
通道的分离与合并 class Program { static void Main(String[] args) { Mat img = CvInvoke.Imread(@"C:\Users ...