Para desarrollar un script para clasificar
correos electrónicos como spam o no spam, primero se necesita un dataset
ficticio. Luego, se puede utilizar un algoritmo de clasificación en Python.
Vamos a crear un ejemplo básico utilizando el algoritmo de Naive Bayes, que es
comúnmente usado para la clasificación de spam.
Data set emails_ficticios.csv
Texto,Etiqueta
"¡Gana dinero fácilmente en el colegio!",1
"Reunión de trabajo el próximo viernes",0
"Oferta única: ¡compra tres y llévate uno y medio gratis!",1
"Recordatorio: presentación de facturas",0
"¿Quieres bajar de peso en 10 dias? Descubre cómo",1
"Invitación: final futbol de la copa tigo",0
"Renueva tu suscripción al GYM a un precio especial",1
"Informe de actividades trimestral",0
"Obtén un iPhone nuevo a mitad de precio",1
"Información sobre el curso de diplomado en IA",0
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics import accuracy_score
# Cargar datos
datos = pd.read_csv('emails_ficticios.csv')
# Preprocesamiento
vectorizador = CountVectorizer()
X = vectorizador.fit_transform(datos['Texto'])
y = datos['Etiqueta']
# Dividir el dataset
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Entrenar el modelo
modelo = MultinomialNB()
modelo.fit(X_train, y_train)
# Evaluar el modelo
y_pred = modelo.predict(X_test)
print("Precisión:", accuracy_score(y_test, y_pred))
Precisión: 1.0
.
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics import accuracy_score
# Cargar datos
datos = pd.read_csv('emails_ficticios.csv')
# Preprocesamiento
vectorizador = CountVectorizer()
X = vectorizador.fit_transform(datos['Texto'])
y = datos['Etiqueta']
# Dividir el dataset
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Entrenar el modelo
modelo = MultinomialNB()
modelo.fit(X_train, y_train)
# Función para predecir si un email es spam
def predecir_spam(texto_email):
texto_transformado = vectorizador.transform([texto_email])
prediccion = modelo.predict(texto_transformado)
return "Spam" if prediccion[0] == 1 else "No Spam"
# Prueba con un email de ejemplo
email_de_prueba = "Reunión de trabajo el próximo viernes"
resultado = predecir_spam(email_de_prueba)
print(f"El email '{email_de_prueba}' es clasificado como: {resultado}")
El email 'Reunión de trabajo el próximo viernes' es clasificado como: No Spam
# Cargar datos
datos = pd.read_csv('emails_ficticios.csv')
# Preprocesamiento
vectorizador = CountVectorizer()
X = vectorizador.fit_transform(datos['Texto'])
y = datos['Etiqueta']
# Dividir el dataset
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Entrenar el modelo
modelo = MultinomialNB()
modelo.fit(X_train, y_train)
# Función para predecir si un email es spam
def predecir_spam(texto_email):
texto_transformado = vectorizador.transform([texto_email])
prediccion = modelo.predict(texto_transformado)
return "Spam" if prediccion[0] == 1 else "Spam"
# Prueba con un email de ejemplo
email_de_prueba = "Obtén un iPhone nuevo a mitad de precio"
resultado = predecir_spam(email_de_prueba)
print(f"El email '{email_de_prueba}' es clasificado como: {resultado}")
El email 'Obtén un iPhone nuevo a mitad de precio' es clasificado como: Spam
No hay comentarios:
Publicar un comentario