Construcción de un detector de spam
Entrenar con mensajes etiquetados
Construcción de un detector de spam es una lección gratuita de NLP Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de NLP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de NLP Academy incluye 4 lecciones en total.
Su primer modelo real
Es hora de construir algo útil: un filtro de spam. Entrenará un clasificador con mensajes etiquetados y le permitirá evaluar mensajes completamente nuevos.
Comenzar con datos etiquetados
Todo modelo supervisado necesita ejemplos con respuestas. Aquí, cada mensaje incluye una etiqueta de spam o ham, el nombre informal para indicar que no es spam.
messages = ["win cash now", "lunch at noon?", "free prize click"]
labels = ["spam", "ham", "spam"]
print(len(messages), len(labels))Convertir texto en números
El modelo no puede leer palabras sin procesar, así que primero debe contarlas. Un CountVectorizer convierte cada mensaje en una fila de conteos de palabras.
from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer()
X = vec.fit_transform(messages)Conozca MultinomialNB
Para los conteos de palabras, la herramienta adecuada es MultinomialNB, la variante de Naive Bayes basada en conteos que se incluye en scikit-learn.
from sklearn.naive_bayes import MultinomialNB
model = MultinomialNB()Ajustar el modelo
El entrenamiento ocupa una sola línea: proporcione al modelo sus características y etiquetas. La llamada a fit cuenta las palabras de cada clase y almacena las probabilidades.
model.fit(X, labels)
print("trained on", X.shape[0], "messages")Predecir nuevos correos
Para evaluar un mensaje nuevo, vectorícelo de la misma forma y llame a predict. El modelo devuelve su mejor estimación de si es spam o ham.
new = vec.transform(["free cash prize"])
print(model.predict(new))Reutilizar el vectorizador
El texto nuevo debe utilizar el mismo vocabulario que aprendió el modelo. Llame siempre a transform, nunca vuelva a ajustar el modelo, o las columnas no coincidirán.
Consultar la confianza
Además de la etiqueta, el modelo puede indicar cuánta seguridad tiene. El método predict_proba proporciona una probabilidad para cada clase posible.
print(model.predict_proba(new))Reservar un conjunto de prueba
Nunca evalúe un modelo con los datos que utilizó para entrenarse. Separe un conjunto de prueba para medir su rendimiento con mensajes que no haya visto.
Evaluar el filtro
Ejecute predicciones sobre los mensajes reservados y compárelas con la verdad. Esa precisión le indica si su filtro de spam realmente funciona. 📬
Iterar para mejorar
Más datos limpios y un mejor preprocesamiento mejoran los resultados rápidamente. Considere este filtro como una línea base que puede perfeccionar gradualmente, no como un producto terminado.
Comprobación rápida
¿Cómo debe preparar un mensaje nuevo antes de hacer una predicción sobre él?
Repaso
Vectorizó mensajes, entrenó MultinomialNB y predijo si un texto nuevo era spam. Reutilizar el vectorizador ajustado mantiene sus características alineadas. ✅
Aprende Python con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Construcción de un detector de spam» es gratis?
Sí — el texto completo de «Construcción de un detector de spam» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de NLP Academy, actualiza a CoddyKit PRO. El curso de NLP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Construcción de un detector de spam»?
Entrenar con mensajes etiquetados Practicas NLP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar NLP Academy?
No se requiere experiencia previa. NLP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Construcción de un detector de spam»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de NLP Academy?
Sí. Cada lección de NLP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- La intuición detrás de Naive Bayes
- Construcción de un detector de spam
- Modelos multinomiales frente a Bernoulli
- Lectura de las predicciones del modelo