sauvegarder le modèle
Browse files- app.py +17 -0
- sms_spam_detector_model.pkl +3 -0
- spam-detector-Mathis-AI.ipynb +31 -5
app.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pickle # Pour sauvegarder et charger le modèle
|
| 2 |
+
from sklearn.feature_extraction.text import CountVectorizer # Transformer le texte en nombres
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
# Charger le modèle sauvegardé
|
| 6 |
+
with open('sms_spam_detector_model.pkl','rb') as file:
|
| 7 |
+
model=pickle.load(file)
|
| 8 |
+
|
| 9 |
+
# Fonction pour prédire si un message est du spam ou non
|
| 10 |
+
def predict_spam(message):
|
| 11 |
+
# Convertir les messages en nombres
|
| 12 |
+
vectorizer = CountVectorizer()
|
| 13 |
+
message_transformed = vectorizer.transform([message])
|
| 14 |
+
prediction = model.predict(message_transformed)
|
| 15 |
+
return "SPAM ❌" if prediction[0] == 1 else "HAM ✅"
|
| 16 |
+
|
| 17 |
+
|
sms_spam_detector_model.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:be5baf4afe665e8089958c71f193dc574c19c79595cdbb689adc302586364cac
|
| 3 |
+
size 279432
|
spam-detector-Mathis-AI.ipynb
CHANGED
|
@@ -18,7 +18,7 @@
|
|
| 18 |
},
|
| 19 |
{
|
| 20 |
"cell_type": "code",
|
| 21 |
-
"execution_count":
|
| 22 |
"id": "8a313f24",
|
| 23 |
"metadata": {},
|
| 24 |
"outputs": [],
|
|
@@ -27,6 +27,7 @@
|
|
| 27 |
"import numpy as np # Calculs mathématiques\n",
|
| 28 |
"import matplotlib.pyplot as plt # Affichage de graphiques\n",
|
| 29 |
"import seaborn as sns # Visualisation de données\n",
|
|
|
|
| 30 |
"from sklearn.feature_extraction.text import CountVectorizer # Transformer le texte en nombres\n",
|
| 31 |
"from sklearn.model_selection import train_test_split # Séparer les données\n",
|
| 32 |
"from sklearn.naive_bayes import MultinomialNB # Modèle d'apprentissage\n",
|
|
@@ -393,7 +394,7 @@
|
|
| 393 |
},
|
| 394 |
{
|
| 395 |
"cell_type": "code",
|
| 396 |
-
"execution_count":
|
| 397 |
"id": "8f4f505b",
|
| 398 |
"metadata": {},
|
| 399 |
"outputs": [
|
|
@@ -403,7 +404,7 @@
|
|
| 403 |
"<Axes: xlabel='label', ylabel='count'>"
|
| 404 |
]
|
| 405 |
},
|
| 406 |
-
"execution_count":
|
| 407 |
"metadata": {},
|
| 408 |
"output_type": "execute_result"
|
| 409 |
},
|
|
@@ -422,13 +423,38 @@
|
|
| 422 |
"sns.countplot(x='label', data=df)"
|
| 423 |
]
|
| 424 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 425 |
{
|
| 426 |
"cell_type": "code",
|
| 427 |
-
"execution_count":
|
| 428 |
"id": "dba57e87",
|
| 429 |
"metadata": {},
|
| 430 |
"outputs": [],
|
| 431 |
-
"source": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 432 |
}
|
| 433 |
],
|
| 434 |
"metadata": {
|
|
|
|
| 18 |
},
|
| 19 |
{
|
| 20 |
"cell_type": "code",
|
| 21 |
+
"execution_count": 12,
|
| 22 |
"id": "8a313f24",
|
| 23 |
"metadata": {},
|
| 24 |
"outputs": [],
|
|
|
|
| 27 |
"import numpy as np # Calculs mathématiques\n",
|
| 28 |
"import matplotlib.pyplot as plt # Affichage de graphiques\n",
|
| 29 |
"import seaborn as sns # Visualisation de données\n",
|
| 30 |
+
"import pickle # Sauvegarder et charger des modèles\n",
|
| 31 |
"from sklearn.feature_extraction.text import CountVectorizer # Transformer le texte en nombres\n",
|
| 32 |
"from sklearn.model_selection import train_test_split # Séparer les données\n",
|
| 33 |
"from sklearn.naive_bayes import MultinomialNB # Modèle d'apprentissage\n",
|
|
|
|
| 394 |
},
|
| 395 |
{
|
| 396 |
"cell_type": "code",
|
| 397 |
+
"execution_count": 11,
|
| 398 |
"id": "8f4f505b",
|
| 399 |
"metadata": {},
|
| 400 |
"outputs": [
|
|
|
|
| 404 |
"<Axes: xlabel='label', ylabel='count'>"
|
| 405 |
]
|
| 406 |
},
|
| 407 |
+
"execution_count": 11,
|
| 408 |
"metadata": {},
|
| 409 |
"output_type": "execute_result"
|
| 410 |
},
|
|
|
|
| 423 |
"sns.countplot(x='label', data=df)"
|
| 424 |
]
|
| 425 |
},
|
| 426 |
+
{
|
| 427 |
+
"cell_type": "markdown",
|
| 428 |
+
"id": "55444fb4",
|
| 429 |
+
"metadata": {},
|
| 430 |
+
"source": [
|
| 431 |
+
"### Sauvegarder le model "
|
| 432 |
+
]
|
| 433 |
+
},
|
| 434 |
{
|
| 435 |
"cell_type": "code",
|
| 436 |
+
"execution_count": 13,
|
| 437 |
"id": "dba57e87",
|
| 438 |
"metadata": {},
|
| 439 |
"outputs": [],
|
| 440 |
+
"source": [
|
| 441 |
+
"\n",
|
| 442 |
+
"# Sauvegarder le modèle \n",
|
| 443 |
+
"\n",
|
| 444 |
+
"with open('sms_spam_detector_model.pkl','wb') as file:\n",
|
| 445 |
+
" pickle.dump(model,file)"
|
| 446 |
+
]
|
| 447 |
+
},
|
| 448 |
+
{
|
| 449 |
+
"cell_type": "code",
|
| 450 |
+
"execution_count": null,
|
| 451 |
+
"id": "6ebccf7a",
|
| 452 |
+
"metadata": {},
|
| 453 |
+
"outputs": [],
|
| 454 |
+
"source": [
|
| 455 |
+
"with open('dht11_model.pkl','rb') as file: \n",
|
| 456 |
+
" model=pickle.load(file)"
|
| 457 |
+
]
|
| 458 |
}
|
| 459 |
],
|
| 460 |
"metadata": {
|