Détection de spam: une application d'apprentissage en profondeur

Contenu

Ce message a été rendu public dans le cadre de la Blogathon sur la science des données

Ce que toutes les grandes entreprises technologiques veulent, c'est la sûreté et la sécurité de leurs clients. En détectant les alertes de spam dans les e-mails et les messages, ils veulent protéger leur réseau et améliorer la confiance de leurs clients. Application de messagerie officielle d'Apple et application de chat officielle de Google, En d'autres termes, Gmail, sont d'excellents exemples de telles applications où la procédure de détection et de filtrage du spam fonctionne bien pour protéger les utilisateurs contre les alertes de spam. Ensuite, si vous cherchez à créer un système de détection de spam, ce texte est pour toi.

la sourceDétection de spam

Qu'est-ce que le soi-disant spam?

Les messages électroniques sont un moyen de communication crucial entre de nombreuses personnes dans le monde.. Mais diverses personnes et entreprises abusent de cette fonctionnalité pour envoyer des messages en masse non sollicités, communément appelés SMS de spam.. Les SMS de spam peuvent inclure des publicités sur les médicaments, Logiciel, contenu adulte, assurance ou autres publicités frauduleuses. Divers filtres anti-spam fournissent généralement un mécanisme de protection qui concevra un système pour reconnaître le spam..

Détection de spam

Après avoir soumis vos données personnelles, comme un numéro de téléphone portable ou une adresse e-mail sur n'importe quelle plate-forme, ils ont commencé à faire de la publicité pour leurs produits inhabituels en le cinglant constamment. Ils essaient de faire de la publicité en envoyant des e-mails constants et avec l'aide de vos coordonnées, ils continuent de vous envoyer des messages et font plus WhatsApp aujourd'hui.. Pour cela, le résultat n'est rien de plus qu'une multitude d'alertes et de notifications de spam apparaissant dans votre boîte de réception. Souvent, C'est là qu'intervient la tâche de détection de spam..

La détection de spam consiste à détecter les messages de spam ou les e-mails en comprenant le contenu du texte afin que vous ne receviez que des notifications concernant vos messages ou e-mails qui sont cruciaux pour vous.. Si des messages de spam sont trouvés, sont automatiquement transférés dans un dossier spam et vous n'êtes jamais averti de ces alertes. Cela permet d'améliorer l'expérience utilisateur., car de nombreuses alertes de spam peuvent ennuyer de nombreux utilisateurs.

Qu'est-ce que le filtrage anti-spam?

Pourriez-vous deviner quand vous deviendrez la cible des pirates informatiques? Oui, si vous pensez au spam, tu es sur la bonne voie. Chaque fois que le spam atteint votre boîte de réception de courrier électronique ou de message, vous êtes entre les mains de hackers et ils vous appelleront leur cible. Quand il s'agit de technologie, les humains ont tendance à être le maillon faible dans la plupart des situations de sécurité informatique. Les attaquants essaieront constamment de vous tromper, manipuler les utilisateurs pour qu'ils cliquent sur des choses qu'ils ne devraient pas utiliser à travers une gamme de méthodes. Souvent, ces “des trucs” se font par e-mail, étant donné que les plateformes de messagerie peuvent cibler un nombre considérable de personnes et peut-être un très “économique”. Après avoir cliqué sur l'inapproprié disponible dans les e-mails de spam, exposé vos données importantes et personnelles à des pirates informatiques. Le rôle du filtrage anti-spam apparaît alors que le courrier électronique est largement utilisé pour exploiter les utilisateurs et leurs données les plus puissantes.. Les institutions devraient utiliser un filtre anti-spam pour réduire le risque que les utilisateurs cliquent sur quelque chose qu'ils ne devraient pas, protéger successivement vos données internes d'une cyberattaque.

PARCE QUE C'EST IMPORTANT?

La mise en œuvre du filtrage anti-spam concerne exclusivement toutes les institutions. Le rôle principal du filtrage anti-spam est d'empêcher les courriers indésirables d'entrer dans les boîtes aux lettres.. Vous pouvez également traiter le filtrage anti-spam comme un ami qui gère votre vie de manière transparente en affichant uniquement les e-mails sûrs et souhaités.. Le filtrage des spams est en fait utilisé comme un outil anti-malware, car la seule astuce des pirates est de partager les pièces jointes dans le courrier et de demander vos informations d'identification.. Un autre aspect qui n'est pas négligé est l'élimination de Graymail. Graymail est un e-mail qu'un utilisateur a préalablement choisi de recevoir, mais dont vous n'avez pas vraiment besoin ou dont vous n'avez pas besoin dans votre boîte de réception. Graymail n'est pas considéré comme du spam, puisque ces courriels n'infiltrent généralement pas une entreprise. ce qui est considéré comme du courrier gris est décidé par les actions des utilisateurs au fil du temps, et les plateformes de filtrage anti-spam l'engloutiront pour savoir ce qui est ou n'est pas recherché dans une boîte de réception.

Jusqu'au moment, ce que vous avez appris est la détection de spam, Quoi et pourquoi. Je suis sûr que c'était très clair pour lui. À présent, ce temps est pour la mise en œuvre. Ici, dans cette partie, nous formons des modèles d'apprentissage automatique pour détecter le spam dans vos e-mails à l'aide du langage Python. Je vais commencer cette tâche en important les bibliothèques Python requises et, pour cela, l'ensemble de données que vous souhaitez pour cette tâche est spam.csv

Paso 1: -Importer des dépendances

importer numpy en tant que np
importer des pandas au format pd
importer matplotlib.pyplot en tant que plt
importer seaborn comme sns
importer nltk
à partir de nltk.corpus importer des mots vides
de nltk.stem.porter importer PorterStemmer
nltk.télécharger('mots vides')
importation re
importer sklearn
depuis sklearn.naive_bayes importer MultinomialNB
de sklearn.metrics importer precision_score

