Crie um detector de spam de e-mail usando o Amazon SageMaker | Amazon Web Services

Crie um detector de spam de e-mail usando o Amazon SageMaker | Amazon Web Services

E-mails de spam, também conhecidos como lixo eletrônico, são enviados para um grande número de usuários de uma só vez e geralmente contêm golpes, conteúdo de phishing ou mensagens enigmáticas. Às vezes, os e-mails de spam são enviados manualmente por um ser humano, mas na maioria das vezes são enviados usando um bot. Exemplos de e-mails de spam incluem anúncios falsos, e-mails em cadeia e tentativas de falsificação de identidade. Existe o risco de um e-mail de spam particularmente bem disfarçado chegar à sua caixa de entrada, o que pode ser perigoso se clicado. É importante tomar precauções extras para proteger seu dispositivo e informações confidenciais.

À medida que a tecnologia está melhorando, a detecção de e-mails de spam se torna uma tarefa desafiadora devido à sua natureza mutável. O spam é bem diferente de outros tipos de ameaças à segurança. A princípio pode parecer uma mensagem irritante e não um ameaça, mas tem um efeito imediato. Além disso, os spammers geralmente adaptam novas técnicas. As organizações que fornecem serviços de e-mail desejam minimizar o spam o máximo possível para evitar danos aos clientes finais.

Nesta postagem, mostramos como é simples criar um detector de spam de e-mail usando Amazon Sage Maker. O embutido Algoritmo BlazingText oferece implementações otimizadas de algoritmos de classificação de texto e Word2vec. O Word2vec é útil para várias tarefas de processamento de linguagem natural (NLP), como análise de sentimento, reconhecimento de entidades nomeadas e tradução automática. A classificação de texto é essencial para aplicativos como pesquisas na Web, recuperação de informações, classificação e classificação de documentos.

Visão geral da solução

Esta postagem demonstra como você pode configurar o detector de spam de e-mail e filtrar e-mails de spam usando o SageMaker. Vamos ver como um detector de spam normalmente funciona, conforme mostrado no diagrama a seguir.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Os e-mails são enviados por meio de um detector de spam. Um e-mail é enviado para a pasta de spam se o detector de spam o detectar como spam. Caso contrário, é enviado para a caixa de entrada do cliente.

Orientamos você nas seguintes etapas para configurar nosso modelo de detector de spam:

  1. Baixe o conjunto de dados de amostra do repositório do GitHub.
  2. Carregue os dados em um Estúdio Amazon SageMaker notebook.
  3. Prepare os dados para o modelo.
  4. Treine, implante e teste o modelo.

Pré-requisitos

Antes de mergulhar neste caso de uso, preencha os seguintes pré-requisitos:

  1. Configure um Conta da AWS.
  2. Configurar uma Domínio do SageMaker.
  3. Crie uma Serviço de armazenamento simples da Amazon (Amazon S3). Para obter instruções, consulte Crie seu primeiro bucket do S3.

Baixe o conjunto de dados

Baixe o email_dataset.csv de GitHub e faça upload do arquivo para o bucket S3.

O algoritmo BlazingText espera um único arquivo de texto pré-processado com tokens separados por espaço. Cada linha do arquivo deve conter uma única frase. Se você precisar treinar em vários arquivos de texto, concatene-os em um arquivo e carregue o arquivo no respectivo canal.

Carregue os dados no SageMaker Studio

Para executar o carregamento de dados, conclua as etapas a seguir:

  1. Faça o download do spam_detector.ipynb arquivo de GitHub e carregue o arquivo no SageMaker Studio.
  2. No bloco de notas do Studio, abra o spam_detector.ipynb notebook.
  3. Se você for solicitado a escolher um Kernel, escolha o kernel Python 3 (Data Science 3.0) e escolha Selecionar. Caso contrário, verifique se o kernel correto foi selecionado automaticamente.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

  1. Importe a biblioteca Python necessária e defina as funções e os depósitos S3. Especifique o bucket S3 e o prefixo onde você carregou email_dataset.csv.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

  1. Execute a etapa de carregamento de dados no notebook.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

  1. Verifique se o conjunto de dados está balanceado ou não com base nos rótulos de categoria.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Podemos ver que nosso conjunto de dados está balanceado.

Prepare os dados

O algoritmo BlazingText espera os dados no seguinte formato:

__label__<label> "<features>"

Aqui está um exemplo:

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

Verifique Formato de dados de treinamento e validação para o algoritmo BlazingText.

Agora você executa a etapa de preparação de dados no notebook.

  1. Primeiro, você precisa converter a coluna Categoria em um número inteiro. A célula a seguir substitui o valor SPAM por 1 e o valor HAM por 0.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

  1. A próxima célula adiciona o prefixo __label__ a cada valor de Categoria e tokeniza a coluna Mensagem.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

  1. A próxima etapa é dividir o conjunto de dados em conjuntos de dados de treinamento e validação e carregar os arquivos no bucket do S3.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Treine o modelo

Para treinar o modelo, conclua as seguintes etapas no notebook:

  1. Configure o estimador BlazingText e crie uma instância do estimador passando a imagem do contêiner.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

  1. Defina o hiperparâmetro do modo de aprendizado como supervisionado.

O BlazingText possui modos de aprendizado supervisionado e não supervisionado. Nosso caso de uso é a classificação de texto, que é um aprendizado supervisionado.

  1. Crie os canais de dados de treinamento e validação.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

  1. Comece a treinar o modelo.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

  1. Obtenha a precisão do conjunto de dados de treinamento e validação.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Implantar o modelo

Nesta etapa, implantamos o modelo treinado como um endpoint. Escolha sua instância preferida

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Teste o modelo

Vamos fornecer um exemplo de três mensagens de e-mail para as quais queremos obter previsões:

  • Clique no link abaixo, forneça seus dados e ganhe este prêmio
  • Melhor oferta de verão aqui
  • Vejo você no escritório na sexta-feira.

Torne a mensagem de e-mail tokenizada e especifique a carga a ser usada ao chamar a API REST.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Agora podemos prever a classificação de e-mail para cada e-mail. Chame o método de previsão do classificador de texto, passando as instâncias de sentença tokenizadas (carga útil) para o argumento de dados.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

limpar

Por fim, você pode excluir o ponto de extremidade para evitar custos inesperados.

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Além disso, exclua o arquivo de dados do balde S3.

Conclusão

Nesta postagem, orientamos você pelas etapas para criar um detector de spam de e-mail usando o Algoritmo SageMaker BlazingText. Com o algoritmo BlazingText, você pode escalar para grandes conjuntos de dados. O BlazingText é usado para análise textual e problemas de classificação de texto e possui modos de aprendizado não supervisionado e supervisionado. Você pode usar o algoritmo para casos de uso como análise de sentimento do cliente e classificação de texto.

Para saber mais sobre o algoritmo BlazingText, confira Algoritmo BlazingText.


Sobre o autor

Crie um detector de spam de e-mail usando Amazon SageMaker | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Dhiraj Thakur é arquiteto de soluções da Amazon Web Services. Ele trabalha com clientes e parceiros da AWS para fornecer orientação sobre adoção, migração e estratégia da nuvem corporativa. Ele é apaixonado por tecnologia e gosta de construir e experimentar no espaço de análise e IA/ML.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS