Rasa实战:构建开源对话机器人

Rasa实战:构建开源对话机器人

编辑推荐

本书帮你使用机器学习技术快速创建工业级的对话机器人。

内容简介

Rasa是一款开源的对话机器人框架,能让开发者使用机器学习技术快速创建工业级的对话机器人。得益于丰富的功能、先进的机器学习能力和可以快速上手的特性,Rasa框架是目前流行的开源对话机器人框架。

本书首先介绍Rasa的两个核心组件——Rasa NLU和Rasa Core的工作流程;然后详细介绍通过使用Rasa生态系统从头开始构建、配置、训练和服务不同类型的对话机器人的整体过程,如任务型、FAQ、知识图谱聊天机器人等,其中包括使用基于表单(form)的对话管理、Response Selector来处理闲聊和FAQ,利用知识库来回答动态查询的问题等,以及自定义Rasa框架,使用对话驱动的开发模式和工具来开发对话机器人,探索机器人能做什么,并通过交互式学习来轻松修复它所犯的任何错误;最后会介绍将Rasa系统部署到具有高性能和高可扩展性的生产环境中,从而建立一个高效和强大的聊天系统。

作者简介

孔晓泉谷歌开发者机器学习技术专家(Google Developer Expert in Machine Learning),TensorFlow Addons Codeowner,Rasa SuperHero。多年来一直在世界500强公司带领团队构建机器学习应用和平台。在NLP和对话机器人领域拥有丰富的理论和实践经验。王 冠北京大学学士,香港科技大学硕士,先后于香港应用科技研究院、联想机器智能实验室及瑞士再保险与慕尼黑再保险数据科学团队从事数据建模、计算机图像与NLP的研发工作,发表过数篇相关国际期刊论文,并取得相关专利。当前研究方向为人工智能在金融领域的应用。

章节目录

版权信息

内容简介

Foreword

推荐序

前言

第1章 人机对话基础和Rasa简介

1.1 机器学习基础

1.2 自然语言处理基础

1.2.1 现代自然语言处理发展简史

1.2.2 自然语言处理的基础任务

1.3 人机对话流程

1.3.1 确定对话机器人的应用场景

1.3.2 传统对话机器人架构

1.3.3 语音识别

1.3.4 自然语言理解

1.3.5 对话管理

1.3.6 自然语言生成

1.3.7 语音合成

1.4 Rasa简介

1.4.1 系统结构

1.4.2 如何安装Rasa

1.4.3 Rasa项目的基本流程

1.4.4 Rasa常用命令

1.4.5 创建示例项目

1.5 小结

第2章 Rasa NLU基础

2.1 功能与结构

2.2 训练数据

2.2.1 意图字段

2.2.2 同义词字段

2.2.3 查找表字段

2.2.4 正则表达式字段

2.2.5 正则表达式和查找表的使用

2.3 组件

2.3.1 语言模型组件

2.3.2 分词组件

2.3.3 特征提取组件

2.3.4 NER组件

2.3.5 意图分类组件

2.3.6 实体和意图联合提取组件

2.3.7 回复选择器

2.4 流水线

2.4.1 什么是流水线

2.4.2 配置流水线

2.4.3 推荐的流水线配置

2.5 输出格式

2.5.1 意图字段

2.5.2 实体字段

2.5.3 其他可能字段

2.6 如何使用Rasa NLU

2.6.1 训练模型

2.6.2 从命令行测试

2.6.3 启动服务

2.7 实战:医疗机器人的NLU模块

2.7.1 功能

2.7.2 实现

2.7.3 训练模型

2.7.4 运行服务

2.8 小结

第3章 Rasa Core基础

3.1 功能与结构

3.2 领域

3.2.1 意图与实体

3.2.2 动作

3.2.3 词槽

3.2.4 回复

3.2.5 会话配置

3.2.6 全局性配置

3.3 故事

3.3.1 用户消息

3.3.2 机器人动作与事件

3.3.3 辅助符号

3.4 动作

3.4.1 回复动作

3.4.2 表单

3.4.3 默认动作

3.4.4 自定义动作

3.5 词槽

3.5.1 词槽和对话行为

3.5.2 词槽的类型

3.5.3 词槽的映射

3.5.4 词槽初始化

3.6 策略

3.6.1 策略的配置

3.6.2 内建的策略

3.6.3 策略的优先级

3.6.4 数据增强

3.7 端点

3.8 Rasa SDK和自定义动作

3.8.1 安装

3.8.2 自定义动作

3.8.3 tracker对象

3.8.4 事件对象

3.8.5 运行自定义动作

3.9 Rasa支持的客户端

3.10 实战:报时机器人

3.10.1 功能

3.10.2 实现

3.10.3 运行动作服务器

3.10.4 运行Rasa服务器和客户端

3.11 小结

第4章 使用ResponseSelector实现FAQ和闲聊功能

4.1 如何定义用户问题

4.2 如何定义问题的答案

4.3 如何训练Rasa

4.4 实战:构建FAQ机器人

