猜你喜欢
Python聊天机器人开发:基于自然语言处理与机器学习

Python聊天机器人开发:基于自然语言处理与机器学习

书籍作者:[印] Sumit Raj ISBN:9787121383472
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2184
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书是使用 Python 动手搭建聊天机器人的入门书籍。全书共 5 章,包含聊天机器人的发展历史、自然语言处理的相关知识,以及多种搭建、部署聊天机器人的基本方法。此外,作者还提供了丰富的源码和细致的教程,极具实操性。无论你是具有一定 Python 编程基础的技术人员,还是想更多了解聊天机器人相关知识的产品经理、项目管理人员,都能从本书学习到搭建聊天机器人的相关内容,并能在本书的指导下实际完成聊天机器人的搭建和对外发布。

作者简介

Sumit Raj是一个喜欢编程和搭建应用的技术人员,也是一位对机器学习和自然语言处理有浓厚兴趣的Python专家。他相信通过程序,可以直接影响公司的营收情况。Sumit曾在多个领域工作,如个人财务管理、房地产、电子商务和收益分析,完成了多个可扩展的应用程序。他曾帮助多个早期创业公司完成了他们产品的初始设计和架构,这些公司后来得到了投资者和政府的赞助。他拥有尖端技术的丰富经验,这些经验被用于互联网/企业级应用的可扩展性、性能调优和降低成本等方面。
译者黄光远:阿里巴巴高级算法工程师,现于阿里达摩院人工智能实验室,从事天猫精灵人工智能语音交互领域,专攻语音系统算法架构与NLP算法应用;曾在阿里数据技术部负责电商场景的数据化运营、圈人投放、差异化选品、场景挖掘与用户画像,以及在淘宝技术部负责复杂网络、Spark图算法并行化研发等工作。

编辑推荐
适读人群 :不了解聊天机器人技术的中级Python开发人员,以及具有基本Python编程知识的普通开发人员。

使用Python和开源工具搭建属于你自己的聊天机器人。本书首先对聊天机器人进行了相关介绍,让你对它们的架构有清晰的认知。然后介绍了自然语言处理的相关知识,以及如何在定制化的聊天机器人对话处理过程中使用自然语言工具(NLTK)。在此基础上,本书还详细介绍了多种不同的自然语言处理技术,以便在实操中可以根据具体需求选择合适的处理方法。接下来你将学习如何使用API.ai平台搭建一个聊天机器人,并定义相关的意图和实体。通过书中的示例,你将学习如何与聊天机器人进行通信,并初步了解机器人集成和部署的关键步骤。本书的最后一章着重讲解如何搭建、训练和部署你的专属聊天机器人。借助开源软件和机器学习模型,你的机器人将具备对话决策的能力,并能成为网页应用上的对话代理。最后还可以把聊天机器人部署在个人服务器上。

你将可以:

· 使用Python进行基础的自然语言处理。

· 掌握收集数据的方法,并对机器人进行训练。

· 从零开始搭建专属的聊天机器人,并将其部署成为网页应用。

· 在Facebook、Slack和Telegram中集成聊天机器人。

· 把聊天机器人部署到个人服务器上。

前言

译者序

随着人工智能技术的蓬勃发展,越来越多的聊天机器人进入我们的日常生活,如天猫精灵、Echo、Google Home 等。虽然现实生活中聊天机器人的表现和《西部世界》等科幻小说里描述的还相距甚远,甚至你被它们弄得哭笑不得,但不可否认的是,这项技术正在以不可阻挡的趋势影响着我们的生活。在双十一购物狂欢节期间,阿里巴巴公布,通过语音购物成交的订单数量超过了 100 万。从“剁手节”到“掌嘴节”,抛开这些包装的噱头,人机语音交互技术的确越来越成熟,聊天机器人很有可能发展成为下一代的人机交互平台。身处人工智能浪潮中的我们,正在见证并创造历史,何其幸运。

对聊天机器人技术感兴趣的读者可以从本书中详细地了解聊天机器人的发展历史、自然语言处理的相关知识,以及多种搭建、部署聊天机器人的基本方法。无论你是具有一定 Python 编程基础的技术人员,还是想更多了解聊天机器人相关知识的产品经理、项目管理人员,都可以通过这本书学习到如何搭建和发布聊天机器人。了解更多内部细节,你才能更清楚目前聊天机器人功能的边界,以及未来发展的可能机会点。借用两句诗来总结本书的两大特点。

“纸上得来终觉浅,绝知此事要躬行。”

作者是实战派技术人员,他不仅介绍了聊天机器人的相关理论知识,更附上了丰富的源码和细致的过程说明,不断引导和鼓励读者动手搭建自己的聊天机器人,使本书的实操性极强。只有通过实践才能加深对知识的理解,对技术人员来说尤其如此。并且,从零开始一步步搭建聊天机器人,直到能和它进行对话,这个过程中体验到的喜悦是令人难以忘怀的。我至今仍记得 2016 年清明假期闭关捣鼓出来一个简易聊天机器人时的激动。有了本书的帮助,希望你也能搭建一个属于自己的聊天机器人。

自己搭建的简易聊天机器人

“问渠哪得清如许,为有源头活水来。”

刚开始收到侠少的翻译邀约时,由于自己也是 AI 从业者,因此对入门类的书籍不是特别感兴趣。但在细读原书后,觉得作者的有些表述虽然较为琐碎,但里面提及的一些观点、总结,还是值得细细咀嚼的。我以前专注的领域是智能音箱,对具有可视交互界面的聊天机器人思考较少,第 1 章中的“如果你不能通过编程解决一些问题,那么就用设计解决它”就给我带来了不一样的视角。道理虽简单,但贵在作者写书时考虑到了方方面面,从技术和商业多个视角进行剖析。因此这本书不仅适合技术人员参阅,也适合好奇聊天机器人内部细节的每一位读者研读。读完本书后希望你也能“开卷有益”。

以上是在翻译过程中的一些感触。本书的翻译定稿,最需要感谢的是我的好搭档——杨菲。

杨菲具有极强的工程能力、严谨的态度和包容的性格,给予了我极大的帮助。感谢杨菲为本书付出的努力,她牺牲了无数个周末与我一起埋头苦战。相信这本书会成为我俩彼此合作的一个美好回忆。

最后,再次感谢侠少的邀约,这是我们的第二次合作了,一如既往的愉快。还要感谢身边一群支持我们的亲人、朋友、团队同事,包括为了写这篇译者序而错失见面机会的 Vivi 夫妇,还有抽不出时间去珠海探望的珍珠崽等。你们的关怀和体贴,给予了我们不断前行的力量。

乘风而起、驭势笃行,在人工智能技术火热的当下,如果我们的译作能给对聊天机器人技术感兴趣的各位读者带来一丝帮助,那便是我们最大的欣慰和动力。


前言

本书介绍

这本书写得非常仔细,旨在保证里面的教学贴合实际,并以结果为导向。搭建聊天机器人不仅仅是完成教程或者实现几个步骤——这本身就是一项技能。这本书不会是枯燥无味的大量文字堆积,而是采用从实践中学习的方式进行讲解。现在你肯定至少使用过一个聊天机器人来完成生活中的事情了。不管你是不是一名程序员,一旦读完了这本书,都将会找到搭建聊天机器人的基石;所有的神秘面纱都将被揭开。搭建聊天机器人,可能外行人看起来很困难,但这本书让这件事变得简单。我们的大脑不擅长直接处理复杂的概念;相反,我们善于循序渐进地进行学习。在阅读这本书的时候,从第 1 章到最后一章,你会逐步找到事情进展的清晰脉络。

虽然可以直接跳到任何章节开始阅读,但我强烈建议你从第 1 章开始学习,这样肯定能帮助你理清思路。

这本书就像是一个系列网站,当你看完一章之后,肯定迫不及待地想进入下一章。阅读完本书后,你对接触过的聊天机器人的设计方式及内部的具体实现方式,都会有一个大体的认知。

本书适合人群

这本书可以作为学习聊天机器人的相关概念和如何搭建它们的重要材料。本书会对以下人群起到帮助作用:

? 希望将知识面或职业拓展到聊天机器人开发中的 Python 网站开发人员。

