كشف البريد المزعج (Spam Detection)
نموذج يميز بين البريد الطبيعي والمزعج باستخدام NLP و ML
مقدمة المشروع
في هذا المشروع العملي، ستتعلم كيفية نموذج يميز بين البريد الطبيعي والمزعج باستخدام nlp و ml. هذا المشروع مصمم خصيصاً لمستوى مبتدئويستغرق تقريباً 1-2 أسبوع لإكماله بشكل كامل.
سنتبع منهجية CRISP-DM (Cross-Industry Standard Process for Data Mining) المعترف بها عالمياً، والتي تضمن بناء مشروع احترافي قابل للتطبيق في بيئة الإنتاج.
ماذا ستتعلم؟
خطوات العمل التفصيلية
اتبع هذه الخطوات الست لبناء مشروع احترافي
Business Understanding
فهم المشكلة
تحديد الأهداف والمتطلبات من منظور الأعمال
الخطوات العملية:
تحديد تأثير البريد المزعج - 45% من emails عالمياً spam. تكلفة معالجة spam تصل لمليارات سنوياً. تحديد أهداف النموذج: Precision عالي (تجنب False Positives)، Recall جيد (التقاط أكبر عدد من spam). دراسة خصائص البريد المزعج: الكلمات المشبوهة، الروابط، الأرقام، الـ urgency.
Data Understanding
فهم البيانات
جمع البيانات الأولية والتعرف عليها وتحديد جودتها
الخطوات العملية:
تحميل SMS Spam Collection Dataset (5,574 رسالة). استكشاف التوزيع: 87% ham, 13% spam - بيانات غير متوازنة. تحليل طول الرسائل: spam عادة أطول. استخراج الكلمات الأكثر تكراراً في كل فئة. رسم Word Clouds لـ spam و ham.
Data Preparation
تحضير البيانات
تنظيف وتحويل البيانات لتكون جاهزة للنمذجة
الخطوات العملية:
تنظيف النص: إزالة HTML tags، URLs، أرقام الهواتف. تحويل النص إلى lowercase. Tokenization باستخدام NLTK. إزالة Stop Words العربية والإنجليزية. تطبيق Stemming/Lemmatization. تحويل النص إلى vectors باستخدام TF-IDF و Bag of Words. معالجة Class Imbalance باستخدام SMOTE أو Class Weights.
Modeling
بناء النموذج
اختيار وتطبيق تقنيات النمذجة المناسبة
الخطوات العملية:
بناء Baseline مع Naive Bayes (مناسب للنصوص). تطبيق Logistic Regression مع TF-IDF. بناء Linear SVM. تجربة Random Forest و XGBoost. استخدام N-grams (unigrams, bigrams) لالتقاط السياق. تطبيق GridSearchCV لضبط Hyperparameters.
Evaluation
التقييم
تقييم النموذج والتأكد من تحقيق الأهداف
الخطوات العملية:
حساب Accuracy, Precision, Recall, F1-Score. رسم Confusion Matrix وتحليلها: كم False Positive/Negative؟ حساب ROC-AUC. تحليل الرسائل المصنفة خطأ. Feature Importance: أهم الكلمات التي تشير لـ spam. Cross-Validation للتأكد من استقرار الأداء.
Deployment
النشر
نشر النموذج في بيئة الإنتاج
الخطوات العملية:
بناء API بـ FastAPI يستقبل رسالة نصية ويعيد التصنيف. إنشاء واجهة ويب بسيطة لإدخال الرسائل واختبارها. إضافة Explanation: عرض الكلمات التي أدت للتصنيف. حفظ النموذج بـ pickle. كتابة Documentation. Deploy على Heroku أو Streamlit Cloud.