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

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

作者:黄光远,杨菲
ISBN:9787121383472
定价:¥69.0
字数:257千字
页数:184
出版时间:2020-05
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

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

前言

译者序 随着人工智能技术的蓬勃发展,越来越多的聊天机器人进入我们的日常生活,如天猫精灵、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

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个