
🚀 Aprendiendo Machine Learning desde cero: clasificador de spam ✉️🤖
Aprender machine learning no tiene por qué ser complicado. Un proyecto ideal para arrancar es crear un clasificador de correo basura usando el dataset de Enron
- ✅ Procesamiento de texto (tokenización, stemming, lematización)
- 🔢 Transformar palabras en números con TF‑IDF
- 📊 Entrenar un modelo simple como Naive Bayes o incluso un SVM
- 📈 Evaluar con accuracy, precisión, recall y F1‑score
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
import glob
# cargar correos y etiquetas (spam/ham)
emails, labels = [], []
for path in glob.glob("enron/**/*.txt", recursive=True):
with open(path, errors='ignore') as f:
text = f.read()
emails.append(text)
labels.append("spam" if "spam" in path else "ham")
# vectorizar y entrenar
X = TfidfVectorizer(stop_words="english").fit_transform(emails)
X_train, X_test, y_train, y_test = train_test_split(X, labels, test_size=0.2)
model = MultinomialNB().fit(X_train, y_train)
print(classification_report(y_test, model.predict(X_test)))📝 Explicación en pocas palabras
Imagina que cada correo es una receta de cocina. Primero rompemos la receta en palabras (tokenización) y las convertimos en números según cuán frecuentes son (TF‑IDF). Luego, un algoritmo como Naive Bayes aprende qué palabras suelen aparecer en los correos de “spam”. Después de entrenar, basta pasar un nuevo correo y el modelo te dirá si es basura o no. ✅
Este enfoque te enseña conceptos clave de NLP y ML de forma práctica, ¡y en poco tiempo tendrás tu primer clasificador funcionando! 💡✨
Más información en el link 👇

