使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 | 亚马逊网络服务

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 | 亚马逊网络服务

垃圾邮件,也称为垃圾邮件,会同时发送给大量用户,通常包含诈骗、网络钓鱼内容或神秘消息。 垃圾邮件有时是由人手动发送的,但大多数情况下是使用机器人发送的。 垃圾邮件的示例包括虚假广告、连锁电子邮件和冒充尝试。 伪装得特别好的垃圾邮件可能会进入您的收件箱,如果点击,可能会产生危险。 采取额外的预防措施来保护您的设备和敏感信息非常重要。

随着技术的进步,垃圾邮件的检测因其不断变化的性质而成为一项具有挑战性的任务。 垃圾邮件与其他类型的安全威胁有很大不同。 它乍一看可能像是一条烦人的消息,而不是一条 威胁,但它有立竿见影的效果。 垃圾邮件发送者也经常采用新技术。 提供电子邮件服务的组织希望尽可能减少垃圾邮件,以避免对最终客户造成任何损害。

在这篇文章中,我们展示了使用构建电子邮件垃圾邮件检测器是多么简单 亚马逊SageMaker。 内建 BlazingText算法 提供 Word2vec 和文本分类算法的优化实现。 Word2vec 对于各种自然语言处理 (NLP) 任务非常有用,例如情感分析、命名实体识别和机器翻译。 文本分类对于网络搜索、信息检索、排名和文档分类等应用至关重要。

解决方案概述

本文演示了如何使用 SageMaker 设置垃圾邮件检测器和过滤垃圾邮件。 让我们看看垃圾邮件检测器通常如何工作,如下图所示。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

电子邮件通过垃圾邮件检测器发送。 如果垃圾邮件检测器将其检测为垃圾邮件,则电子邮件将被发送到垃圾邮件文件夹。 否则,它会发送到客户的收件箱。

我们将引导您完成以下步骤来设置我们的垃圾邮件检测器模型:

  1. 从 GitHub 存储库下载示例数据集。
  2. 将数据加载到 亚马逊SageMaker Studio 笔记本电脑。
  3. 准备模型的数据。
  4. 训练、部署和测试模型。

先决条件

在深入研究此用例之前,请完成以下先决条件:

  1. 设置一个 AWS账户.
  2. 设置一个 SageMaker 域.
  3. 创建 亚马逊简单存储服务 (亚马逊 S3)存储桶。 有关说明,请参阅 创建您的第一个 S3 存储桶.

下载数据集

从以下位置下载 email_dataset.csv GitHub上将文件上传到S3存储桶.

BlazingText 算法需要一个带有空格分隔标记的预处理文本文件。 文件中的每一行都应包含一个句子。 如果您需要训练多个文本文件,请将它们连接成一个文件并将该文件上传到相应的通道中。

在 SageMaker Studio 中加载数据

要执行数据加载,请完成以下步骤:

  1. 下载 spam_detector.ipynb 来自的文件 GitHub上在 SageMaker Studio 中上传文件.
  2. 在 Studio 笔记本中,打开 spam_detector.ipynb 笔记本电脑。
  3. 如果系统提示您选择内核,请选择 Python 3 (Data Science 3.0) 内核,然后选择 选择。 如果没有,请验证是否已自动选择正确的内核。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

  1. 导入所需的 Python 库并设置角色和 S3 存储桶。 指定您上传 email_dataset.csv 的 S3 存储桶和前缀。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

  1. 在笔记本中运行数据加载步骤。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

  1. 根据类别标签检查数据集是否平衡。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

我们可以看到我们的数据集是平衡的。

准备数据

BlazingText 算法需要以下格式的数据:

__label__<label> "<features>"

下面是一个例子:

__label__0 “This is HAM"
__label__1 "This is SPAM"

单向阀 BlazingText 算法的训练和验证数据格式.

您现在在笔记本中运行数据准备步骤。

  1. 首先,您需要将 Category 列转换为整数。 以下单元格将 SPAM 值替换为 1,将 HAM 值替换为 0。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

  1. 下一个单元格添加前缀 __label__ 到每个类别值并对消息列进行标记。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

  1. 下一步是将数据集拆分为训练数据集和验证数据集,并将文件上传到 S3 存储桶。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

训练模型

要训​​练模型,请在笔记本中完成以下步骤:

  1. 设置 BlazingText 估计器并创建一个传递容器图像的估计器实例。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

  1. 将学习模式超参数设置为受监督。

BlazingText 具有无监督和监督学习模式。 我们的用例是文本分类,即监督学习。

  1. 创建训练和验证数据通道。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

  1. 开始训练模型。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

  1. 获取训练和验证数据集的准确性。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

部署模型

在此步骤中,我们将经过训练的模型部署为端点。 选择您的首选实例

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

测试模型

让我们提供一个我们想要获得预测的三封电子邮件的示例:

  • 单击下面的链接,提供您的详细信息并赢得此奖项
  • 夏季最佳优惠在这里
  • 星期五在办公室见。

对电子邮件消息进行标记并指定调用 REST API 时要使用的负载。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

现在我们可以预测每封电子邮件的电子邮件分类。 调用文本分类器的预测方法,将标记化的句子实例(有效负载)传递到数据参数中。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

清理

最后,您可以删除端点以避免任何意外成本。

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

另外,删除 S3 存储桶中的数据文件.

结论

在这篇文章中,我们引导您完成使用以下命令创建电子邮件垃圾邮件检测器的步骤: SageMaker BlazingText算法。 使用 BlazingText 算法,您可以扩展到大型数据集。 BlazingText用于文本分析和文本分类问题,具有无监督和监督学习模式。 您可以将该算法用于客户情绪分析和文本分类等用例。

要了解有关 BlazingText 算法的更多信息,请查看 BlazingText算法.


关于作者

使用 Amazon SageMaker 构建电子邮件垃圾邮件检测器 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

德拉伊·塔库尔(Dhiraj Thakur) 是Amazon Web Services的解决方案架构师。 他与AWS客户和合作伙伴合作,提供有关企业云采用,迁移和策略的指南。 他对技术充满热情,并喜欢在分析和AI / ML领域中进行构建和试验。

时间戳记:

更多来自 AWS机器学习