Detecção de spam: um aplicativo de aprendizado profundo

Conteúdo

Esta postagem foi tornada pública como parte do Data Science Blogathon

O que toda grande empresa de tecnologia deseja é a segurança de seus clientes. Ao detectar alertas de spam em e-mails e mensagens, eles querem proteger sua rede e melhorar a confiança de seus clientes. Aplicativo oficial de mensagens da Apple e aplicativo de bate-papo oficial do Google, Em outras palavras, Gmail, são exemplos importantes de tais aplicativos em que o procedimento de detecção e filtragem de spam funciona bem para proteger os usuários contra alertas de spam. Então, se você está procurando criar um sistema de detecção de spam, este texto é para você.

fonteDetecção de spam

O que é o chamado Spam?

As mensagens eletrônicas são um meio crucial de comunicação entre muitas pessoas em todo o mundo.. Mas várias pessoas e empresas usam esse recurso de forma inadequada para enviar mensagens em massa não solicitadas, comumente chamadas de SMS de spam.. O SMS de spam pode incluir anúncios de medicamentos, Programas, conteúdo adulto, seguro ou outros anúncios fraudulentos. Vários filtros de spam normalmente fornecem um mecanismo de proteção que projetará um sistema para reconhecer spam..

Detecção de spam

Depois de enviar seus dados pessoais, como número de telefone celular ou endereço de e-mail em qualquer plataforma, eles começaram a anunciar seus produtos incomuns, constantemente enviando um ping para ele. Eles tentam anunciar enviando e-mails constantes e com a ajuda de seus dados de contato continuam enviando mensagens para você e estão fazendo mais WhatsApp hoje. Por isso, o resultado nada mais é do que uma série de alertas e notificações de spam surgindo em sua caixa de entrada. Frequentemente, É aqui que entra a tarefa de detecção de spam..

A detecção de spam significa detectar mensagens de spam ou e-mails, entendendo o conteúdo do texto, de forma que você só receba notificações sobre suas mensagens ou e-mails que são cruciais para você. Se mensagens de spam forem encontradas, são transferidos automaticamente para uma pasta de spam e você nunca é notificado de tais alertas. Isso ajuda a melhorar a experiência do usuário., já que muitos alertas de spam podem incomodar muitos usuários.

O que é filtragem de spam?

Você consegue adivinhar quando se tornará o alvo de hackers? sim, se você está pensando em spam, Você está no caminho certo. Sempre que o spam chega ao seu e-mail ou caixa de entrada de mensagens, você está nas mãos de hackers e eles vão chamá-lo de alvo. Quando se trata de tecnologia, humanos tendem a ser o elo mais fraco na maioria das situações de segurança de TI. Os invasores constantemente tentarão enganá-lo, manipular os usuários para clicar em coisas que não deveriam por meio de uma variedade de métodos. Frequentemente, esses “truques” são feitos por e-mail, Uma vez que as plataformas de e-mail podem atingir um número considerável de pessoas e talvez um “econômico”. Depois de clicar na opção inadequada disponível em e-mails de spam, expôs seus dados pessoais e importantes para hackers. A função da filtragem de spam surge quando o e-mail é amplamente usado para aproveitar os usuários e seus dados mais poderosos.. As instituições devem usar um filtro de spam para reduzir o perigo de os usuários clicarem em algo que não deveriam, mantendo sucessivamente seus dados internos protegidos de um ataque cibernético.

PORQUE ÉS IMPORTANTE?

A implementação da filtragem de spam é de relevância exclusiva para todas as instituições. A principal função da filtragem de spam é manter o lixo longe das caixas de correio de e-mail.. Você também pode tratar a filtragem de spam como um amigo que administra sua vida perfeitamente exibindo apenas e-mails seguros e desejados.. A filtragem de spam é realmente usada como uma ferramenta anti-malware porque o único truque dos hackers é compartilhar os anexos no e-mail e solicitar suas credenciais.. Outro aspecto que não é negligenciado é a eliminação do Graymail. Graymail é um e-mail que um usuário escolheu receber anteriormente, mas que você realmente não precisa ou precisa em sua caixa de entrada. Graymail não é considerado spam, uma vez que esses e-mails geralmente não se infiltram em uma empresa. o que é considerado correio cinza é decidido pelas ações do usuário ao longo do tempo, e as plataformas de filtragem de spam engolirão tudo para descobrir o que é ou não desejado em uma caixa de entrada.

Até o momento, o que você aprendeu é detecção de spam, oque e porque. Tenho certeza de que ficou muito claro para ele. Agora, desta vez é para implementação. Aqui, nesta parte, treinamos modelos de aprendizado de máquina para detectar spam em seu e-mail com a ajuda da linguagem Python. Vou iniciar esta tarefa importando as bibliotecas Python necessárias e, por isso, o conjunto de dados que você gostaria para esta tarefa é spam.csv

Paso 1: -Dependentes de importação

importar numpy como np
importar pandas como pd
import matplotlib.pyplot as plt
importado do mar como sns
importar nltk
de nltk.corpus import stopwords
de nltk.stem.porter import PorterStemmer
nltk.download('stopwords')
importar re
importar sklearn
de sklearn.naive_bayes import MultinomialNB
de sklearn.metrics import precision_score

Paso 2: -Obtenha o conjunto de dados SMS

