docs: README bilingue FR/EN
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
17b238da39
commit
3a21743298
2 changed files with 417 additions and 164 deletions
251
README.fr.md
Normal file
251
README.fr.md
Normal file
|
|
@ -0,0 +1,251 @@
|
|||
**Source de vérité** : https://git.gregoiremureau.com/openclassroom-ai/oc-p06-product-classification
|
||||
|
||||
```bash
|
||||
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p06-product-classification.git
|
||||
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p06-product-classification.git
|
||||
```
|
||||
|
||||
Dataset : voir `fetch-data.sh` (hors git si volumineux).
|
||||
|
||||
# Projet de Classification Automatique de Produits - Place de marché
|
||||
|
||||
📘 Ce projet est également disponible en [anglais 🇬🇧](./README.md)
|
||||
|
||||
## 📋 Contexte du projet
|
||||
|
||||
Ce projet a été réalisé pour **Place de marché**, une entreprise qui souhaite lancer une marketplace e-commerce anglophone. L'objectif est d'automatiser la classification des articles vendus sur la plateforme pour améliorer l'expérience utilisateur, tant pour les vendeurs que pour les acheteurs.
|
||||
|
||||
Actuellement, l'attribution des catégories est effectuée manuellement par les vendeurs, ce qui est peu fiable et difficile à passer à l'échelle. Ce projet vise à développer un moteur de classification automatique basé sur les descriptions textuelles (en anglais) et les images des produits.
|
||||
|
||||
## 🎯 Objectifs
|
||||
|
||||
Le projet se divise en plusieurs missions principales :
|
||||
|
||||
1. **Étude de faisabilité** : Analyser la capacité à classifier automatiquement des produits à partir de leurs descriptions textuelles et de leurs images
|
||||
2. **Extraction de features** : Mettre en œuvre diverses techniques d'extraction de caractéristiques pour le texte et les images
|
||||
3. **Analyse visuelle** : Réduire les données en 2D et visualiser la séparabilité des catégories
|
||||
4. **Classification supervisée** : Entraîner un modèle de deep learning pour classifier les images avec data augmentation
|
||||
5. **Collecte de données** : Tester l'API OpenFoodFacts pour enrichir la base de produits
|
||||
|
||||
## 📊 Données
|
||||
|
||||
Le projet utilise un dataset d'articles avec :
|
||||
- Des descriptions textuelles en anglais
|
||||
- Des images de produits
|
||||
- Des catégories de produits (7 catégories principales)
|
||||
- Environ 150 produits par catégorie
|
||||
|
||||
**Note** : Les données utilisées ne présentent aucune contrainte de propriété intellectuelle.
|
||||
|
||||
## 📁 Structure du projet
|
||||
|
||||
```
|
||||
├── P6_01_NLP_Basic_methods.ipynb
|
||||
├── P6_02_NLP_Doc2Vec.ipynb
|
||||
├── P6_03_NLP_transfer_learning.ipynb
|
||||
├── P6_04_IMAGES_SIFT_ORB.ipynb
|
||||
├── P6_05_IMAGES_CNN_Transfer_learning.ipynb
|
||||
├── P6_06_Classification_CNN_machine_learning.ipynb
|
||||
├── P6_07_OpenFoodFacts_API.ipynb
|
||||
├── P6_Classifiez_automatiquement_des_produits.pptx
|
||||
└── test_images/
|
||||
```
|
||||
|
||||
### 1. `P6_01_NLP_Basic_methods.ipynb`
|
||||
|
||||
**Notebook de traitement NLP - Méthodes classiques**
|
||||
|
||||
Ce notebook implémente les approches traditionnelles de traitement du texte :
|
||||
- Prétraitement des textes (nettoyage, lemmatisation, suppression stopwords)
|
||||
- Extraction de features avec Bag-of-Words (CountVectorizer)
|
||||
- Extraction de features avec TF-IDF
|
||||
- Réduction de dimension (ACP)
|
||||
- Visualisation T-SNE en 2D
|
||||
- Clustering K-means et calcul de l'Adjusted Rand Index (ARI)
|
||||
- Évaluation de la faisabilité de classification automatique
|
||||
|
||||
### 2. `P6_02_NLP_Doc2Vec.ipynb`
|
||||
|
||||
**Notebook de traitement NLP - Word/Sentence Embedding classique**
|
||||
|
||||
Ce notebook explore les techniques d'embedding de mots :
|
||||
- Implémentation de Word2Vec ou Doc2Vec
|
||||
- Création de vecteurs de phrases/documents
|
||||
- Réduction de dimension et visualisation T-SNE
|
||||
- Comparaison avec les approches bag-of-words
|
||||
- Analyse de la séparabilité des catégories
|
||||
|
||||
### 3. `P6_03_NLP_transfer_learning.ipynb`
|
||||
|
||||
**Notebook de traitement NLP - Transfer Learning**
|
||||
|
||||
Ce notebook met en œuvre des techniques NLP avancées :
|
||||
- BERT (Bidirectional Encoder Representations from Transformers)
|
||||
- USE (Universal Sentence Encoder)
|
||||
- Extraction de features contextuelles
|
||||
- Visualisation et comparaison des performances
|
||||
- Évaluation comparative de toutes les approches NLP
|
||||
|
||||
### 4. `P6_04_IMAGES_SIFT_ORB.ipynb`
|
||||
|
||||
**Notebook de traitement d'images - Descripteurs classiques**
|
||||
|
||||
Ce notebook traite l'extraction de features d'images traditionnelles :
|
||||
- Prétraitement des images (niveaux de gris, égalisation, filtrage)
|
||||
- Extraction de descripteurs avec SIFT
|
||||
- Extraction de descripteurs avec ORB (alternative à SURF)
|
||||
- Création de Bag of Visual Words
|
||||
- Réduction de dimension (ACP)
|
||||
- Visualisation T-SNE et évaluation ARI
|
||||
|
||||
### 5. `P6_05_IMAGES_CNN_Transfer_learning.ipynb`
|
||||
|
||||
**Notebook de traitement d'images - CNN Transfer Learning**
|
||||
|
||||
Ce notebook utilise des réseaux de neurones pré-entraînés :
|
||||
- Utilisation de CNN pré-entraînés (VGG16, ResNet, MobileNet, etc.)
|
||||
- Extraction de features via Transfer Learning
|
||||
- Comparaison avec les approches SIFT/ORB
|
||||
- Visualisation T-SNE des embeddings
|
||||
- Évaluation de la faisabilité avec des features CNN
|
||||
|
||||
### 6. `P6_06_Classification_CNN_machine_learning.ipynb`
|
||||
|
||||
**Notebook de classification supervisée d'images**
|
||||
|
||||
Ce notebook implémente la classification supervisée :
|
||||
- Construction d'un modèle CNN de classification
|
||||
- Séparation train/validation/test
|
||||
- Data augmentation pour améliorer les performances
|
||||
- Entraînement du modèle avec Transfer Learning
|
||||
- Évaluation des performances (accuracy, matrice de confusion)
|
||||
- Comparaison de différentes architectures CNN
|
||||
|
||||
### 7. `P6_07_OpenFoodFacts_API.ipynb`
|
||||
|
||||
**Notebook de test de l'API OpenFoodFacts**
|
||||
|
||||
Ce notebook démontre la collecte de données via API :
|
||||
- Configuration de l'API OpenFoodFacts
|
||||
- Requête pour extraire des produits à base de champagne
|
||||
- Filtrage des données pertinentes
|
||||
- Extraction des champs : foodId, label, category, foodContentsLabel, image
|
||||
- Export des 10 premiers produits en format CSV
|
||||
- Respect des normes RGPD
|
||||
|
||||
### 8. `P6_Classifiez_automatiquement_des_produits.pptx`
|
||||
|
||||
**Présentation des résultats**
|
||||
|
||||
Cette présentation (max 30 slides) synthétise :
|
||||
- Le contexte et les enjeux du projet
|
||||
- La méthodologie adoptée pour le texte et les images
|
||||
- Les résultats comparatifs des différentes approches
|
||||
- L'analyse de faisabilité de la classification automatique
|
||||
- Les résultats de la classification supervisée
|
||||
- Les recommandations pour la mise en production
|
||||
- La démonstration de l'API de collecte de données
|
||||
|
||||
### 9. `test_images/`
|
||||
|
||||
**Dossier d'images de test**
|
||||
|
||||
Contient des images de test pour valider les modèles :
|
||||
- Crème visage anti-âge
|
||||
- Meuble 2 tiroirs
|
||||
- Microphone filaire
|
||||
- PC de bureau Asus
|
||||
- Rideau occultant
|
||||
- Tasse à café
|
||||
|
||||
## 🛠️ Technologies utilisées
|
||||
|
||||
- **Python** : Langage principal
|
||||
- **NLP** :
|
||||
- NLTK : Prétraitement de texte
|
||||
- Scikit-learn : CountVectorizer, TF-IDF
|
||||
- Gensim : Word2Vec, Doc2Vec
|
||||
- Transformers : BERT
|
||||
- TensorFlow Hub : Universal Sentence Encoder
|
||||
- **Computer Vision** :
|
||||
- OpenCV : Traitement d'images, SIFT, ORB
|
||||
- TensorFlow/Keras : CNN, Transfer Learning
|
||||
- PIL : Manipulation d'images
|
||||
- **Machine Learning** :
|
||||
- Scikit-learn : ACP, K-means, métriques
|
||||
- Yellowbrick : Visualisation
|
||||
- **Visualisation** :
|
||||
- Matplotlib, Seaborn : Graphiques
|
||||
- t-SNE : Réduction de dimension
|
||||
- **API** :
|
||||
- Requests : Appels API
|
||||
- Pandas : Manipulation de données
|
||||
|
||||
## 📈 Méthodologie
|
||||
|
||||
### Phase 1 : Analyse de faisabilité - Texte
|
||||
1. Prétraitement des descriptions textuelles
|
||||
2. Extraction de features (Bag-of-Words, TF-IDF, Word2Vec, BERT, USE)
|
||||
3. Réduction de dimension (ACP)
|
||||
4. Visualisation T-SNE en 2D
|
||||
5. Clustering K-means et calcul ARI
|
||||
6. Analyse de la séparabilité des catégories
|
||||
|
||||
### Phase 2 : Analyse de faisabilité - Images
|
||||
1. Prétraitement des images
|
||||
2. Extraction de features (SIFT/ORB et CNN Transfer Learning)
|
||||
3. Création de Bag of Visual Words (pour SIFT/ORB)
|
||||
4. Réduction de dimension (ACP)
|
||||
5. Visualisation T-SNE en 2D
|
||||
6. Évaluation et comparaison des approches
|
||||
|
||||
### Phase 3 : Classification supervisée
|
||||
1. Préparation des datasets (train/val/test)
|
||||
2. Construction de modèles CNN avec Transfer Learning
|
||||
3. Implémentation de data augmentation
|
||||
4. Entraînement et optimisation
|
||||
5. Évaluation des performances
|
||||
|
||||
### Phase 4 : Extension - Collecte de données
|
||||
1. Test de l'API OpenFoodFacts
|
||||
2. Requête et filtrage des produits
|
||||
3. Export des données en CSV
|
||||
4. Validation de la conformité RGPD
|
||||
|
||||
## 📝 Livrables
|
||||
|
||||
- ✅ 7 notebooks d'analyse et de modélisation
|
||||
- ✅ Présentation de la démarche et des résultats (format .pptx)
|
||||
- ✅ Fichier CSV d'extraction de produits via API
|
||||
- ✅ Dossier d'images de test
|
||||
|
||||
## 🎓 Compétences développées
|
||||
|
||||
- Prétraitement de données textuelles (NLP)
|
||||
- Prétraitement de données images (Computer Vision)
|
||||
- Feature engineering pour texte et images
|
||||
- Techniques d'embedding avancées (BERT, USE)
|
||||
- Transfer Learning avec CNN pré-entraînés
|
||||
- Réduction de dimensionnalité (ACP, t-SNE)
|
||||
- Clustering non-supervisé (K-means)
|
||||
- Classification supervisée avec deep learning
|
||||
- Data augmentation pour l'optimisation de modèles
|
||||
- Collecte de données via API
|
||||
- Respect des normes RGPD
|
||||
- Visualisation et communication de résultats
|
||||
|
||||
## 🔍 Principaux résultats attendus
|
||||
|
||||
- **ARI pour texte** : 0.4-0.5 (faisabilité confirmée)
|
||||
- **ARI pour images SIFT/ORB** : 0.05-0.1 (résultats peu concluants)
|
||||
- **ARI pour images CNN** : 0.4-0.6 (faisabilité confirmée)
|
||||
- **Classification supervisée** : Amélioration significative avec data augmentation
|
||||
|
||||
## 👤 Auteur
|
||||
|
||||
**Grégoire Mureau**
|
||||
Date de réalisation : 2025
|
||||
|
||||
---
|
||||
|
||||
*Ce projet a été réalisé dans le cadre du parcours AI Engineer d'OpenClassrooms*
|
||||
310
README.md
310
README.md
|
|
@ -1,41 +1,43 @@
|
|||
**Source de vérité** : https://git.gregoiremureau.com/openclassroom-ai/oc-p06-product-classification
|
||||
**Source of truth** : https://git.gregoiremureau.com/openclassroom-ai/oc-p06-product-classification
|
||||
|
||||
```bash
|
||||
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p06-product-classification.git
|
||||
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p06-product-classification.git
|
||||
```
|
||||
|
||||
Dataset : voir `fetch-data.sh` (hors git si volumineux).
|
||||
Dataset: see `fetch-data.sh` (excluded from git if too large).
|
||||
|
||||
# Projet de Classification Automatique de Produits - Place de marché
|
||||
# Automatic Product Classification Project - Marketplace
|
||||
|
||||
## 📋 Contexte du projet
|
||||
📘 This project is also available in [French 🇫🇷](./README.fr.md)
|
||||
|
||||
Ce projet a été réalisé pour **Place de marché**, une entreprise qui souhaite lancer une marketplace e-commerce anglophone. L'objectif est d'automatiser la classification des articles vendus sur la plateforme pour améliorer l'expérience utilisateur, tant pour les vendeurs que pour les acheteurs.
|
||||
## 📋 Project Context
|
||||
|
||||
Actuellement, l'attribution des catégories est effectuée manuellement par les vendeurs, ce qui est peu fiable et difficile à passer à l'échelle. Ce projet vise à développer un moteur de classification automatique basé sur les descriptions textuelles (en anglais) et les images des produits.
|
||||
This project was carried out for **Place de marché**, a company that wants to launch an English-speaking e-commerce marketplace. The goal is to automate the classification of items sold on the platform in order to improve the user experience, both for sellers and buyers.
|
||||
|
||||
## 🎯 Objectifs
|
||||
Currently, category assignment is done manually by sellers, which is unreliable and difficult to scale. This project aims to develop an automatic classification engine based on textual descriptions (in English) and product images.
|
||||
|
||||
Le projet se divise en plusieurs missions principales :
|
||||
## 🎯 Objectives
|
||||
|
||||
1. **Étude de faisabilité** : Analyser la capacité à classifier automatiquement des produits à partir de leurs descriptions textuelles et de leurs images
|
||||
2. **Extraction de features** : Mettre en œuvre diverses techniques d'extraction de caractéristiques pour le texte et les images
|
||||
3. **Analyse visuelle** : Réduire les données en 2D et visualiser la séparabilité des catégories
|
||||
4. **Classification supervisée** : Entraîner un modèle de deep learning pour classifier les images avec data augmentation
|
||||
5. **Collecte de données** : Tester l'API OpenFoodFacts pour enrichir la base de produits
|
||||
The project is divided into several main missions:
|
||||
|
||||
## 📊 Données
|
||||
1. **Feasibility study**: Analyze the ability to automatically classify products from their textual descriptions and images
|
||||
2. **Feature extraction**: Implement various feature extraction techniques for text and images
|
||||
3. **Visual analysis**: Reduce the data to 2D and visualize the separability of categories
|
||||
4. **Supervised classification**: Train a deep learning model to classify images with data augmentation
|
||||
5. **Data collection**: Test the OpenFoodFacts API to enrich the product database
|
||||
|
||||
Le projet utilise un dataset d'articles avec :
|
||||
- Des descriptions textuelles en anglais
|
||||
- Des images de produits
|
||||
- Des catégories de produits (7 catégories principales)
|
||||
- Environ 150 produits par catégorie
|
||||
## 📊 Data
|
||||
|
||||
**Note** : Les données utilisées ne présentent aucune contrainte de propriété intellectuelle.
|
||||
The project uses a dataset of items with:
|
||||
- Textual descriptions in English
|
||||
- Product images
|
||||
- Product categories (7 main categories)
|
||||
- About 150 products per category
|
||||
|
||||
## 📁 Structure du projet
|
||||
**Note**: The data used does not present any intellectual property constraints.
|
||||
|
||||
## 📁 Project Structure
|
||||
|
||||
```
|
||||
├── P6_01_NLP_Basic_methods.ipynb
|
||||
|
|
@ -51,199 +53,199 @@ Le projet utilise un dataset d'articles avec :
|
|||
|
||||
### 1. `P6_01_NLP_Basic_methods.ipynb`
|
||||
|
||||
**Notebook de traitement NLP - Méthodes classiques**
|
||||
**NLP processing notebook - Classical methods**
|
||||
|
||||
Ce notebook implémente les approches traditionnelles de traitement du texte :
|
||||
- Prétraitement des textes (nettoyage, lemmatisation, suppression stopwords)
|
||||
- Extraction de features avec Bag-of-Words (CountVectorizer)
|
||||
- Extraction de features avec TF-IDF
|
||||
- Réduction de dimension (ACP)
|
||||
- Visualisation T-SNE en 2D
|
||||
- Clustering K-means et calcul de l'Adjusted Rand Index (ARI)
|
||||
- Évaluation de la faisabilité de classification automatique
|
||||
This notebook implements traditional text processing approaches:
|
||||
- Text preprocessing (cleaning, lemmatization, stopword removal)
|
||||
- Feature extraction with Bag-of-Words (CountVectorizer)
|
||||
- Feature extraction with TF-IDF
|
||||
- Dimensionality reduction (PCA)
|
||||
- 2D T-SNE visualization
|
||||
- K-means clustering and Adjusted Rand Index (ARI) computation
|
||||
- Evaluation of automatic classification feasibility
|
||||
|
||||
### 2. `P6_02_NLP_Doc2Vec.ipynb`
|
||||
|
||||
**Notebook de traitement NLP - Word/Sentence Embedding classique**
|
||||
**NLP processing notebook - Classical word/sentence embedding**
|
||||
|
||||
Ce notebook explore les techniques d'embedding de mots :
|
||||
- Implémentation de Word2Vec ou Doc2Vec
|
||||
- Création de vecteurs de phrases/documents
|
||||
- Réduction de dimension et visualisation T-SNE
|
||||
- Comparaison avec les approches bag-of-words
|
||||
- Analyse de la séparabilité des catégories
|
||||
This notebook explores word embedding techniques:
|
||||
- Implementation of Word2Vec or Doc2Vec
|
||||
- Creation of sentence/document vectors
|
||||
- Dimensionality reduction and T-SNE visualization
|
||||
- Comparison with bag-of-words approaches
|
||||
- Analysis of category separability
|
||||
|
||||
### 3. `P6_03_NLP_transfer_learning.ipynb`
|
||||
|
||||
**Notebook de traitement NLP - Transfer Learning**
|
||||
**NLP processing notebook - Transfer Learning**
|
||||
|
||||
Ce notebook met en œuvre des techniques NLP avancées :
|
||||
This notebook implements advanced NLP techniques:
|
||||
- BERT (Bidirectional Encoder Representations from Transformers)
|
||||
- USE (Universal Sentence Encoder)
|
||||
- Extraction de features contextuelles
|
||||
- Visualisation et comparaison des performances
|
||||
- Évaluation comparative de toutes les approches NLP
|
||||
- Contextual feature extraction
|
||||
- Visualization and performance comparison
|
||||
- Comparative evaluation of all NLP approaches
|
||||
|
||||
### 4. `P6_04_IMAGES_SIFT_ORB.ipynb`
|
||||
|
||||
**Notebook de traitement d'images - Descripteurs classiques**
|
||||
**Image processing notebook - Classical descriptors**
|
||||
|
||||
Ce notebook traite l'extraction de features d'images traditionnelles :
|
||||
- Prétraitement des images (niveaux de gris, égalisation, filtrage)
|
||||
- Extraction de descripteurs avec SIFT
|
||||
- Extraction de descripteurs avec ORB (alternative à SURF)
|
||||
- Création de Bag of Visual Words
|
||||
- Réduction de dimension (ACP)
|
||||
- Visualisation T-SNE et évaluation ARI
|
||||
This notebook covers traditional image feature extraction:
|
||||
- Image preprocessing (grayscale, equalization, filtering)
|
||||
- Feature extraction with SIFT
|
||||
- Feature extraction with ORB (alternative to SURF)
|
||||
- Creation of Bag of Visual Words
|
||||
- Dimensionality reduction (PCA)
|
||||
- T-SNE visualization and ARI evaluation
|
||||
|
||||
### 5. `P6_05_IMAGES_CNN_Transfer_learning.ipynb`
|
||||
|
||||
**Notebook de traitement d'images - CNN Transfer Learning**
|
||||
**Image processing notebook - CNN Transfer Learning**
|
||||
|
||||
Ce notebook utilise des réseaux de neurones pré-entraînés :
|
||||
- Utilisation de CNN pré-entraînés (VGG16, ResNet, MobileNet, etc.)
|
||||
- Extraction de features via Transfer Learning
|
||||
- Comparaison avec les approches SIFT/ORB
|
||||
- Visualisation T-SNE des embeddings
|
||||
- Évaluation de la faisabilité avec des features CNN
|
||||
This notebook uses pre-trained neural networks:
|
||||
- Use of pre-trained CNNs (VGG16, ResNet, MobileNet, etc.)
|
||||
- Feature extraction via Transfer Learning
|
||||
- Comparison with SIFT/ORB approaches
|
||||
- T-SNE visualization of embeddings
|
||||
- Feasibility evaluation with CNN features
|
||||
|
||||
### 6. `P6_06_Classification_CNN_machine_learning.ipynb`
|
||||
|
||||
**Notebook de classification supervisée d'images**
|
||||
**Supervised image classification notebook**
|
||||
|
||||
Ce notebook implémente la classification supervisée :
|
||||
- Construction d'un modèle CNN de classification
|
||||
- Séparation train/validation/test
|
||||
- Data augmentation pour améliorer les performances
|
||||
- Entraînement du modèle avec Transfer Learning
|
||||
- Évaluation des performances (accuracy, matrice de confusion)
|
||||
- Comparaison de différentes architectures CNN
|
||||
This notebook implements supervised classification:
|
||||
- Building a CNN classification model
|
||||
- Train/validation/test split
|
||||
- Data augmentation to improve performance
|
||||
- Model training with Transfer Learning
|
||||
- Performance evaluation (accuracy, confusion matrix)
|
||||
- Comparison of different CNN architectures
|
||||
|
||||
### 7. `P6_07_OpenFoodFacts_API.ipynb`
|
||||
|
||||
**Notebook de test de l'API OpenFoodFacts**
|
||||
**OpenFoodFacts API test notebook**
|
||||
|
||||
Ce notebook démontre la collecte de données via API :
|
||||
- Configuration de l'API OpenFoodFacts
|
||||
- Requête pour extraire des produits à base de champagne
|
||||
- Filtrage des données pertinentes
|
||||
- Extraction des champs : foodId, label, category, foodContentsLabel, image
|
||||
- Export des 10 premiers produits en format CSV
|
||||
- Respect des normes RGPD
|
||||
This notebook demonstrates data collection via API:
|
||||
- OpenFoodFacts API configuration
|
||||
- Query to extract champagne-based products
|
||||
- Filtering of relevant data
|
||||
- Extraction of fields: foodId, label, category, foodContentsLabel, image
|
||||
- Export of the first 10 products in CSV format
|
||||
- GDPR compliance
|
||||
|
||||
### 8. `P6_Classifiez_automatiquement_des_produits.pptx`
|
||||
|
||||
**Présentation des résultats**
|
||||
**Results presentation**
|
||||
|
||||
Cette présentation (max 30 slides) synthétise :
|
||||
- Le contexte et les enjeux du projet
|
||||
- La méthodologie adoptée pour le texte et les images
|
||||
- Les résultats comparatifs des différentes approches
|
||||
- L'analyse de faisabilité de la classification automatique
|
||||
- Les résultats de la classification supervisée
|
||||
- Les recommandations pour la mise en production
|
||||
- La démonstration de l'API de collecte de données
|
||||
This presentation (max 30 slides) summarizes:
|
||||
- The context and challenges of the project
|
||||
- The methodology adopted for text and images
|
||||
- The comparative results of the different approaches
|
||||
- The feasibility analysis of automatic classification
|
||||
- The results of supervised classification
|
||||
- Recommendations for production deployment
|
||||
- A demonstration of the data collection API
|
||||
|
||||
### 9. `test_images/`
|
||||
|
||||
**Dossier d'images de test**
|
||||
**Test images folder**
|
||||
|
||||
Contient des images de test pour valider les modèles :
|
||||
- Crème visage anti-âge
|
||||
- Meuble 2 tiroirs
|
||||
- Microphone filaire
|
||||
- PC de bureau Asus
|
||||
- Rideau occultant
|
||||
- Tasse à café
|
||||
Contains test images to validate the models:
|
||||
- Anti-aging face cream
|
||||
- 2-drawer cabinet
|
||||
- Wired microphone
|
||||
- Asus desktop PC
|
||||
- Blackout curtain
|
||||
- Coffee cup
|
||||
|
||||
## 🛠️ Technologies utilisées
|
||||
## 🛠️ Technologies Used
|
||||
|
||||
- **Python** : Langage principal
|
||||
- **Python**: Main language
|
||||
- **NLP**:
|
||||
- NLTK : Prétraitement de texte
|
||||
- NLTK: Text preprocessing
|
||||
- Scikit-learn: CountVectorizer, TF-IDF
|
||||
- Gensim: Word2Vec, Doc2Vec
|
||||
- Transformers: BERT
|
||||
- TensorFlow Hub: Universal Sentence Encoder
|
||||
- **Computer Vision**:
|
||||
- OpenCV : Traitement d'images, SIFT, ORB
|
||||
- OpenCV: Image processing, SIFT, ORB
|
||||
- TensorFlow/Keras: CNN, Transfer Learning
|
||||
- PIL : Manipulation d'images
|
||||
- PIL: Image manipulation
|
||||
- **Machine Learning**:
|
||||
- Scikit-learn : ACP, K-means, métriques
|
||||
- Yellowbrick : Visualisation
|
||||
- **Visualisation** :
|
||||
- Matplotlib, Seaborn : Graphiques
|
||||
- t-SNE : Réduction de dimension
|
||||
- Scikit-learn: PCA, K-means, metrics
|
||||
- Yellowbrick: Visualization
|
||||
- **Visualization**:
|
||||
- Matplotlib, Seaborn: Charts
|
||||
- t-SNE: Dimensionality reduction
|
||||
- **API**:
|
||||
- Requests : Appels API
|
||||
- Pandas : Manipulation de données
|
||||
- Requests: API calls
|
||||
- Pandas: Data manipulation
|
||||
|
||||
## 📈 Méthodologie
|
||||
## 📈 Methodology
|
||||
|
||||
### Phase 1 : Analyse de faisabilité - Texte
|
||||
1. Prétraitement des descriptions textuelles
|
||||
2. Extraction de features (Bag-of-Words, TF-IDF, Word2Vec, BERT, USE)
|
||||
3. Réduction de dimension (ACP)
|
||||
4. Visualisation T-SNE en 2D
|
||||
5. Clustering K-means et calcul ARI
|
||||
6. Analyse de la séparabilité des catégories
|
||||
### Phase 1: Feasibility analysis - Text
|
||||
1. Preprocessing of textual descriptions
|
||||
2. Feature extraction (Bag-of-Words, TF-IDF, Word2Vec, BERT, USE)
|
||||
3. Dimensionality reduction (PCA)
|
||||
4. 2D T-SNE visualization
|
||||
5. K-means clustering and ARI computation
|
||||
6. Analysis of category separability
|
||||
|
||||
### Phase 2 : Analyse de faisabilité - Images
|
||||
1. Prétraitement des images
|
||||
2. Extraction de features (SIFT/ORB et CNN Transfer Learning)
|
||||
3. Création de Bag of Visual Words (pour SIFT/ORB)
|
||||
4. Réduction de dimension (ACP)
|
||||
5. Visualisation T-SNE en 2D
|
||||
6. Évaluation et comparaison des approches
|
||||
### Phase 2: Feasibility analysis - Images
|
||||
1. Image preprocessing
|
||||
2. Feature extraction (SIFT/ORB and CNN Transfer Learning)
|
||||
3. Creation of Bag of Visual Words (for SIFT/ORB)
|
||||
4. Dimensionality reduction (PCA)
|
||||
5. 2D T-SNE visualization
|
||||
6. Evaluation and comparison of approaches
|
||||
|
||||
### Phase 3 : Classification supervisée
|
||||
1. Préparation des datasets (train/val/test)
|
||||
2. Construction de modèles CNN avec Transfer Learning
|
||||
3. Implémentation de data augmentation
|
||||
4. Entraînement et optimisation
|
||||
5. Évaluation des performances
|
||||
### Phase 3: Supervised classification
|
||||
1. Dataset preparation (train/val/test)
|
||||
2. Building CNN models with Transfer Learning
|
||||
3. Implementing data augmentation
|
||||
4. Training and optimization
|
||||
5. Performance evaluation
|
||||
|
||||
### Phase 4 : Extension - Collecte de données
|
||||
1. Test de l'API OpenFoodFacts
|
||||
2. Requête et filtrage des produits
|
||||
3. Export des données en CSV
|
||||
4. Validation de la conformité RGPD
|
||||
### Phase 4: Extension - Data collection
|
||||
1. Testing the OpenFoodFacts API
|
||||
2. Query and filtering of products
|
||||
3. Data export in CSV
|
||||
4. GDPR compliance validation
|
||||
|
||||
## 📝 Livrables
|
||||
## 📝 Deliverables
|
||||
|
||||
- ✅ 7 notebooks d'analyse et de modélisation
|
||||
- ✅ Présentation de la démarche et des résultats (format .pptx)
|
||||
- ✅ Fichier CSV d'extraction de produits via API
|
||||
- ✅ Dossier d'images de test
|
||||
- ✅ 7 analysis and modeling notebooks
|
||||
- ✅ Presentation of the approach and results (.pptx format)
|
||||
- ✅ CSV file of product extraction via API
|
||||
- ✅ Test images folder
|
||||
|
||||
## 🎓 Compétences développées
|
||||
## 🎓 Skills Developed
|
||||
|
||||
- Prétraitement de données textuelles (NLP)
|
||||
- Prétraitement de données images (Computer Vision)
|
||||
- Feature engineering pour texte et images
|
||||
- Techniques d'embedding avancées (BERT, USE)
|
||||
- Transfer Learning avec CNN pré-entraînés
|
||||
- Réduction de dimensionnalité (ACP, t-SNE)
|
||||
- Clustering non-supervisé (K-means)
|
||||
- Classification supervisée avec deep learning
|
||||
- Data augmentation pour l'optimisation de modèles
|
||||
- Collecte de données via API
|
||||
- Respect des normes RGPD
|
||||
- Visualisation et communication de résultats
|
||||
- Textual data preprocessing (NLP)
|
||||
- Image data preprocessing (Computer Vision)
|
||||
- Feature engineering for text and images
|
||||
- Advanced embedding techniques (BERT, USE)
|
||||
- Transfer Learning with pre-trained CNNs
|
||||
- Dimensionality reduction (PCA, t-SNE)
|
||||
- Unsupervised clustering (K-means)
|
||||
- Supervised classification with deep learning
|
||||
- Data augmentation for model optimization
|
||||
- Data collection via API
|
||||
- GDPR compliance
|
||||
- Visualization and communication of results
|
||||
|
||||
## 🔍 Principaux résultats attendus
|
||||
## 🔍 Main Expected Results
|
||||
|
||||
- **ARI pour texte** : 0.4-0.5 (faisabilité confirmée)
|
||||
- **ARI pour images SIFT/ORB** : 0.05-0.1 (résultats peu concluants)
|
||||
- **ARI pour images CNN** : 0.4-0.6 (faisabilité confirmée)
|
||||
- **Classification supervisée** : Amélioration significative avec data augmentation
|
||||
- **ARI for text**: 0.4-0.5 (feasibility confirmed)
|
||||
- **ARI for SIFT/ORB images**: 0.05-0.1 (inconclusive results)
|
||||
- **ARI for CNN images**: 0.4-0.6 (feasibility confirmed)
|
||||
- **Supervised classification**: Significant improvement with data augmentation
|
||||
|
||||
## 👤 Auteur
|
||||
## 👤 Author
|
||||
|
||||
**Grégoire Mureau**
|
||||
Date de réalisation : 2025
|
||||
Completion date: 2025
|
||||
|
||||
---
|
||||
|
||||
*Ce projet a été réalisé dans le cadre du parcours AI Engineer d'OpenClassrooms*
|
||||
*This project was carried out as part of the OpenClassrooms AI Engineer program*
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue