Bouw een e-mailspamdetector met behulp van Amazon SageMaker | Amazon-webservices

Bouw een e-mailspamdetector met behulp van Amazon SageMaker | Amazon-webservices

Spam-e-mails, ook wel ongewenste e-mail genoemd, worden naar een groot aantal gebruikers tegelijk verzonden en bevatten vaak scams, phishing-inhoud of cryptische berichten. Spam-e-mails worden soms handmatig door een mens verzonden, maar meestal worden ze verzonden met behulp van een bot. Voorbeelden van spam-e-mails zijn valse advertenties, ketting-e-mails en pogingen tot imitatie. Het risico bestaat dat een bijzonder goed vermomde spam-e-mail in uw inbox belandt, wat gevaarlijk kan zijn als erop wordt geklikt. Het is belangrijk om extra voorzorgsmaatregelen te nemen om uw apparaat en gevoelige informatie te beschermen.

Naarmate de technologie verbetert, wordt de detectie van spam-e-mails een uitdagende taak vanwege de veranderende aard ervan. Spam is heel anders dan andere soorten beveiligingsbedreigingen. Het kan in eerste instantie lijken op een vervelend bericht en niet op een bedreiging, maar het heeft een onmiddellijk effect. Ook spammers passen vaak nieuwe technieken toe. Organisaties die e-maildiensten aanbieden, willen spam zoveel mogelijk minimaliseren om schade aan hun eindklanten te voorkomen.

In dit bericht laten we zien hoe eenvoudig het is om een ​​e-mailspamdetector te bouwen met behulp van Amazon Sage Maker. De ingebouwde BlazingText-algoritme biedt geoptimaliseerde implementaties van Word2vec en algoritmen voor tekstclassificatie. Word2vec is handig voor verschillende NLP-taken (natural language processing), zoals sentimentanalyse, herkenning van benoemde entiteiten en machinevertaling. Tekstclassificatie is essentieel voor toepassingen zoals zoekopdrachten op het web, het ophalen van informatie, rangschikking en documentclassificatie.

Overzicht oplossingen

Dit bericht laat zien hoe u e-mailspamdetector kunt instellen en spam-e-mails kunt filteren met SageMaker. Laten we eens kijken hoe een spamdetector doorgaans werkt, zoals weergegeven in het volgende diagram.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

E-mails worden verzonden via een spamdetector. Er wordt een e-mail naar de map Spam verzonden als de spamdetector deze als spam detecteert. Anders wordt het naar de inbox van de klant gestuurd.

We doorlopen de volgende stappen om ons spamdetectormodel in te stellen:

  1. Download de voorbeeldgegevensset uit de GitHub-opslagplaats.
  2. Laad de gegevens in een Amazon SageMaker Studio notebook.
  3. Bereid de gegevens voor het model voor.
  4. Train, implementeer en test het model.

Voorwaarden

Voltooi de volgende vereisten voordat u in deze use-case duikt:

  1. Stel een AWS-account.
  2. Het opzetten van een SageMaker-domein.
  3. Maak een Amazon eenvoudige opslagservice (Amazon S3) emmer. Voor instructies, zie Maak je eerste S3-bucket.

Download de dataset

Download de email_dataset.csv van GitHub en upload het bestand naar de S3-bucket.

Het BlazingText-algoritme verwacht een enkel voorverwerkt tekstbestand met door spaties gescheiden tokens. Elke regel in het bestand moet een enkele zin bevatten. Als u op meerdere tekstbestanden moet trainen, voegt u ze samen tot één bestand en uploadt u het bestand naar het betreffende kanaal.

Laad de gegevens in SageMaker Studio