sms = pd.read_csv('Coleta de Spam SMS', sep = 't', nomes =['rótulo','mensagem'])
sms.head()
sms.drop_duplicates(inplace = True)
sms.reset_index(drop = True, inplace = True)
plt.figure(figsize =(8,5))
sns.countplot(x = 'rótulo', dados = sms)
plt.xlabel('Classificação SMS')
plt.ylabel('Contar')
plt.show()

Paso 3: -Limpeza de mensagens

corpus = []
ps = PorterStemmer()
para eu no alcance(0,sms.shape[0]):
    mensagem = re.sub(pattern = '[^ a-zA-Z]', repl =" ", string = sms.message[eu])
#Limpando o caractere especial da mensagem

    mensagem = mensagem.lower() #Converter toda a mensagem em minúsculas
    palavras = mensagem.split() # Tokenização da resenha por palavras
    palavras = [palavra por palavra em palavras, se a palavra não estiver definida(stopwords.words('inglês'))] 

#Removendo as palavras de parada

    palavras = [ps.stem(palavra) por palavra em palavras] #Derivando as palavras
    mensagem =" ".Junte(palavras) #Juntando as palavras radicais
    corpus.append(mensagem) #Construindo um corpus de mensagens

Paso 4: -Criando o modelo Saco de Palavras

de sklearn.feature_extraction.text import CountVectorizer
cv = CountVectorizer(max_features = 2500)
X = cv.fit_transform(corpus).arranjar()

Paso 5: -Extraia a variável dependente do conjunto de dados

y = pd.get_dummies(SMS['rótulo'])
y = y.iloc[:, 1].valores

Paso 6: -train_test_split

de sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, e, test_size = 0,20, random_state = 0)

Paso 7: -Verificando o classificador Bayes ingênuo alfa

best_accuracy = 0.0
alpha_val = 0.0
para i em np.arange(0.0,1.1,0.1):
    temp_classifier = MultinomialNB(alfa = i)
    temp_classifier.fit(X_train, y_train)
    temp_y_pred = temp_classifier.predict(X_test)
    pontuação = precisão_score(y_test, temp_y_pred)
    imprimir("Pontuação de precisão para alfa ={} é: {}%".formato(volta(eu,1), volta(pontuação * 100,2)))
    se pontuação>best_accuracy:
        best_accuracy = score
        alpha_val = i
imprimir('--------------------------------------------')
imprimir('A melhor precisão é {}% com valor alfa como {}'.formato(volta(best_accuracy * 100, 2), volta(alpha_val,1)))

Paso 8: -Predição

def Predict_spam(amostra_mensagem):
    sample_message = re.sub(pattern = '[^ a-zA-Z]',repl =" ", string = sample_message)
    sample_message = sample_message.lower()
    sample_message_words = sample_message.split()
    sample_message_words = [palavra por palavra em sample_message_words se não palavra no conjunto(stopwords.words('inglês'))]
    ps = PorterStemmer()
    final_message = [ps.stem(palavra) por palavra em sample_message_words]
    final_message =" ".Junte(final_message)
    temp = cv.transform([final_message]).arranjar()
    return classifier.predict(temp)
resultado = ['Espere um minuto, isso é um SPAM!','Ohhh, esta é uma mensagem normal. ']
msg = "Oi! Você está pré-qualificado para o cartão de crédito Premium SBI. Também ganhe Rs.500 no valor de vale-presente da Amazon *, 10X Rewards Point * & mais. Clique "
if Predict_spam(msg):
    imprimir(resultado[0])
outro:
    imprimir(resultado[1])

PRODUÇÃO

Espera um minuto, Isto é SPAM!

msg = "[Atualizar] Parabéns shivani, Sua conta está ativada para investimento em ações. Clique para investir agora: "
if Predict_spam(msg):
    imprimir(resultado[0])
outro:
    imprimir(resultado[1])

PRODUÇÃO

Espera um minuto, Isto é SPAM!

msg = "Seu corretor da bolsa, FALANA BROKING LIMITED, relatou o saldo de seu fundo Rs.1500,5 & saldo de títulos 0.0 no final de MAIO-20. Saldos não cobrem seu banco, DP & Saldo PMS com a entidade corretora. Verifique os detalhes em [e-mail protegido] Se o id do e-mail não estiver correto, gentilmente atualize com seu corretor."
if Predict_spam(msg):
    imprimir(resultado[0])
outro:
    imprimir(resultado[1])

PRODUÇÃO

Ohhh, este é um eu normal

Resumo

Portanto, frequentemente, é assim que você vai treinar um aprendizado de máquina ou especialmente um modelo de aprendizado profundo para que eles possam detectar se um e-mail ou mensagem é spam ou não. Um detector de spam detecta mensagens de spam ou e-mails entendendo o conteúdo do texto para que você só receba notificações sobre mensagens ou e-mails que são vitais para você. Espero que esta postagem ajude você a aumentar seu alcance na detecção de spam. No cenário atual, não podemos perder nossa segurança tão facilmente. Vamos começar uma campanha junto com AnalyticsVidya para reduzir o crime cibernético. Fique feliz em fazer suas perguntas valiosas na seção de comentários abaixo.. Para mais aplicativos de aprendizado profundo, Clique aqui.

A mídia mostrada nesta postagem não é propriedade da DataPeaker e é usada a critério do autor.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.