Cree un detector de correo no deseado con Amazon SageMaker | Servicios web de Amazon

Cree un detector de correo no deseado con Amazon SageMaker | Servicios web de Amazon

Los correos electrónicos no deseados, también conocidos como correo no deseado, se envían a una gran cantidad de usuarios a la vez y, a menudo, contienen estafas, contenido de phishing o mensajes crípticos. Los correos electrónicos no deseados a veces son enviados manualmente por un ser humano, pero la mayoría de las veces se envían mediante un bot. Los ejemplos de correos electrónicos no deseados incluyen anuncios falsos, correos electrónicos en cadena e intentos de suplantación de identidad. Existe el riesgo de que un correo electrónico no deseado particularmente bien disfrazado pueda llegar a su bandeja de entrada, lo que puede ser peligroso si se hace clic en él. Es importante tomar precauciones adicionales para proteger su dispositivo y la información confidencial.

A medida que la tecnología mejora, la detección de correos electrónicos no deseados se convierte en una tarea desafiante debido a su naturaleza cambiante. El spam es bastante diferente de otros tipos de amenazas a la seguridad. Al principio puede parecer un mensaje molesto y no un amenaza, pero tiene un efecto inmediato. Además, los spammers suelen adaptar nuevas técnicas. Las organizaciones que brindan servicios de correo electrónico desean minimizar el spam tanto como sea posible para evitar daños a sus clientes finales.

En esta publicación, mostramos lo sencillo que es construir un detector de spam de correo electrónico usando Amazon SageMaker. El incorporado Algoritmo BlazingText ofrece implementaciones optimizadas de Word2vec y algoritmos de clasificación de texto. Word2vec es útil para varias tareas de procesamiento de lenguaje natural (NLP), como el análisis de sentimientos, el reconocimiento de entidades nombradas y la traducción automática. La clasificación de texto es esencial para aplicaciones como búsquedas web, recuperación de información, clasificación y clasificación de documentos.

Resumen de la solución

Esta publicación demuestra cómo puede configurar el detector de correo no deseado y filtrar los correos electrónicos no deseados con SageMaker. Veamos cómo funciona normalmente un detector de spam, como se muestra en el siguiente diagrama.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Los correos electrónicos se envían a través de un detector de spam. Se envía un correo electrónico a la carpeta de spam si el detector de spam lo detecta como spam. De lo contrario, se envía a la bandeja de entrada del cliente.

Lo guiamos a través de los siguientes pasos para configurar nuestro modelo de detector de spam:

  1. Descargue el conjunto de datos de muestra del repositorio de GitHub.
  2. Cargue los datos en un Estudio Amazon SageMaker cuaderno.
  3. Prepare los datos para el modelo.
  4. Entrene, implemente y pruebe el modelo.

Requisitos previos

Antes de sumergirse en este caso de uso, complete los siguientes requisitos previos:

  1. Configurar un Cuenta de AWS.
  2. Establece una Dominio de SageMaker.
  3. Crear una Servicio de almacenamiento simple de Amazon (Amazon S3) cubeta. Para obtener instrucciones, consulte Cree su primer depósito S3.

Descargar el conjunto de datos

Descargue el email_dataset.csv de GitHub y suba el archivo al depósito S3.

El algoritmo BlazingText espera un único archivo de texto preprocesado con tokens separados por espacios. Cada línea del archivo debe contener una sola oración. Si necesita entrenar en varios archivos de texto, concatenelos en un solo archivo y cargue el archivo en el canal respectivo.

Cargue los datos en SageMaker Studio

Para realizar la carga de datos, complete los siguientes pasos:

  1. Descargue nuestra spam_detector.ipynb archivo de GitHub y cargue el archivo en SageMaker Studio.
  2. En su cuaderno de Studio, abra el spam_detector.ipynb cuaderno.
  3. Si se le solicita que elija un kernel, elija el kernel Python 3 (Data Science 3.0) y elija Seleccione. De lo contrario, verifique que se haya seleccionado automáticamente el kernel correcto.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

  1. Importe la biblioteca de Python requerida y configure los roles y los depósitos de S3. Especifique el depósito de S3 y el prefijo donde cargó email_dataset.csv.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

  1. Ejecute el paso de carga de datos en el cuaderno.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

  1. Compruebe si el conjunto de datos está equilibrado o no en función de las etiquetas de Categoría.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Podemos ver que nuestro conjunto de datos está equilibrado.

Prepara los datos

El algoritmo BlazingText espera los datos en el siguiente formato:

__label__<label> "<features>"

Aquí hay un ejemplo:

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

cheque Formato de datos de entrenamiento y validación para el algoritmo BlazingText.

Ahora ejecuta el paso de preparación de datos en el cuaderno.

  1. Primero, debe convertir la columna Categoría en un número entero. La siguiente celda reemplaza el valor SPAM con 1 y el valor HAM con 0.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

  1. La siguiente celda agrega el prefijo __label__ a cada valor de Categoría y tokeniza la columna Mensaje.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

  1. El siguiente paso es dividir el conjunto de datos en conjuntos de datos de entrenamiento y validación y cargar los archivos en el depósito S3.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Entrenar a la modelo

Para entrenar el modelo, complete los siguientes pasos en el cuaderno:

  1. Configure el estimador BlazingText y cree una instancia de estimador que pase la imagen del contenedor.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

  1. Establezca el hiperparámetro del modo de aprendizaje en supervisado.

BlazingText tiene modos de aprendizaje supervisado y no supervisado. Nuestro caso de uso es la clasificación de texto, que es aprendizaje supervisado.

  1. Cree los canales de datos de entrenamiento y validación.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

  1. Comience a entrenar el modelo.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

  1. Obtenga la precisión del tren y el conjunto de datos de validación.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Implementar el modelo

En este paso, implementamos el modelo entrenado como punto final. Elige tu instancia preferida

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Prueba el modelo

Proporcionemos un ejemplo de tres mensajes de correo electrónico para los que queremos obtener predicciones:

  • Haga clic en el siguiente enlace, proporcione sus datos y gane este premio
  • La mejor oferta de verano aquí
  • Nos vemos en la oficina el viernes.

Cree tokens en el mensaje de correo electrónico y especifique la carga útil que se usará al llamar a la API de REST.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Ahora podemos predecir la clasificación de correo electrónico para cada correo electrónico. Llame al método de predicción del clasificador de texto, pasando las instancias de oraciones tokenizadas (carga útil) al argumento de datos.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Limpiar

Finalmente, puede eliminar el punto final para evitar cualquier costo inesperado.

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Además, elimine el archivo de datos del depósito S3.

Conclusión

En esta publicación, lo guiamos a través de los pasos para crear un detector de spam de correo electrónico utilizando el Algoritmo SageMaker BlazingText. Con el algoritmo BlazingText, puede escalar a grandes conjuntos de datos. BlazingText se utiliza para el análisis textual y los problemas de clasificación de texto, y tiene modos de aprendizaje supervisado y no supervisado. Puede usar el algoritmo para casos de uso como análisis de opinión del cliente y clasificación de texto.

Para obtener más información sobre el algoritmo BlazingText, consulte Algoritmo BlazingText.


Sobre la autora

Cree un detector de spam de correo electrónico con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Dhiraj Thakur es un arquitecto de soluciones con Amazon Web Services. Trabaja con los clientes y socios de AWS para proporcionar orientación sobre la adopción, la migración y la estrategia de la nube empresarial. Es un apasionado de la tecnología y disfruta construyendo y experimentando en el espacio analítico y AI / ML.

Sello de tiempo:

Mas de Aprendizaje automático de AWS