Voer de volgende stappen uit om het laden van gegevens uit te voeren:

  1. Download de spam_detector.ipynb bestand van GitHub en upload het bestand in SageMaker Studio.
  2. Open in uw Studio-notitieblok het spam_detector.ipynb notebook.
  3. Als u wordt gevraagd een kernel te kiezen, kiest u de kernel Python 3 (Data Science 3.0) en kiest u kies. Zo niet, controleer dan of de juiste kernel automatisch is geselecteerd.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

  1. Importeer de vereiste Python-bibliotheek en stel de rollen en de S3-buckets in. Geef de S3-bucket en het voorvoegsel op waarnaar u email_dataset.csv hebt geüpload.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

  1. Voer de stap voor het laden van gegevens uit in het notebook.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

  1. Controleer of de dataset gebalanceerd is of niet op basis van de categorielabels.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

We kunnen zien dat onze dataset in balans is.

Bereid de gegevens voor

Het BlazingText-algoritme verwacht de gegevens in het volgende formaat:

__label__<label> "<features>"

Hier is een voorbeeld:

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

Check Trainings- en validatiegegevensindeling voor het BlazingText-algoritme.

U voert nu de stap voor het voorbereiden van gegevens uit in het notitieblok.

  1. Eerst moet u de kolom Categorie converteren naar een geheel getal. De volgende cel vervangt de SPAM-waarde door 1 en de HAM-waarde door 0.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

  1. De volgende cel voegt het voorvoegsel toe __label__ aan elke categoriewaarde en tokeniseert de berichtkolom.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

  1. De volgende stap is om de dataset op te splitsen in trein- en validatiedatasets en de bestanden te uploaden naar de S3-bucket.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Train het model

Voer de volgende stappen in het notitieblok uit om het model te trainen:

  1. Stel de BlazingText-schatter in en maak een schatterinstantie die de containerafbeelding doorgeeft.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

  1. Stel de hyperparameter van de leermodus in op bewaakt.

BlazingText heeft zowel leermodi zonder toezicht als onder toezicht. Onze use case is tekstclassificatie, wat gesuperviseerd leren is.

  1. Maak de trein- en validatiegegevenskanalen.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

  1. Begin met het trainen van het model.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

  1. Verkrijg de nauwkeurigheid van de trein- en validatiedataset.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Implementeer het model

In deze stap implementeren we het getrainde model als een eindpunt. Kies uw voorkeursexemplaar

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Test het model

Laten we een voorbeeld geven van drie e-mailberichten waarvoor we voorspellingen willen ontvangen:

  • Klik op onderstaande link, vul je gegevens in en maak kans op deze prijs
  • Beste zomerdeal hier
  • Tot vrijdag op kantoor.

Maak een token van het e-mailbericht en geef de payload op die moet worden gebruikt bij het aanroepen van de REST API.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Nu kunnen we de e-mailclassificatie voor elke e-mail voorspellen. Roep de voorspellingsmethode van de tekstclassificatie aan en geef de tokenized zinsinstanties (payload) door aan het gegevensargument.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Opruimen

Ten slotte kunt u het eindpunt verwijderen om onverwachte kosten te voorkomen.

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Verwijder ook de gegevensbestand van S3-bucket.

Conclusie

In dit bericht hebben we u door de stappen geleid om een ​​e-mailspamdetector te maken met behulp van de SageMaker BlazingText-algoritme. Met het BlazingText-algoritme kunt u schalen naar grote datasets. BlazingText wordt gebruikt voor tekstanalyse en tekstclassificatieproblemen, en heeft zowel onbewaakte als gesuperviseerde leermodi. U kunt het algoritme gebruiken voor gebruiksscenario's zoals analyse van klantsentiment en tekstclassificatie.

Ga naar voor meer informatie over het BlazingText-algoritme BlazingText-algoritme.


Over de auteur

Bouw een e-mailspamdetector met Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Dhiraj Thakuro is een Solutions Architect bij Amazon Web Services. Hij werkt samen met AWS-klanten en -partners om advies te geven over de acceptatie, migratie en strategie van enterprise-cloud. Hij is gepassioneerd door technologie en geniet van het bouwen en experimenteren op het gebied van analyse en AI / ML.

Tijdstempel:

Meer van AWS-machine learning