Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon webbtjänster

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon webbtjänster

Skräppost, även känd som skräppost, skickas till ett stort antal användare samtidigt och innehåller ofta bedrägerier, nätfiskeinnehåll eller kryptiska meddelanden. Spam-e-postmeddelanden skickas ibland manuellt av en människa, men oftast skickas de med hjälp av en bot. Exempel på skräppost är falska annonser, kedjee-postmeddelanden och försök till identitetsstöld. Det finns en risk att ett särskilt väl förtäckt skräppostmeddelande kan landa i din inkorg, vilket kan vara farligt om du klickar på det. Det är viktigt att vidta extra försiktighetsåtgärder för att skydda din enhet och känslig information.

I takt med att tekniken förbättras blir det en utmanande uppgift att upptäcka skräppost på grund av dess föränderliga karaktär. Spam skiljer sig ganska mycket från andra typer av säkerhetshot. Det kan till en början verka som ett irriterande meddelande och inte ett hot, men det har en omedelbar effekt. Även spammare anpassar ofta nya tekniker. Organisationer som tillhandahåller e-posttjänster vill minimera spam så mycket som möjligt för att undvika skador på sina slutkunder.

I det här inlägget visar vi hur enkelt det är att bygga en skräppostdetektor för e-post med hjälp av Amazon SageMaker. Den inbyggda BlazingText-algoritm erbjuder optimerade implementeringar av Word2vec och textklassificeringsalgoritmer. Word2vec är användbart för olika NLP-uppgifter (natural language processing), såsom sentimentanalys, namngiven enhetsigenkänning och maskinöversättning. Textklassificering är avgörande för applikationer som webbsökningar, informationssökning, rangordning och dokumentklassificering.

Lösningsöversikt

Det här inlägget visar hur du kan ställa in skräppostdetektor och filtrera skräppost med SageMaker. Låt oss se hur en skräppostdetektor vanligtvis fungerar, som visas i följande diagram.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

E-postmeddelanden skickas genom en skräppostdetektor. Ett e-postmeddelande skickas till skräppostmappen om skräppostdetektorn upptäcker det som skräppost. Annars skickas det till kundens inkorg.

Vi leder dig genom följande steg för att ställa in vår modell för skräppostdetektor:

  1. Ladda ner exempeldataset från GitHub-repo.
  2. Ladda data i en Amazon SageMaker Studio anteckningsbok.
  3. Förbered data för modellen.
  4. Träna, distribuera och testa modellen.

Förutsättningar

Innan du dyker in i detta användningsfall måste du uppfylla följande förutsättningar:

  1. Ställ in en AWS-konto.
  2. Ställ in en SageMaker-domän.
  3. Skapa ett Amazon enkel lagringstjänst (Amazon S3) hink. För instruktioner, se Skapa din första S3-skopa.

Ladda ner datasetet

Ladda ner email_dataset.csv från GitHub och ladda upp filen till S3-bucket.

BlazingText-algoritmen förväntar sig en enda förbehandlad textfil med mellanslagsseparerade tokens. Varje rad i filen bör innehålla en enda mening. Om du behöver träna på flera textfiler, sammanfoga dem till en fil och ladda upp filen i respektive kanal.

Ladda data i SageMaker Studio

Utför följande steg för att utföra dataladdningen:

  1. ladda ner spam_detector.ipynb fil från GitHub och ladda upp filen i SageMaker Studio.
  2. Öppna din Studio-anteckningsbok spam_detector.ipynb anteckningsbok.
  3. Om du uppmanas att välja en kärna, välj Python 3 (Data Science 3.0) kärnan och välj Välja. Om inte, verifiera att rätt kärna har valts automatiskt.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

  1. Importera det nödvändiga Python-biblioteket och ställ in rollerna och S3-hinkarna. Ange S3-bucket och prefix där du laddade upp email_dataset.csv.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

  1. Kör dataladdningssteget i notebook-datorn.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

  1. Kontrollera om datasetet är balanserat eller inte baserat på kategorietiketterna.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Vi kan se att vår datauppsättning är balanserad.

Förbered data

BlazingText-algoritmen förväntar sig data i följande format:

__label__<label> "<features>"

Här är ett exempel:

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

Kolla upp Utbildnings- och valideringsdataformat för BlazingText-algoritmen.

Du kör nu dataförberedelsesteget i den bärbara datorn.

  1. Först måste du konvertera kategorikolumnen till ett heltal. Följande cell ersätter SPAM-värdet med 1 och HAM-värdet med 0.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

  1. Nästa cell lägger till prefixet __label__ till varje kategorivärde och tokeniserar meddelandekolumnen.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

  1. Nästa steg är att dela upp datasetet i tåg- och valideringsdatauppsättningar och ladda upp filerna till S3-bucket.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Träna modellen

Utför följande steg i anteckningsboken för att träna modellen:

  1. Ställ in BlazingText estimator och skapa en estimator instans som skickar behållarbilden.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

  1. Ställ in inlärningslägets hyperparameter till övervakad.

BlazingText har både oövervakade och övervakade inlärningslägen. Vårt användningsfall är textklassificering, vilket är övervakat lärande.

  1. Skapa tåg- och valideringsdatakanalerna.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

  1. Börja träna modellen.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

  1. Få noggrannheten i tåget och valideringsdataset.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Distribuera modellen

I det här steget använder vi den utbildade modellen som en slutpunkt. Välj din föredragna instans

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Testa modellen

Låt oss ge ett exempel på tre e-postmeddelanden som vi vill få prognoser för:

  • Klicka på länken nedan, ange dina uppgifter och vinn denna utmärkelse
  • Bästa sommarerbjudandet här
  • Vi ses på kontoret på fredag.

Tokenisera e-postmeddelandet och ange nyttolasten som ska användas när du anropar REST API.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Nu kan vi förutsäga e-postklassificeringen för varje e-postmeddelande. Anropa förutsägningsmetoden för textklassificeraren och skicka de tokeniserade meningsinstanserna (nyttolasten) till dataargumentet.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Städa upp

Slutligen kan du ta bort slutpunkten för att undvika oväntade kostnader.

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Ta också bort datafil från S3 bucket.

Slutsats

I det här inlägget ledde vi dig genom stegen för att skapa en skräppostdetektor för e-post med hjälp av SageMaker BlazingText-algoritm. Med BlazingText-algoritmen kan du skala till stora datamängder. BlazingText används för textanalys och textklassificeringsproblem och har både oövervakade och övervakade inlärningslägen. Du kan använda algoritmen för användningsfall som analys av kundsentiment och textklassificering.

För att lära dig mer om BlazingText-algoritmen, kolla in BlazingText-algoritm.


Om författaren

Bygg en skräppostdetektor för e-post med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Dhiraj Thakur är en lösningsarkitekt med Amazon Web Services. Han samarbetar med AWS-kunder och -partners för att ge vägledning om införande, migrering och strategi för företagsmoln. Han brinner för teknik och tycker om att bygga och experimentera inom analys- och AI/ML-området.

Tidsstämpel:

Mer från AWS maskininlärning