? 希望通过实践经验获得新技能,创造出可展示的作品,并期望能从人群中脱颖而出的学生或者有抱负的程序员。

? 希望学习如何从头开始搭建聊天机器人的自然语言爱好者。

? 拥有很好的想法但缺乏足够的技术来搭建聊天机器人的初创企业家。

? 计划开始开发聊天机器人相关项目的产品/工程管理者。

如何阅读本书

请记住,本书的编写方式和其他书籍不太一样。这本书的编写主旨,是让你在读完本书后,能自己搭建一个聊天机器人或者教导别人怎么搭建一个聊天机器人。在读本书前请记住以下这几点:

? 本书几乎涵盖了搭建聊天机器人所需的所有内容,而不仅仅是通用的内容。

? 希望你能参考书中的内容并花更多的时间在系统上进行实践。确保你会执行每段代码并尝试编写代码;不要单纯地复制和粘贴。

? 确保按照书中的步骤进行学习;如果暂时有一些不明白的内容,也不要担心。你将在后续内容中学习到它们。

? 使用本书提供的源码和 Jupyter Notebook 作为参考。

本书内容

第 1 章:心爱的聊天机器人 在本章你将从商业和开发人员的视角了解与聊天机器人相关的内容。本章奠定了在本书中对聊天机器人相关知识点进行代码实现的基调。希望在本章结束之前,你能找到为自己或为公司搭建聊天机器人的充足理由。

第 2 章:聊天机器人中的自然语言处理 在本章你将了解搭建聊天机器人时要用到的自然语言处理工具和方法。本章不仅会介绍自然语言处理的相关方法,还会通过现实生活中的例子来展示代码实现示例。本章还会讨论为什么在聊天机器人中需要用到自然语言处理技术。请注意自然语言处理本身也是一项值得掌握的技能。

第 3 章:轻松搭建聊天机器人 在本章你将学习如何通过一些方便和好用的工具(比如Dialogflow)来搭建聊天机器人。如果你不是一名程序员,那你肯定会对这一章感兴趣,因为它仅需要一点或根本不需要编程技能。

第 4 章:从零开始搭建聊天机器人 在本章你将学习如何以人们想要的方式来搭建聊天机

器人。标题说明了这不会很简单,但只要你学习完上一章的知识,就会想要学习更多,本章会

介绍如何从零开始搭建聊天机器人,以及怎么使用机器学习算法来训练聊天机器人。

第 5 章:部署自己的聊天机器人 本章是推进聊天机器人程序的最后一个步骤。当借助有关工具或者从零开始搭建了一个聊天机器人时,你肯定不希望只有你自己能使用它。你将会学习如何借助 Facebook 或者 Slack 向全世界展示聊天机器人,并且最终将它们集成到你自己的网站上。


目录

第 1 章 心爱的聊天机器人 1

聊天机器人的受欢迎程度 2

Python 之禅以及为什么它适用于聊天机器人 3

对聊天机器人的需求 4

商业视角 5

开发者视角 9

受聊天机器人影响的行业 11

聊天机器人的发展历程 12

1950 12

1966 12

1972 12

1981 12

1985 12

1992 13

1995 13

1996 13

2001 13

2006 13

2010 13

目录 XIII

2012 14

2014 14

2015 14

2016 14

2017 14

我可以用聊天机器人解决什么样的问题 15

这个问题能通过简单的问答或来回交流解决吗 15

这个工作是否有高度重复性,需要进行数据收集和分析 15

你的机器人的任务可以自动化和固定化吗 16

一个 QnA 机器人 16

从聊天机器人开始 17

聊天机器人中的决策树 18

在聊天机器人中使用决策树 18

决策树如何起到作用 18

最好的聊天机器人/机器人框架 21

聊天机器人组件和使用的相关术语 23

意图(Intent) 23

实体(Entities) 23

话术(Utterances) 24

训练机器人 24

置信度得分 24

第 2 章 聊天机器人中的自然语言处理 25

为什么我需要自然语言处理知识来搭建聊天机器人 25

spaCy 是什么 26

spaCy 的基准测试结果 27

spaCy 提供了什么能力 27

spaCy 的特性 28

安装和前置条件 29

