Python 聊天机器人2024 年 08 月 29 日 | 阅读 9 分钟 在过去的几年里,Python 编程语言中的聊天机器人在技术和商业领域受到了极大的推崇。这些智能机器人非常擅长模仿自然人类语言并与人类聊天,以至于不同行业的公司都在接受它们。从电子商务行业到医疗机构,每个人似乎都在利用这个巧妙的工具来推动业务优势。在下面的教程中,我们将借助 Python 编程语言来理解聊天机器人,并讨论在 Python 中创建聊天机器人的步骤。 理解聊天机器人聊天机器人 (Chatbot) 是一种基于人工智能的软件,旨在以人类的自然语言与人类互动。这些聊天机器人通常通过听觉或文本方式进行交流,它们可以轻松模仿人类语言,以类似人类的方式与人类交流。聊天机器人被认为是自然语言处理的最佳应用之一。 我们可以将聊天机器人分为两个主要变体:基于规则的聊天机器人 和 自学习聊天机器人。
第一个名为 ELIZA 的聊天机器人由 Joseph Weizenbaum 于 1966 年设计和开发,它仅用 200 行代码就能模仿心理治疗师的语言。但随着技术的发展,我们已经从脚本化的聊天机器人发展到今天的 Python 聊天机器人。 当下世代的聊天机器人今天,我们拥有由人工智能驱动的智能聊天机器人,它们利用自然语言处理 (NLP) 来理解人类的命令(文本和语音)并从经验中学习。聊天机器人已成为拥有活跃在线存在(网站和社交网络平台)的公司和品牌的必备客户交互工具。 借助 Python,聊天机器人被认为是一个巧妙的工具,因为它们促进了品牌与客户之间的快速消息传递。让我们想想微软的 Cortana、亚马逊的 Alexa 和苹果的 Siri。这些聊天机器人是不是很棒?学习如何使用 Python 编程语言创建聊天机器人变得非常有趣。 从根本上说,利用 Python 的聊天机器人被设计和编程为接收我们提供的数据,然后使用复杂的人工智能算法对其进行分析。然后它会向我们提供书面或口头响应。由于这些机器人可以从经验和行为中学习,因此它们可以响应各种各样的查询和命令。 尽管 Python 聊天机器人目前已开始主导科技领域,但根据 Gartner 的预测,到 2020 年,聊天机器人已处理了大约 85% 的客户-品牌互动。 鉴于聊天机器人在行业中日益增长的普及和采用,我们可以通过学习如何在 Python(全球使用最广泛的编程语言之一)中创建聊天机器人来提高市场价值。 那么,让我们开始吧! 理解 ChatterBot 库ChatterBot 是一个 Python 库,旨在为用户输入提供自动化响应。它利用机器学习算法的组合来生成多种类型的响应。此功能使开发人员能够使用 Python 构建可以与人类交流并提供相关且适当响应的聊天机器人。此外,ML 算法支持机器人通过经验提高其性能。 ChatterBot 库的另一个惊人之处在于它的语言独立性。该库以一种使其可以在多种编程语言中训练机器人的方式开发。 理解 ChatterBot 库的工作原理当用户在聊天机器人(在 ChatterBot 上设计)中插入特定输入时,机器人会保存输入和响应以供将来使用。这些信息(收集到的经验)允许聊天机器人每次接收到新输入时生成自动化响应。 程序从最接近输入并匹配的语句中选择最合适的响应,然后从已知语句和响应选项中提供响应。随着时间的推移,随着聊天机器人进行更多的通信,回复的准确性会提高。 使用 Python 创建聊天机器人我们将采用循序渐进的方法,并分解创建 Python 聊天的过程。 我们将从导入项目所需的所有必需包和模块开始构建 Python 聊天机器人。我们还将初始化我们想在其中使用的不同变量。此外,我们还将处理文本数据,因此在设计 ML 模型之前,我们必须对数据集执行数据预处理。 这就是标记化支持文本数据的地方——它将大型文本数据集转换为更小、可读的块(例如单词)。一旦这个过程完成,我们可以进行词形还原,将一个词转换为其词形形式。然后它会生成一个 pickle 文件,以存储用于预测机器人响应的 Python 对象。 聊天机器人开发过程的另一个主要部分是开发训练和测试数据集。 现在我们已经了解了 Python 中聊天机器人开发的基本概念,让我们开始实际过程吧! 准备依赖项使用 ChatterBot 库在 Python 中创建聊天机器人的第一步是在系统中安装该库。作为一种良好实践,我们也可以使用新的 Python 虚拟环境进行库安装。我们可以在命令提示符或 Python 终端中使用以下命令通过 pip 安装程序安装该库 语法 我们还可以直接从 GitHub 安装 ChatterBot 库的最新开发版本。为此,我们将不得不使用以下命令 语法 如果有人想升级该库,可以使用以下命令 语法 现在设置已准备就绪,我们可以继续下一步,以使用 Python 编程语言创建聊天机器人。 导入类 Python 聊天机器人开发过程的第二步是导入所需的类。 让我们考虑以下代码片段来理解这一点。 文件:my_chatbot.py 说明 在上面的代码片段中,我们导入了两个类——来自 chatterbot 的 ChatBot 和来自 chatterbot.trainers 的 ListTrainer。 创建和训练聊天机器人下一步是使用“ChatBot”类的实例创建一个聊天机器人,并训练该机器人以提高其性能。训练机器人可确保它拥有足够的知识,可以针对特定输入语句开始提供特定回复。 让我们考虑相同的以下代码片段。 文件:my_chatbot.py 说明 在上述代码片段中,我们定义了一个变量,它是“ChatBot”类的一个实例。我们已在该类中包含了各种参数。第一个参数 'name' 表示 Python 聊天机器人的名称。另一个名为 'read_only' 的参数接受布尔值,用于禁用 (TRUE) 或启用 (FALSE) 机器人在训练后学习的能力。我们还包含了另一个名为 'logic_adapters' 的参数,用于指定用于训练聊天机器人的适配器。 虽然 'chatterbot.logic.MathematicalEvaluation' 帮助聊天机器人解决数学问题,但 ` 帮助它从已提供的响应列表中选择完美匹配项。 由于我们必须提供一个响应列表,我们可以通过指定字符串列表来完成,我们可以使用这些字符串来训练 Python 聊天机器人并为特定查询找到完美匹配。让我们考虑以下我们可以训练 Python 聊天机器人学习的响应示例。 文件:my_chatbot.py 说明 在上面的代码片段中,我们定义了一些响应列表来训练聊天机器人。我们还可以通过简单地键入“ListTrainer”的实例并向其提供字符串列表来创建和训练聊天机器人,如下所示 文件:my_chatbot.py 说明 在上面的代码片段中,我们创建了 ListTrainer 类的一个实例,并使用 for 循环遍历响应列表中的每个项目。 现在,Python 聊天机器人已准备好进行通信。 与 Python 聊天机器人交流我们可以使用 get_response() 函数与 Python 聊天机器人进行交互。让我们考虑以下程序执行来理解它。 输出 # starting a conversation >>> print(myBot.get_response("Hi, there!")) Hi >>> print(myBot.get_response("What's your name?")) I'm Sakura. Ask me a math question, please. >>> print(myBot.get_response("Do you know Pythagorean theorem")) a squared plus b squared equals c squared. >>> print(myBot.get_response("Tell me the formula of law of cosines")) c**2 = a**2 + b**2 - 2*a*b*cos(gamma) 说明 上述程序执行告诉我们,我们已经成功地使用 chatterbot 库在 Python 中创建了一个聊天机器人。然而,还需要理解的是,使用 Python 的聊天机器人可能不知道如何回答所有查询。由于它的知识和训练仍然非常有限,我们必须给它时间并提供更多训练数据来进一步训练它。 使用语料库数据训练 Python 聊天机器人当我们进入在 Python 中创建聊天机器人的最后一步时,我们可以利用当前的语料库数据来进一步训练 Python 聊天机器人。 让我们考虑以下示例,使用机器人本身提供的语料库数据来训练 Python 聊天机器人。 文件:my_chatbot.py 说明 在上面的代码片段中,我们从 chatterbot.trainers 模块导入了 ChatterBotCorpusTrainer 类。我们为聊天机器人创建了一个该类的实例,并将训练语言设置为英语。 此外,从最后一条语句中,我们可以观察到 ChatterBot 库提供了多种语言的此功能。因此,我们还可以指定我们喜欢的语言的语料库子集。因此,我们的 Python 聊天机器人已成功创建。 以下是 Python 聊天机器人项目的完整代码。 完整项目代码文件:my_chatbot.py |
你想盖一所房子。开始建造过程的第一件事是什么?你为你的房子制定一个计划。你按照计划建造房子。计划就像房子的蓝图...
阅读 6 分钟
如果您熟悉在线社区,并且是其中一员或所有者,那么您一定听说过 Discord。在 Discord 中,您可能见过机器人管理这些群组。因此,我们将设置我们的 Discord 开发者门户账户并...
阅读 6 分钟
:Python开发者必学技术 在本教程中,我们将讨论Python开发者最流行、必学的技术。Python开发者协会中的每个人都听说过Celery,或者至少实现过一次。在快速互联网的时代,...
阅读 8 分钟
Python 为 GUI 开发(图形用户界面)提供了多种选择。Tkinter 是所有 GUI 方法中使用最频繁的方法。它是 Python 提供的 Tk GUI 工具包的典型 Python 接口。构建 GUI 应用程序最快、最简单的方法是...
11 分钟阅读
Pandas Pandas 是 Python 中内置的库,用于处理 Python 编程语言中的关系数据。它有许多函数和数据结构,有助于关系数据的操作。如果数据以行形式存储...
阅读 4 分钟
在本教程中,我们将讨论如何在 Python 中将元组转换为字典。我们知道元组的元素包含在括号中,字典的元素以键值对的形式存在并包含在...
阅读 4 分钟
JSON Web Token 是一种简洁、URL 安全的机制,用于表示需要在两方之间交换的声明 (JWT)。它经常用于在计算机之间传输数据和安全地验证用户。我们将在本文中介绍 JWT 的基础知识以及如何在 Python 中使用它们。
阅读 4 分钟
借助前进和后退按钮,图像查看器应用程序的用户可以在图像之间导航并一次查看一张图像。让我们按照几个简单的步骤在 Python 中构建一个图像查看器应用程序。有关图像查看器应用程序的信息:该应用程序……
阅读 6 分钟
PyQt5 是一个流行的 Python GUI 框架,它提供了一套用于创建桌面应用程序的工具。PyQt5 中的一个组件是 QDockWidget,它是一个可以停靠在 QMainWindow 中或作为顶级窗口浮动的窗口小部件。要设置...
阅读 3 分钟
在本教程中,我们将从各个方面比较 Python 的 Argparse、Docopt 和 Click 解析库。Argparse:从 Python 2.7(及更高版本)开始,argparse Python 模块是标准库的一部分,它使解析命令行参数变得更容易。它提供了一个...
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India