Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
# Projet Scraping & Analyse des Avis Google Play / App Store Ce projet permet de : 1. Récupérer les avis d’applications depuis **Google Play** ([google-play-scraper](https://github.com/JoMingyu/google-play-scraper)). 2. Stocker les données dans **MongoDB** ([PyMongo](https://pymongo.readthedocs.io/en/stable/)). 3. Nettoyer et analyser les avis via **Machine Learning** pour prédire un score ([scikit-learn](https://scikit-learn.org/stable/)). 4. Servir des prédictions via une API ou un site web ([Flask](https://flask.palletsprojects.com/en/3.0.x/)). --- ## Prérequis * Python 3.11 ou supérieur * MySQL Workbench / serveur MySQL ([MySQL](https://dev.mysql.com/downloads/mysql/)) * MongoDB (Atlas ou local) ([MongoDB](https://www.mongodb.com/)) * Environnement virtuel Python --- ## Installation 1. Activer l’environnement virtuel : ```bash .\.venv\Scripts\activate ``` 2. Installer les dépendances : ```bash pip install -r requirements.txt ``` > Si l’installation de `app_store_scraper` échoue via `requirements.txt`, essayez : > > ```bash > pip install app-store-scraper > ``` --- ## Utilisation : Ordre des Commandes Suivez ces étapes dans l'ordre pour exécuter le pipeline complet : 1. **Scraping des avis Google Play et stockage dans MongoDB** : ```bash python Scrapp_google_to_mongodb.py ``` - Récupère les avis depuis Google Play pour plusieurs pays. - Stocke dans MongoDB Atlas. 2. **Nettoyage des données MongoDB et insertion dans MySQL** : ```bash python Cleaning_Mongodb_toMysql.py ``` - Nettoie les données (supprime doublons, colonnes inutiles). - Insère dans MySQL. 3. **Entraînement des modèles ML et sauvegarde** : ```bash python Mysql_ML.py ``` - Entraîne LogisticRegression et RandomForest sur les données MySQL. - Sauvegarde le vectorizer et les modèles via MLflow. 4. **Lancement de l'API de prédiction** : ```bash python api_mlflow_rf.py ``` - Démarre l'API Flask sur `http://127.0.0.1:5001`. - Utilise un modèle pré-entraîné pour prédire les notes (1-5 étoiles). 5. **(Optionnel) Lancement du pipeline complet (ML + API)** : ```bash python run_pipeline.py ``` - Exécute Mysql_ML.py puis démarre l'API. 6. **(Optionnel) Lancement du site web pour tester les prédictions** : ```bash python web_app.py ``` - Ouvre un site web sur `http://127.0.0.1:5002` avec un formulaire pour saisir des commentaires. --- ## Descriptions des Scripts ### Scrapp_google_to_mongodb.py - **Fonction** : Scraping des avis Google Play Store. - **Bibliothèques** : [google-play-scraper](https://github.com/JoMingyu/google-play-scraper), [PyMongo](https://pymongo.readthedocs.io/en/stable/). - **Sortie** : Données insérées dans MongoDB. ### Cleaning_Mongodb_toMysql.py - **Fonction** : Nettoyage des données MongoDB et export vers MySQL. - **Bibliothèques** : [PyMongo](https://pymongo.readthedocs.io/en/stable/), [SQLAlchemy](https://www.sqlalchemy.org/). - **Sortie** : Table MySQL remplie. ### Mysql_ML.py - **Fonction** : Entraînement de modèles ML (LogisticRegression, RandomForest) sur données MySQL. - **Bibliothèques** : [scikit-learn](https://scikit-learn.org/stable/), [MLflow](https://mlflow.org/). - **Sortie** : Modèles et vectorizer sauvegardés, métriques affichées. ### api_mlflow_rf.py - **Fonction** : API Flask pour prédictions de notes (utilise modèle pré-entraîné). - **Bibliothèques** : [Flask](https://flask.palletsprojects.com/en/3.0.x/), [transformers](https://huggingface.co/docs/transformers/index). - **Sortie** : API REST sur port 5001. ### run_pipeline.py - **Fonction** : Lance Mysql_ML.py puis l'API. - **Bibliothèques** : subprocess (standard Python). ### web_app.py - **Fonction** : Site web simple pour saisir des commentaires et voir les prédictions. - **Bibliothèques** : [Flask](https://flask.palletsprojects.com/en/3.0.x/), [transformers](https://huggingface.co/docs/transformers/index). - **Sortie** : Interface web sur port 5002. --- ## Test de l'API avec Postman - URL : `http://127.0.0.1:5001/predict` - Méthode : POST - Body (JSON) : `{"text": "Votre commentaire ici"}` - Réponse : `{"input": "Votre commentaire ici", "prediction": 5, "confidence": 0.95}` --- ## Notes - Assurez-vous que MongoDB et MySQL sont configurés avec les bonnes credentials. - Les modèles pré-entraînés offrent de meilleurs résultats que les modèles custom. - Pour des logs détaillés, consultez la console lors de l'exécution.