--- language: - ar license: mit tags: - text-classification - naive-bayes - tf-idf - arabic-nlp - spam-detection pipeline_tag: text-classification metrics: - accuracy model-index: - name: Spam Detection — Arabic (Naive Bayes) results: - task: type: text-classification name: Text Classification dataset: name: Arabic Spam Dataset type: custom metrics: - type: accuracy value: 0.976 name: Accuracy --- # Spam Detection — Arabic (Naive Bayes) A spam/ham text classifier for Arabic messages, built with a custom Arabic-aware preprocessing pipeline (tatweel/tashkeel stripping, tokenization, stopword removal) and TF-IDF features feeding into a Multinomial Naive Bayes classifier. ## Model Details * **Architecture:** TF-IDF + Multinomial Naive Bayes (scikit-learn Pipeline) * **Preprocessing:** Custom transformer — hashtag/punctuation removal, tatweel (تطويل) and tashkeel (تشكيل) stripping via pyarabic, tokenization, Arabic stopword removal * **Hyperparameters:** Tuned via GridSearchCV (alpha smoothing) * **Accuracy:** 97.6% on held-out test set ## Intended Use Binary spam classification for Arabic text messages/emails. Part of a multilingual spam detection system that automatically routes text to a language-specific model (English or Arabic) based on detected language (via `langdetect`). ## How to Use ```python import joblib model = joblib.load("spam_ar_nb.joblib") prediction = model.predict(["مبروك! لقد ربحت جائزة مجانية، اضغط هنا الآن"]) print(prediction) # 1 = spam, 0 = ham