如何在 Python 中逐步制作聊天机器人 [Python Chatterbox 指南]

已发表: 2020-07-27

目录

如何用 Python 制作聊天机器人?

在过去的几年里, Python 聊天机器人在科技和商业领域广受欢迎。 这些智能机器人非常擅长模仿自然人类语言并与人类交谈,以至于各个工业部门的公司都在采用它们。 从电子商务公司到医疗机构,每个人似乎都在利用这个漂亮的工具来推动商业利益 在本文中,我们将学习使用 Python的聊天机器人以及如何使用 Python 制作聊天机器人。

从世界顶级大学在线学习机器学习——硕士、高级管理人员研究生课程和 ML 和 AI 高级证书课程,以加快您的职业生涯。

什么是聊天机器人?

聊天机器人是一种基于人工智能的软件,旨在以自然语言与人类互动。 这些聊天机器人通常通过听觉或文字方式进行交流,它们可以毫不费力地模仿人类语言,以类似人类的方式与人类交流。 聊天机器人可以说是自然语言处理的最佳应用之一。

聊天机器人可以分为两个主要变体——基于规则的和自学的。

基于规则的方法训练聊天机器人根据最初训练的一组预定规则回答问题。 这些设定的规则可以非常简单,也可以非常复杂。 虽然基于规则的聊天机器人可以很好地处理简单的查询,但它们通常无法处理更复杂的查询/请求。

python中的聊天机器人

顾名思义,自学机器人是可以自学的聊天机器人。 这些利用人工智能和机器学习等先进技术从实例和行为中训练自己。 自然,这些聊天机器人比基于规则的机器人要聪明得多。 自学习机器人可以进一步分为两类——基于检索的或生成的。

1. 基于检索的聊天机器人

基于检索的聊天机器人是一种基于预定义输入模式并设置响应的聊天机器人。 输入问题/模式后,聊天机器人会使用启发式方法来提供适当的响应。 基于检索的模型被广泛用于设计具有自定义功能的面向目标的聊天机器人,例如机器人的流程和语气,以增强客户体验。

2. 生成式聊天机器人

与基于检索的聊天机器人不同,生成式聊天机器人不基于预定义的响应——它们利用 seq2seq 神经网络。 这是基于机器翻译的概念,将源代码从一种语言翻译成另一种语言。 在 seq2seq 方法中,输入被转换为输出。

第一个聊天机器人可以追溯到 1966 年,当时 Joseph Weizenbaum 创建了 ELIZA,只需 200 行代码就可以模仿心理治疗师的语言。 然而,由于技术的快速进步,我们已经从脚本聊天机器人到今天的 Python 聊天机器人走了很长一段路。

当今时代的聊天机器人

今天,我们拥有由人工智能驱动的智能聊天机器人,它们使用自然语言处理 (NLP) 来理解人类命令(文本和语音)并从经验中学习。 聊天机器人已成为在线活跃的公司和品牌(网站和社交网络平台)的主要客户交互工具。

python中的聊天机器人

使用 python 的聊天机器人是一个很好的工具,因为它们促进了品牌和客户之间的即时消息传递。 想想苹果的 Siri、亚马逊的 Alexa 和微软的 Cortana。 这些不是很棒吗? 你不是已经很想学习如何用 Python 制作聊天机器人了吗?

使用 python 的聊天机器人

资源

本质上,使用 Python 的聊天机器人被编程为接收您提供给它的信息,然后在复杂的 AI 算法的帮助下对其进行分析,并为您提供书面或口头答复。 由于这些机器人可以从行为和经验中学习,它们可以响应各种查询和命令。

python中的聊天机器人

资源

尽管目前 Python 中的聊天机器人已经开始主导科技领域,但 Gartner 预测,到 2020 年,聊天机器人将处理近 85% 的客户-品牌交互

鉴于聊天机器人在行业中的日益普及和采用,您可以通过学习如何使用 Python(世界上使用最广泛的编程语言之一)制作聊天机器人来增加您的市场价值。

今天,我们将教你如何使用 ChatterBot Python 库在 Python 中制作一个简单的聊天机器人。 那么,让我们开始吧!

ChatterBot 库

ChatterBot 是一个 Python 库,旨在为用户输入提供自动响应。 它利用 ML算法的组合来生成许多不同类型的响应。 此功能允许开发人员使用 python 构建聊天机器人,可以与人类交谈并提供适当和相关的响应。 不仅如此,机器学习算法还帮助机器人通过经验提高其性能。

ChatterBot 的另一个优秀特性是它的语言独立性。 该库的设计方式使您可以使用多种编程语言训练您的机器人。

ChatterBot 如何运作?

当用户在聊天机器人(在 ChatterBot 上开发)中输入特定输入时,机器人会将输入与响应一起保存,以备将来使用。 这些数据(收集的经验)允许聊天机器人在每次输入新输入时生成自动响应。

程序从与输入匹配的最接近的语句中选择最合适的响应,然后从已知的语句和响应选择中提供响应。 随着时间的推移,随着聊天机器人参与更多交互,响应的准确性会提高。

资源

如何在 Python 中制作聊天机器人?

我们将逐步介绍并分解构建 Python 聊天机器人的过程。

要在 Python 中构建聊天机器人,您必须导入所有必要的包并初始化要在聊天机器人项目中使用的变量。 此外,请记住,在处理文本数据时,您需要在设计 ML 模型之前对数据集执行数据预处理。

这就是标记化有助于文本数据的地方——它有助于将大型文本数据集分割成更小的、可读的块(如单词)。 完成后,您还可以进行词形还原,将单词转换为其引理形式。 然后它创建一个pickle文件来存储用于预测机器人响应的python对象。

