PyTorch 中基于 NLP 的聊天机器人。 额外的 Flask 和 JavaScript 部署

源节点: 1123050
维多利亚·马斯洛娃

在提高客户满意度的各种方法中,聊天机器人是一种 为客户群提供帮助的强大解决方案。聊天机器人价格实惠,有助于扩展您的业务,完全可定制,帮助您的客户找到合适的产品/服务,并帮助为您的业务建立信任。为了证明这一点,我将浏览以下内容:

  1. 什么是机器学习聊天机器人?
  2. 为什么聊天机器人在不同的业务领域都很重要?
  3. 使用 PyTorch 构建您自己的基于 NLP 的聊天机器人。
  4. 在 Javascript 和 Flask 中部署聊天机器人。

聊天机器人(对话式人工智能) 是一种自动化程序,通过短信、语音聊天或两者来模拟人类对话。它根据大量输入学习如何做到这一点,并且 自然语言处理(NLP).

出于语义考虑,聊天机器人和会话助理将在本文中互换使用,它们的含义是相同的。

Business Insider 报道称,全球聊天机器人市场预计将从 2.6 年的 2019 亿美元增长到 9.4 年的 2024 亿美元,预计复合年增长率为 29.7%。同一份报告还表明,由于为客户提供无缝全渠道体验的需求不断增长,聊天机器人实施的最高增长将出现在零售和电子商务行业。

仅此一点就足以让您相信 聊天机器人是处理客户关系的方式 向前发展,但它们也将继续发展为企业工具的内部工具,几乎每个行业都将采用该技术(如果还没有的话)。

以下是越来越多的企业采用聊天机器人策略的关键原因,以及它们如何成为获取和留住客户的双赢公式。

  • 减少客户等待时间 - 21%的消费者 将聊天机器人视为联系企业的最简单方式。机器人是一种更智能的方式,可以确保客户立即收到他们正在寻找的响应,而无需让他们排队等待。
  • 24×7可用性 — 机器人始终可以与客户互动,立即回答他们提出的常见问题。使用聊天机器人的最大潜在好处是 24 小时客户服务。
  • 更好的客户参与度 — 对话机器人可以通过启动主动保护并提供可提升客户体验的个性化建议来全天候吸引客户。
  • 节省客户服务成本 — 聊天机器人将帮助企业节省更多 的美元8亿元 每年。机器人可以轻松扩展,从而节省雇用更多资源的客户支持成本、基础设施成本等。
  • 自动化销售线索资格和销售 — 您可以使用聊天机器人自动化您的销售漏斗,以预先确定潜在客户的资格,并将其引导至合适的团队进行进一步培养。能够立即吸引客户可以增加潜在客户数量和转化率。

1. 会话式人工智能如何实现客户服务自动化

2. 自动与实时聊天:客户服务的未来会是什么样子?

3. 聊天机器人在 COVID-19 大流行中作为医疗助理

4. 聊天机器人对比智能虚拟助理 — 有什么不同以及为什么要关心?

开发人员、数据科学家和机器学习工程师可以在许多平台上创建和维护聊天机器人,例如 对话流程亚马逊Lex。但我在本文中的目标是向您展示如何从头开始创建聊天机器人,以帮助您理解自然语言处理的前馈网络的概念。

让我们开始吧!

您可以在我的中轻松找到完整的代码 GitHub回购.

这是我想要遵循的一个简短计划来构建模型。

  1. 理论 + NLP 概念(词干、分词、词袋)
  2. 创建训练数据
  3. PyTorch 模型和训练
  4. 保存/加载模型并实现聊天

我们将为咖啡和茶供应商的需求构建聊天机器人,以处理有关营业时间、预订选项等的简单问题。

聊天机器人框架需要一个定义对话意图的结构。一种简洁的方法是使用 JSON 文件,如下所示。

聊天机器人意图

每个对话意图包含:

  • a 行李牌 (一个独特的名字)
  • 模式 (我们的神经网络文本分类器的句子模式)
  • 回复 (其中一个将用作响应)

所以我们的 NLP 管道看起来像这样

  • 令牌化
  • 下部+阀杆
  • 排除标点符号
  • 言语包

我们创建一个文档(句子)列表,每个句子都是一个列表 词干词 每个文档都与一个意图(一个类)相关联。完整代码在 这个文件.

然后我们需要设置训练数据和超参数。

在完成所有必要的预处理步骤后,我们创建一个 模型.py 文件来定义前馈神经网络。

前馈神经网络是 人工神经网络 其中单元之间的连接不形成 周期。前馈神经网络是第一种发明的人工神经网络,并且比其对应的神经网络更简单, 递归神经网络。 他们叫 前馈 因为信息仅在网络中向前传播(无循环),首先通过输入节点,然后通过 隐藏节点 (如果存在),最后通过输出节点。

当心!最后我们不需要激活函数,因为稍后我们将使用交叉熵损失,它会自动为我们应用激活函数。

为什么我们使用 ReLU?

它们简单、计算速度快,并且不会像 sigmoid 函数(logistic、tanh、erf 等)那样受到梯度消失的影响。实现的简单性使它们适合在 GPU 上使用,由于针对矩阵运算(3D 图形也需要)进行了优化,GPU 在当今非常常见。

定义 CrossEntropy Loss 和 Adam 后,我们实施后向和优化器步骤。

所有这些线是什么意思?

我们将 Zero_grad() 设置为优化器,因为在 PyTorch 中,对于训练阶段的每个小批量,我们需要在开始进行反向传播(即更新权重和偏差)之前将梯度显式设置为零,因为 PyTorch 将梯度累积在随后的向后传递。

多次调用 .backward() 会累积每个参数的梯度(通过加法)。这就是为什么你应该在每次 .step() 调用之后调用 optimizationr.zero_grad() 。请注意,在第一次 .backward 调用之后,只有在执行另一次前向传递后才可能进行第二次调用。

Optimizer.step是根据当前梯度(存储在参数的.grad属性中)和更新规则来执行参数更新。

最后,运行 train.py 脚本后,我们得到了多么美妙的结果!

在最后一部分中,我们需要保存我们的模型。这是我轻松完成的方法。

我决定更进一步,创建这个令人惊叹的 ChatBot 可视化。

您可以在我的 GitHub 存储库中找到我所有的 HTML、CSS 和 JavaScript 脚本。

尽情享受您的购物之旅!

现在,您已经了解了什么是聊天机器人以及机器人技术对于任何类型的业务有多么重要。您肯定会同意机器人已经彻底改变了企业与客户互动的方式。

聊天机器人技术将成为未来客户参与战略的重要组成部分。不久的将来,机器人将进一步增强人类能力,并使人类代理在处理战略活动时更具创新性。

Source: https://chatbotslife.com/nlp-based-chatbot-in-pytorch-bonus-flask-and-javascript-deployment-474c4e59ceff?source=rss—-a49517e4c30b—4

时间戳记:

更多来自 聊天机器人生活