Ce projet a pour objectif de faire une analyse de sentiment sur des tweets pour effectuer une prédiction de type Positive
ou Negative
.
Le script download.py permet de télécharger le code HTML de tweets issus de plusieurs recherches (biden
et trump
dans notre cas) sur une date donnée.
nb_scroll
.
Le paramètre pause_time
détermine le temps avant d'effectuer un scroll. Il doit être adapté en fonction de la connexion Internet.
Le script download_multi.py effectue le webscraping en multithreading.
Le notebook parsing.ipynb créée un dataframe avec les tweets téléchargés.
Nous réalisons un apprentissage de type supervisé en utilisant la base Sentiment140 qui contient 1.6 millions de Tweets déjà catégorisés (Positive
ou Negative
).
Le notebook preprocessing.ipynb effectue le preprocessing sur la base Sentiment140 et les tweets webscrapés.
Méthodes utilisées :
- Count Vectorizer
- TF-IDF
- N-grams
Le notebook description.ipynb contient des statistiques descriptives sur la base Sentiment140 et les tweets webscrapés après preprocessing.
- Logistic Regression : model-LR.ipynb
- Gaussian/Multinomial Naive Bayes : model-NB.ipynb
- Multinomial Naive Bayes Semi-Supervised : model-semi.ipynb
- Neural Networks : model-NN.ipynb
Le notebook model-semi.ipynb contient par ailleurs l'application finale du meilleur modèle sur l'ensemble des tweets webscrapés.
- Installation de l'environnement d'exécution avec Anaconda
Cloner le répertoire puis exécuter à l'intérieur du répertoire :
conda env create
- Lancement de JupyterLab ou Jupyter Notebook
Exécuter à l'intérieur du répertoire :
conda activate data-2A
jupyter lab
ou :
conda activate data-2A
jupyter notebook