Le but de ce projet est de réaliser une classification de documents, il consiste à classifier des mails en spams/hams en utilisant plusieurs techniques de Machine Learning, les étapes sont :
- Récolte des données
- Nettoyage et préparation des données
- Supprimer la ponctuation
- tokenizer les données
- Elimination des stop words (mots sans valeurs sémantiquement)
- réduction de la taille du document en réduissant le nombre de type de mot présent dans le doc (stemming ou lemmatization)
- vectorisation (transformer le text en chiffres)
- vectorisation contextuelle N grams
- vectorisation tf-idf
- Feature Engineering : enrichir les données avec de nouvelles variables ou transformer les variables excitantes
- Construire des jeux de données pour l'entrainement et le test
- Cross-Validation et méthode K-fold
- matrice de confusion
- Modèles
- SVM
- SVM_CrossValidation
- Évaluation des modèles
- Métriques de performance : precision, recall et accuracy.
- sélection du meilleur modèle
Machin Learning, NLP, tokenizer, stemming, lemmatization, vectorisation, N_grams, tf-idf, Feature Engineering, Cross-Validation, k-fold, SVM,
- Python
- Pandas
- re
- nltk
import pandas as pd
import re
import string
import nltk
from nltk.corpus import stopwords
Le Dataset SMSSpamCollection.txt peut être téléchargé ici
Ce jeu de données contient deux informations principales : le contenu d'un mail, et le label qui définit si le mail est spam/ham
source du Dataset :
[1] Almeida, T.A., Gómez Hidalgo, J.M., Yamakami, A. Contributions to the Study of SMS Spam Filtering: New Collection and Results. Proceedings of the 2011 ACM Symposium on Document Engineering (DOCENG'11), Mountain View, CA, USA, 2011.
[2] Gómez Hidalgo, J.M., Almeida, T.A., Yamakami, A. On the Validity of a New SMS Spam Collection. Proceedings of the 11th IEEE International Conference on Machine Learning and Applications (ICMLA'12), Boca Raton, FL, USA, 2012.
[3] Almeida, T.A., Gómez Hidalgo, J.M., Silva, T.P. Towards SMS Spam Filtering: Results under a New Dataset. International Journal of Information Security Science (IJISS), 2(1), 1-18, 2013.
Métriques de performance utilisé : precision, recall et accuracy.
- Résultats pour le model SVM
- precision = 0.966, recall = 0.929, accuracy = 0.986
- Résultat pour le model SVM_CrossValidation
- accuracy pour chaque batch = [0.97774587 0.9856425 0.9798995 0.98420675]
- accuracy totale = 0.9818736539842067
- Résultat pour le model SVM_TF-IDF
- precision = 0.993, recall = 0.905, accuracy = 0.987
📫 How to reach me: kebiri.isam.dine@gmail.com
🌐 My Portfolio: https://kebiri-isam-dine.github.io/
🔗 Project Link: https://github.com/Kebiri-isam-dine/Classification_des_mails_spams-hams