Spam Detector | L’IA en pratique avec python.
L'IA en pratique avec python.

#
Detecteur de Spam (Spam detector)

Vous trouverez ci-dessous les instructions et détails sur l’application de détecteur de Spam. Le but de cette application étant de determiner si un texte donné, venant typiquement d’un email est catégorisé comme spam ou non.

L’application présenté ici utilise un algorithme d’apprentissage du type classification naïve bayésienne (Naive Bayes classifier).

##
Installation

Pour installer l’application, commencez par copier le dépot du livre (AI-book sur github), soit en recupérant l’archive zip depuis github, soit à l’aide de l’outil git:

    git clone https://github.com/iridia-ulb/AI-book

Puis, accedez au dossier:

    cd SpamDetector

Après avoir installé python et poetry, rendez vous dans ce dossier et installez les dépendances du projet:

    poetry install

##
Utilisation

Vous pouvez ensuite lancer l’application dans un des trois modes: le mode `show` (`-s`) vous permettra de visualiser un nuage de mots des spams contenus dans le fichier spam.csv;

    poetry run python main.py -s

le mode `test` (`-t`) vous donnera les métriques de résultats d’un test de classification de messages aléatoires après entrainement;

    poetry run python main.py -t

le mode `classify` (`-c`) vous permettre de tester une phrase pour savoir si elle sera détectée comme spam, sur l’algorithme, entrainé avec les données du fichier `spam.csv`.

    poetry run python main.py -c "Can machines think?"

Vous verez alors apparaitre dans le terminal la mention `Spam? : True`, ou `Spam? : False`, suivant si votre message est classé comme indésirable ou non.

En résumé:

    usage: main.py [-h] [-s] [-t] [-c CLASSIFY]

    Spam detector.

    optional arguments:
      -h, --help            show this help message and exit
      -s, --show            Shows the occurence of words as a wordcloud
      -t, --test            trains and tests the algorithms and gives results in différent metrics
      -c CLASSIFY, --classify CLASSIFY
                            Classifies the given text into spam or not spam using TFxIDF