Press "Enter" to skip to content

使用Amazon SageMaker构建邮件垃圾检测器

垃圾邮件,也称为垃圾邮件,一次性发送给大量用户,通常包含欺诈、钓鱼内容或晦涩的信息。垃圾邮件有时是由人工手动发送的,但更常见的是使用机器人发送。垃圾邮件的例子包括假广告、连锁邮件和冒充尝试。有一种风险,即特别伪装的垃圾邮件可能会出现在您的收件箱中,如果点击可能会很危险。为了保护您的设备和敏感信息,需要采取额外的预防措施。

随着技术的不断进步,垃圾邮件的检测变得越来越具有挑战性,因为其性质在不断变化。垃圾邮件与其他类型的安全威胁相当不同。它可能一开始看起来只是一条令人讨厌的消息,并不构成威胁,但它具有即时的影响。此外,垃圾邮件发送者经常采用新技术。提供电子邮件服务的组织希望尽量减少垃圾邮件,以避免对其终端客户造成任何损害。

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

解决方案概述

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

使用Amazon SageMaker构建邮件垃圾检测器 四海 第1张

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

我们将为您介绍以下设置我们的垃圾邮件检测器模型的步骤:

  1. 从GitHub存储库下载示例数据集。
  2. 在Amazon SageMaker Studio笔记本中加载数据。
  3. 为模型准备数据。
  4. 训练、部署和测试模型。

先决条件

在进行此用例之前,请完成以下先决条件:

  1. 设置一个AWS账户。
  2. 设置一个SageMaker域。
  3. 创建一个Amazon Simple Storage Service(Amazon S3)存储桶。有关说明,请参见创建您的第一个S3存储桶。

下载数据集

从GitHub下载email_dataset.csv,并将文件上传到S3存储桶。

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

在SageMaker Studio中加载数据

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

  1. 从GitHub下载spam_detector.ipynb文件,并将文件上传到SageMaker Studio。
  2. 在Studio笔记本中打开spam_detector.ipynb笔记本。
  3. 如果提示选择一个内核,请选择Python 3(数据科学3.0)内核并选择选择。否则,请验证是否已自动选择了正确的内核。

使用Amazon SageMaker构建邮件垃圾检测器 四海 第2张

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

使用Amazon SageMaker构建邮件垃圾检测器 四海 第3张

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

使用Amazon SageMaker构建邮件垃圾检测器 四海 第4张

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

使用Amazon SageMaker构建邮件垃圾检测器 四海 第5张

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

准备数据

BlazingText算法期望数据格式如下:

__label__<label> "<features>"

这是一个示例:

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

检查BlazingText算法的训练和验证数据格式。

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

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

使用Amazon SageMaker构建邮件垃圾检测器 四海 第6张

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

使用Amazon SageMaker构建邮件垃圾检测器 四海 第7张

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

使用Amazon SageMaker构建邮件垃圾检测器 四海 第8张

训练模型

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

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

使用Amazon SageMaker构建邮件垃圾检测器 四海 第9张

  1. 将学习模式超参数设置为supervised。

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

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

使用Amazon SageMaker构建邮件垃圾检测器 四海 第10张

  1. 开始训练模型。

使用Amazon SageMaker构建邮件垃圾检测器 四海 第11张

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

使用Amazon SageMaker构建邮件垃圾检测器 四海 第12张

部署模型

在这一步中,我们将训练好的模型部署为一个端点。选择您喜欢的实例

使用Amazon SageMaker构建邮件垃圾检测器 四海 第13张

测试模型

让我们提供三个电子邮件的示例,我们希望对其进行预测:

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

对电子邮件进行分词,并在调用REST API时指定要使用的有效负载。

使用Amazon SageMaker构建邮件垃圾检测器 四海 第14张

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

使用Amazon SageMaker构建邮件垃圾检测器 四海 第15张

清理

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

使用Amazon SageMaker构建邮件垃圾检测器 四海 第16张

还要从S3存储桶中删除数据文件。

结论

在本文中,我们介绍了使用SageMaker BlazingText算法创建电子邮件垃圾邮件检测器的步骤。使用BlazingText算法,您可以处理大型数据集。BlazingText用于文本分析和文本分类问题,并具有无监督和监督学习模式。您可以将该算法用于客户情感分析和文本分类等用例。

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

Leave a Reply

Your email address will not be published. Required fields are marked *