spaCy 模型是什么 31

搭建聊天机器人所使用的自然语言处理基本方法 32

XIV Python 聊天机器人开发

词性标注 32

词干提取和词性还原 36

命名实体识别 38

停用词 41

依存句法分析 43

名词块 47

计算相似度 49

搭建聊天机器人时自然语言处理的一些好方法 51

分词 51

正则表达式 52

总结 53

第 3 章 轻松搭建聊天机器人 55

Dialogflow 简介 55

开始 56

搭建一个点餐机器人 57

确定范围 57

列举意图 57

列举实体 58

搭建点餐机器人 58

Dialogflow 入门 59

创建意图的几大要点 62

创建意图并添加自定义话术 62

为意图添加默认回复 63

菜品描述意图及附属实体 64

理解用户需求并回复 67

将 Dialogflow 聊天机器人发布到互联网上 72

在 Facebook Messenger 上集成 Dialogflow 聊天机器人 75

设置 Facebook 76

创建一个 Facebook 应用程序 76

设置 Dialogflow 控制台 77

配置 Webhook 79

目录 XV

测试信使机器人 80

Fulfillment 83

启用 Webhook 85

检查响应数据 87

总结 89

第 4 章 从零开始搭建聊天机器人 91

Rasa NLU 是什么 92

我们为什么要使用 Rasa NLU 92

深入了解 Rasa NLU 93

从零开始训练和搭建聊天机器人 94

搭建一个星座聊天机器人 94

星座机器人和用户之间的对话脚本 95

为聊天机器人准备数据 96

训练聊天机器人模型 101

从模型进行预测 103

使用 Rasa Core 进行对话管理 105

深入了解 Rasa Core 及对话系统 105

理解 Rasa 概念 108

为聊天机器人创建域文件 111

为聊天机器人编写自定义动作 113

训练机器人的数据准备 116

构造故事数据 117

交互学习 119

将对话导出成故事 132

测试机器人 133

测试用例一 133

测试用例二 134

总结 135

XVI Python 聊天机器人开发

第 5 章 部署自己的聊天机器人 137

前提条件 137

Rasa 的凭据管理 137

在 Facebook 上部署聊天机器人 139

在 Heroku 上创建一个应用 139

在本地系统中安装 Heroku 140

在 Facebook 上创建和设置应用程序 140

在 Heroku 上创建和部署 Rasa 动作服务器应用程序 143

创建 Rasa 聊天机器人 API 应用程序 144

创建一个用于 Facebook Messenger 聊天机器人的独立脚本 144

验证对话管理应用程序在 Heroku 上的部署情况 147

集成 Facebook Webhook 148

部署后验证:Facebook 聊天机器人 149

在 Slack 上部署聊天机器人 151

为 Slack 创建独立脚本 151

编辑 Procfile 154

将 Slack 机器人最终部署到 Heroku 上 154

订阅 Slack 事件 155

订阅机器人事件 156

部署后验证:Slack 机器人 156

独立部署聊天机器人 157

编写脚本实现自己的聊天机器人通道 158

编写 Procfile 并部署到 Web 上 159

验证你的聊天机器人 API 160

绘制聊天机器人的图形界面 161

总结 165

短评

书很薄,初看一般,等看完再看效果吧

2020-07-11 21:24:07

送货很快,应该不错,。

2020-07-09 11:36:44

就当入门,好好玩一下,哈哈,期待期待(?˙ー˙?),要好好学学,加油???!(?•??•?)??

2020-06-21 11:28:25

很好很不错很好很不错

2020-06-21 18:51:09

书已收到,还没有开始研读,粗粗看了一下,书还行,就是书价太贵了!本书讲述了机器学习的概念和自然语言处理的技术,详细讲解了用机器学习来处理自然语言,并且用Python来加以实现,使用Python代码开发了一个聊天机器人,值得初学者参考!

2020-06-15 12:01:42

内容不错不错 ,浅显易懂,纸质还行,比较注重实用的书。

2020-06-14 09:54:37

有很多干货,值得一读

2020-05-15 22:31:50

好书,一口气买了很多,最新出版的技术书籍

2020-05-15 18:18:25

标签
机器人