Paso 2: -Obtenir l'ensemble de données SMS

sms = pd.read_csv(« Collecte de SMS indésirables », sep = 't', noms=['étiqueter','un message'])
sms.tête()
sms.drop_duplicates(inplace=Vrai)
sms.reset_index(drop=Vrai, inplace=Vrai)
plt.figure(taille de la figue=(8,5))
sns.countplot(x='libellé', données=sms)
plt.xlabel('Classification SMS')
plt.ylabel('Compter')
plt.show()

Paso 3: -Nettoyage des messages

corpus = []
ps = PorterStemmer()
pour moi à portée(0,sms.forme[0]):
    message = re.sub(motif='[^ a-zA-Z]', repl=" ", chaîne=sms.message[je])
#Nettoyage du caractère spécial du message

    message = message.inférieur() #Conversion de l'intégralité du message en minuscules
    mots = message.split() # Tokeniser la revue par des mots
    mots = [mot pour mot dans les mots si le mot n'est pas dans l'ensemble(mots.mots.mots('Anglais'))] 

#Supprimer les mots vides

    mots = [ps.stem(mot) pour mot dans les mots] #Raccourcir les mots
    message=" ".rejoindre(mots) #Joindre les mots dérivés
    corpus.append(un message) #Construire un corpus de messages

Paso 4: -Création du modèle de sac de mots

de sklearn.feature_extraction.text importer CountVectorizer
cv = CountVectorizer(max_caractéristiques=2500)
X = cv.fit_transform(corpus).faire un tableau()

Paso 5: -Extraire la variable dépendante de l'ensemble de données

y = pd.get_dummies(SMS['étiqueter'])
y = y.iloc[:, 1].valeurs

Paso 6: -train_test_split

de sklearn.model_selection importer train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, Oui, taille_test=0.20, état_aléatoire=0)

Paso 7: -Vérification du classificateur naïf Bayes alpha

meilleure_précision = 0.0
alpha_val = 0.0
pour moi dans np.arange(0.0,1.1,0.1):
    temp_classifier = MultinomialNB(alpha=je)
    temp_classifier.fit(X_train, y_train)
    temp_y_pred = temp_classifier.predict(X_test)
    score = precision_score(y_test, temp_y_pred)
    imprimer("Score de précision pour alpha={} est: {}%".format(tour(je,1), tour(note*100,2)))
    si score>meilleure_précision:
        meilleure_précision = score
        alpha_val = je
imprimer('----------------------------------------------')
imprimer('La meilleure précision est {}% avec une valeur alpha comme {}'.format(tour(meilleure_précision*100, 2), tour(alpha_val,1)))

Paso 8: -Prédiction

def prédire_spam(exemple_message):
    sample_message = re.sub(motif='[^ a-zA-Z]',repl=" ", chaîne = sample_message)
    sample_message = sample_message.lower()
    sample_message_words = sample_message.split()
    sample_message_words = [mot pour mot dans sample_message_words sinon mot dans l'ensemble(mots.mots.mots('Anglais'))]
    ps = PorterStemmer()
    message_final = [ps.stem(mot) pour mot dans sample_message_words]
    message_final=" ".rejoindre(message_final)
    temp = cv.transformer([message_final]).faire un tableau()
    return classifier.predict(température)
résultat = ['Attendez une minute, c'est un SPAM!','Ohhh, c'est un message normal.']
msg = "salut! Vous êtes pré-qualifié pour la carte de crédit Premium SBI. Obtenez également une carte-cadeau Amazon d'une valeur de Rs.500*, 10X points de récompense* & Suite. Cliquez sur "
si prédire_spam(message):
    imprimer(résultat[0])
autre:
    imprimer(résultat[1])

PRODUCTION

Attends une minute, C'est du SPAM!

msg = "[Mettre à jour] Félicitations Shivani, Votre compte est activé pour l'investissement en actions. Cliquez pour investir maintenant: "
si prédire_spam(message):
    imprimer(résultat[0])
autre:
    imprimer(résultat[1])

PRODUCTION

Attends une minute, C'est du SPAM!

msg = "Votre courtier en valeurs mobilières FALANA BROKING LIMITED a signalé le solde de votre fonds Rs.1500,5 & solde des titres 0.0 à la fin du 20 MAI. Les soldes ne couvrent pas votre banque, DP & Solde PMS avec l'entité de courtage. Vérifiez les détails sur [email protégé] Si l'identifiant e-mail n'est pas correct, veuillez mettre à jour avec votre courtier."
si prédire_spam(message):
    imprimer(résultat[0])
autre:
    imprimer(résultat[1])

PRODUCTION

Ohhh, c'est un moi normal

résumé

Donc, souvent, c'est ainsi que vous entraînerez un modèle d'apprentissage automatique ou surtout un modèle d'apprentissage profond afin qu'ils puissent détecter si un e-mail ou un message est un spam ou non. Un détecteur de spam détecte les messages de spam ou les e-mails en comprenant le contenu du texte afin que vous ne receviez que des notifications sur les messages ou les e-mails qui vous sont vitaux. J'espère que cet article vous aidera à augmenter votre portée vers la détection de spam. Dans le scénario actuel, nous ne pouvons pas nous permettre de perdre notre sécurité si facilement. Commençons une campagne avec AnalyticsVidya pour réduire la cybercriminalité. Soyez heureux de poser vos précieuses questions dans la section commentaires ci-dessous.. Pour des applications d'apprentissage plus approfondies, Cliquez ici.

Les médias présentés dans cet article ne sont pas la propriété de DataPeaker et sont utilisés à la discrétion de l'auteur.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.