聊天机器人开发过程的另一个重要部分是创建训练和测试数据集。

现在我们已经介绍了用 Python 开发聊天机器人的基础知识,让我们更深入地了解实际过程!

1.准备依赖

使用 ChatterBot 库在 Python 中创建聊天机器人的第一步是在您的系统中安装该库。 最好创建并使用新的 Python 虚拟环境进行安装。 为此,您必须在 Python 终端中编写并执行此命令:

您还可以直接从 GitHub 安装 ChatterBot 的最新开发版本。 为此,您必须编写并执行以下命令:

pip install git+git://github.com/gunthercox/ChatterBot.git@master

如果你想升级命令,你也可以这样做:

现在您的设置已准备就绪,我们可以继续下一步使用 python 创建聊天机器人。

2. 导入类

导入类是 Python 聊天机器人创建过程的第二步。 您需要做的就是导入两个类——来自 chatterbot 的 ChatBot 和来自 chatterbot.trainers 的 ListTrainer。 为此,您可以执行以下命令:

3. 创建和训练聊天机器人

这是在 python 中创建聊天机器人的第三步。 您正在创建的聊天机器人将是“ChatBot”类的一个实例。 创建新的 ChatterBot 实例后,您可以训练机器人以提高其性能。 培训可确保机器人有足够的知识来开始对特定输入的特定响应。 您现在必须执行以下命令:

python中的聊天机器人

在这里,参数(对应于参数名称)表示 Python 聊天机器人的名称。 如果您希望在训练后禁用机器人的学习能力,您可以包含“read_only=True”命令。 命令“logic_adapters”表示用于训练聊天机器人的适配器列表。

虽然“chatterbot.logic.MathematicalEvaluation”帮助机器人解决数学问题,但“chatterbot.logic.BestMatch”帮助它从已经提供的响应列表中选择最佳匹配。

由于您必须提供响应列表,因此您可以通过指定稍后可用于训练 Python 聊天机器人的字符串列表来完成此操作,并为每个查询找到最佳匹配。 这是一个响应示例,您可以使用 python 训练您的聊天机器人来学习:

python中的聊天机器人

您还可以通过编写“ListTrainer”实例并为其提供字符串列表来创建和训练机器人,如下所示:

现在,您的 Python 聊天机器人已准备好进行通信。

4. 与 Python 聊天机器人交流

要与 Python 聊天机器人交互,您可以使用 .get_response() 函数。 这是它在交流时的样子:

使用 python 的聊天机器人

但是,必须了解使用 python 的聊天机器人可能不知道如何回答您的所有问题。 由于它的知识和训练仍然非常有限,你必须给它时间并提供更多的训练数据来进一步训练它。

5. 用数据语料库训练你的 Python 聊天机器人

在如何使用 Python 制作聊天机器人的最后一步中,为了进一步训练您的 Python 聊天机器人,您可以使用现有的数据语料库。 以下是如何使用机器人本身提供的数据语料库训练 Python 聊天机器人的示例:

代码片段来源

好消息是 ChatterBot 以许多不同的语言提供此功能。 因此,您还可以使用您喜欢的语言指定语料库的子集。 这就是我们在 Python 中创建聊天机器人的方式。

结论

我们在这里展示的只是如何用 Python 制作聊天机器人的众多方法中的一种。 您还可以使用另一个资源丰富的 Python 库 NLTK 来创建 Python 聊天机器人。 虽然你在这里学到的是一个非常基本的 Python 聊天机器人,几乎没有任何认知技能,但它应该足以帮助你理解聊天机器人的解剖结构。

一旦你完全理解了使用 python的聊天机器人的设计,你就可以使用不同的工具和命令对其进行试验,以使其更加智能。

此外,如果您有兴趣了解有关机器学习的更多信息,请查看 IIIT-B 和 upGrad 的机器学习执行 PG 计划,该计划专为工作专业人士设计,提供 450 多个小时的严格培训、30 多个案例研究和作业、IIIT -B 校友身份,5 个以上实用的实践顶点项目和顶级公司的工作协助。

什么是聊天机器人?

聊天机器人是一种基于人工智能的软件,可以用人类自己的语言与人类交谈。 这些聊天机器人通常通过音频或书面方式与人类联系,它们可以轻松模仿人类语言以类似人类的方式与人类交谈。 基于规则的方法教聊天机器人根据一组预先确定的规则回答查询,这些规则是在首次创建时教授的。 这些预定规则可以简单也可以复杂。 顾名思义,自学机器人是可以自行训练的机器人。 这些利用人工智能和机器学习等尖端技术从示例和行为中学习。

构建聊天机器人需要什么技能?

聊天机器人的开发人员必须具备多种技能。 他们必须对平台和编程语言有透彻的了解,才能有效地进行聊天机器人的开发。 聊天机器人的开发人员应该精通学习算法、人工智能和自然语言处理。 多语言背景,具有 Java、PHP、Python、Ruby 等语言的编程经验。 程序员必须熟悉平台才能提高聊天机器人的质量。

什么是基于规则的聊天机器人?

基于规则的机器人不使用人工智能,而是利用树状流程来帮助客人解决问题。 这表明机器人将引导客人完成一系列后续问题,以得出正确的解决方案。 您可以完全控制对话,因为结构和响应都是预先定义的。 那么,为什么要使用有规则的聊天机器人呢? 较小的数字和简单的查询,例如在餐厅预订餐桌或询问营业时间,是基于规则的聊天机器人的理想选择。