This project aimed to analyze and classify French tweets related to global warming and drought using Natural Language Processing (NLP) and Machine Learning techniques. The process involved scraping tweets using the snscrape
Python library, preprocessing the text, and manually labeling the tweets for sentiment polarity (positive or negative). The dataset was visualized through word clouds and co-occurrence networks to identify common themes and word associations.
Several Machine Learning models, including Naive Bayes, Support Vector Machines (SVM), and Random Forest, were trained and evaluated for their performance in predicting tweet polarity. Techniques such as oversampling and grid search were used to enhance model performance. Additionally, pretrained Word2Vec embeddings were fine-tuned on the dataset to improve text representation and classification accuracy.
The ultimate goal was to build robust models capable of accurately classifying the sentiment of French tweets addressing climate change-related topics and to provide insights into public opinion within the French-speaking community on these critical issues.
- Overview
- Project Structure
- Installation
- Usage
- Modeling Techniques
- Results
- Contributing
- Contact
- License
The project is organized as follows:
Twitter_Data_Scraping.ipynb
: Jupyter notebook for scraping tweets using thesnscrape
library.Tweets_Preprocessing.ipynb
: Notebook for preprocessing the scraped tweets.Tweets Polarity Predictions (TFIDF).ipynb
: Predicting tweet polarity using TF-IDF vectorization and machine learning models.Tweets Polarity Predictions (Word2Vec).ipynb
: Predicting tweet polarity using fine-tuned Word2Vec embeddings and machine learning models.Further_Analysis_of_Tweets.ipynb
: Additional analysis of tweets, including visualizations such as word clouds and co-occurrence networks.negative_network.html
&positive_network.html
: Visualizations of the co-occurrence networks for negative and positive tweets.- CSV files (
train.csv
,test.csv
,tweets.csv
): Dataset files used for training and testing models.
- Clone the repository:
git clone https://github.com/yourusername/French-Climate-Tweets-Classification.git
- Navigate to the project directory:
cd French-Climate-Tweets-Classification
- Install the required dependencies:
pip install -r requirements.txt
- Data Scraping: Use the
Twitter_Data_Scraping.ipynb
notebook to scrape tweets using thesnscrape
library. - Preprocessing: Preprocess the tweets using the
Tweets_Preprocessing.ipynb
notebook. This step includes text cleaning, normalization, and labeling for sentiment polarity. - Model Training and Evaluation: Use the
Tweets Polarity Predictions (TFIDF).ipynb
andTweets Polarity Predictions (Word2Vec).ipynb
notebooks to train and evaluate machine learning models. - Further Analysis: Explore the dataset further using
Further_Analysis_of_Tweets.ipynb
, which includes creating word clouds and co-occurrence networks.
- Text Preprocessing: Involves cleaning and normalizing text to remove noise and standardize the input data.
- TF-IDF Vectorization: Converts text data into numerical features using Term Frequency-Inverse Document Frequency.
- Word2Vec Embeddings: Pretrained embeddings fine-tuned on the dataset to improve text representation.
- Machine Learning Models: Several models were trained, including:
- Logistic Regression:
LogisticRegression
- MLP Classifier:
MLPClassifier
- SVC:
SVC
- AdaBoost Classifier:
AdaBoostClassifier
- Gradient Boosting:
GradientBoostingClassifier
- KNN:
KNeighborsClassifier
- Random Forest:
RandomForestClassifier
- Naive Bayes:
MultinomialNB
- Logistic Regression:
- Oversampling & Grid Search: Used to balance the dataset and optimize model hyperparameters.
The project successfully developed models that accurately classified the sentiment of French tweets on climate change and drought. The best performing model was Random Forest with a validation accuracy of 0.8977. Visualizations such as word clouds and co-occurrence networks provided additional insights into the common themes and word associations within the tweets. The fine-tuned Word2Vec embeddings notably enhanced the classification accuracy, making the models more robust.
Contributions are welcome! Please submit a pull request or open an issue to discuss changes.
For questions or suggestions, please contact [email protected].
This project is licensed under the MIT License. See the LICENSE file for details.
Ce projet a pour but d'analyser et de classifier les tweets Français concernant le réchauffement climatique et la sécheresse en utilisant des techniques de traitement du langage naturel (NLP) et d'apprentissage automatique. Le processus a impliqué l'extraction des tweets avec la bibliothèque Python snscrape
, le prétraitement des tweets, et l'étiquetage manuel de ces derniers en deux classes (positif ou négatif). Les données ont été visualisées à travers des nuages de mots et des réseaux de cooccurrence pour identifier les termes récurrents et les associations de mots.
Divers modèles d'apprentissage automatique ont été entraînés et évalués pour leur capacité à prédire la polarité des tweets. Des techniques comme le suréchantillonnage et la recherche en grille ont été utilisées pour améliorer les performances des modèles. En outre, des embeddings Word2Vec pré-entraînés ont été ajustés sur le jeu de données pour affiner la représentation du texte et améliorer la précision de la classification.
L'objectif ultime était de développer des modèles robustes capables de classifier avec précision les sentiments des tweets Français abordant les sujets liés au changement climatique, et de fournir des informations sur l'opinion publique au sein de la communauté francophone sur ces enjeux critiques.
- Vue d'ensemble
- Structure du Projet
- Installation
- Utilisation
- Techniques de Modélisation
- Résultats
- Contributions
- Contact
- Licence
Le projet est organisé comme suit :
Twitter_Data_Scraping.ipynb
: Notebook Jupyter pour extraire des tweets en utilisant la bibliothèquesnscrape
.Tweets_Preprocessing.ipynb
: Notebook pour le prétraitement des tweets extraits, comprenant le nettoyage, la normalisation et la standardisation des tweets.Tweets Polarity Predictions (TFIDF).ipynb
: Prédiction de la polarité des tweets en utilisant la vectorisation TF-IDF et des modèles d'apprentissage automatique.Tweets Polarity Predictions (Word2Vec).ipynb
: Prédiction de la polarité des tweets en utilisant des embeddings Word2Vec ajustés et des modèles d'apprentissage automatique.Further_Analysis_of_Tweets.ipynb
: Analyse complémentaire des tweets, incluant des visualisations comme des nuages de mots et des réseaux de cooccurrence.negative_network.html
&positive_network.html
: Visualisations des réseaux de cooccurrence pour les tweets négatifs et positifs.- Fichiers CSV (
train.csv
,test.csv
,tweets.csv
) : Fichiers de données utilisés pour entraîner et tester les modèles.
- Clonez le dépôt :
git clone https://github.com/votreutilisateur/French-Climate-Tweets-Classification.git
- Accédez au répertoire du projet :
cd French-Climate-Tweets-Classification
- Installez les dépendances requises :
pip install -r requirements.txt
- Extraction des Données : Utilisez le notebook
Twitter_Data_Scraping.ipynb
pour extraire les tweets avec la bibliothèquesnscrape
. - Prétraitement : Prétraitez les tweets à l'aide du notebook
Tweets_Preprocessing.ipynb
. Cette étape comprend le nettoyage des tweets et leur normalisation. - Entraînement et Évaluation des Modèles : Utilisez les notebooks
Tweets Polarity Predictions (TFIDF).ipynb
etTweets Polarity Predictions (Word2Vec).ipynb
pour entraîner et évaluer les modèles d'apprentissage automatique. - Analyse Supplémentaire : Explorez davantage les données avec
Further_Analysis_of_Tweets.ipynb
, qui inclut la création de nuages de mots et de réseaux de cooccurrence.
- Prétraitement des Textes : Nettoyage et normalisation des textes pour éliminer le bruit et standardiser les données.
- Vectorisation TF-IDF : Conversion des données textuelles en caractéristiques numériques à l'aide de la vectorization TF-IDF.
- Embeddings Word2Vec : Embeddings pré-entraînés ajustés sur le jeu de données pour améliorer la représentation des tweets.
- Modèles d'Apprentissage Automatique : Plusieurs modèles ont été entraînés, notamment :
- Régression Logistique :
LogisticRegression
- MLP Classifier :
MLPClassifier
- SVC :
SVC
- AdaBoost Classifier :
AdaBoostClassifier
- Gradient Boosting :
GradientBoostingClassifier
- KNN :
KNeighborsClassifier
- Random Forest :
RandomForestClassifier
- Naive Bayes :
MultinomialNB
- Régression Logistique :
- Suréchantillonnage & Recherche en Grille : Utilisés pour équilibrer le jeu de données et optimiser les hyperparamètres des modèles.
Le projet a permis de développer des modèles capables de classifier avec précision les sentiments des tweets en français sur le changement climatique et la sécheresse. Le modèle le plus performant a été Random Forest avec une précision de validation de 0.8977. Les visualisations, telles que les nuages de mots et les réseaux de cooccurrence, ont apporté des informations supplémentaires sur les thèmes récurrents et les associations de mots dans les tweets. Les embeddings Word2Vec ajustés ont significativement amélioré la précision de la classification, rendant les modèles plus robustes.
Les contributions sont les bienvenues ! N'hésitez pas à soumettre une demande de tirage (pull request) ou à ouvrir un problème pour discuter des modifications.
Pour toute question ou suggestion, veuillez contacter [email protected].
Ce projet est sous licence MIT. Voir le fichier LICENCE pour plus de détails.