4.4.1 功能

4.4.2 实现

4.4.3 训练模型

4.4.4 运行服务

4.5 小结

第5章 基于规则的对话管理

5.1 fallback

5.1.1 NLU fallback

5.1.2 策略fallback

5.2 意图触发动作

5.2.1 内建意图触发动作

5.2.2 自定义意图触发动作

5.3 表单

5.3.1 定义表单

5.3.2 激活表单

5.3.3 执行表单任务

5.4 实战:天气预报机器人

5.4.1 功能

5.4.2 实现

5.4.3 客户端/服务器

5.4.4 运行Rasa服务器

5.4.5 运行动作服务器

5.4.6 运行网页客户端

5.4.7 更多可能的功能

5.5 小结

第6章 基于知识库的问答

6.1 使用ActionQueryKnowledgeBase

6.1.1 创建知识库

6.1.2 NLU数据

6.1.3 自定义基于知识库的动作

6.2 工作原理

6.2.1 对象查询

6.2.2 属性查询

6.2.3 解析指代

6.3 自定义

6.3.1 自定义ActionQueryKnowledgeBase

6.3.2 自定义InMemoryKnowledgeBase

6.3.3 创建自定义知识库

6.4 实战:基于知识库的音乐百科机器人

6.4.1 功能

6.4.2 实现

6.4.3 客户端/服务器

6.4.4 运行Rasa服务器

6.4.5 运行动作服务器

6.4.6 运行网页客户端

6.4.7 使用Neo4j

6.5 小结

第7章 实体角色和分组

7.1 实体角色

7.2 实体分组

7.3 组件支持情况

7.4 实战:订票机器人

7.4.1 功能

7.4.2 实现

7.4.3 客户端/服务器

7.4.4 运行Rasa服务器

7.4.5 运行动作服务器

7.4.6 运行网页客户端

7.5 小结

第8章 测试和生产环境部署

8.1 如何测试机器人的表现

8.1.1 对NLU和故事数据进行校验

8.1.2 编写测试用的故事

8.1.3 评估NLU模型

8.1.4 评估对话管理模型

8.2 在生产环境中部署机器人

8.2.1 部署时间

8.2.2 选择模型存储方式

8.2.3 选择tracker store

8.2.4 选择lock store

8.2.5 单机高并发设置

8.3 实战:单机部署高性能Rasa服务

8.3.1 架设redis服务器

8.3.2 使用redis作为tracker store

8.3.3 使用redis作为lock store

8.3.4 单机高并发设置

8.3.5 性能测试

8.4 小结

第9章 Rasa的工作原理与扩展性

9.1 Rasa的工作原理

9.1.1 训练阶段

9.1.2 推理阶段

9.2 Rasa的扩展性

9.2.1 如何使用自定义NLU组件和自定义策略

9.2.2 如何自定义一个NLU组件或策略

9.2.3 自定义词槽类型

9.2.4 其他功能的扩展性

9.3 实战:实现自定义分词器

9.3.1 分词器MicroTokenizer的简介

9.3.2 代码详解

9.3.3 使用自定义分词器

9.4 小结

第10章 Rasa技巧与生态

10.1 如何调试Rasa

10.1.1 预测结果不正确

10.1.2 代码出错

10.2 如何阅读Rasa源代码

10.2.1 阅读源代码前

10.2.2 阅读源代码时

10.2.3 阅读源代码后

10.3 对话驱动开发和Rasa X

10.3.1 对话驱动开发

10.3.2 Rasa X

10.4 运行交互式学习

10.4.1 启动交互式学习

10.4.2 进行交互式学习

10.4.3 保存交互式学习的数据

10.4.4 对话过程可视化

10.5 社区生态

10.5.1 数据生成工具Chatito

10.5.2 数据生成工具Chatette

10.5.3 数据标注工具Doccano

10.5.4 Rasa Chinese软件包

10.6 小结

附录A 中英文术语翻译对照表

Rasa实战:构建开源对话机器人是2022年由电子工业出版社出版,作者孔晓泉。

得书感谢您对《Rasa实战:构建开源对话机器人》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
产品经理方法论:构建完整的产品知识体系 电子书

系统总结产品经理的工作经验,帮助产品经理建立完善的知识体系。
深入理解Spring Cloud与微服务构建(第2版) 电子书

作者在SpringCloud中国社区具有很高的知名度,本书能为提升微服务架构能力带来帮助。
Presto实战 电子书

作为高性能分布式SQL查询引擎,Presto能够针对不同的数据源高效、快速地执行交互式分析。
Terraform实战 电子书

本书基于实际项目,揭示如何使用Terraform自动扩展和管理基础架构。
WebAssembly实战 电子书

抽丝剥茧,逐步解构WebAssembly的复杂生态。
Kafka实战 电子书

本书介绍Kafka的应用和使用,适合Java开发者和数据工程师。
机器学习实战 电子书

《机器学习实战》面向日常任务的高效实战内容,介绍并实现机器学习的主流算法。