top of page

Classification des biens de consommation

Classification automatique de biens de consommation pour un site de vente.

Contexte


Sur un site type place de marché, des vendeurs proposent des articles à des acheteurs en postant des images de l’article et en fournissant une description détaillée.


Afin de rendre l’expérience utilisateur (vendeurs et acheteurs) la plus fluide possible, et dans l’optique d’un passage à l’échelle, une automatisation de l’attribution de la catégorie d’un article est nécessaire.

Ce projet étudie la faisabilité d’un moteur de classification des articles en différentes catégories prédéfinies, avec un niveau de précision suffisant, basé sur une image et une description.


La méthodologie sera la suivante :

  • Une étape de pre-processing sur le texte et l’image

  • Une étape d’extraction des variables sur le texte et l’image

  • Une réduction des variables

  • Une étape de clustering d’après les variables extraites

  • Enfin, une comparaison aux catégories réelles des produits pour évaluation du modèle de classification


Données


Un feuille de données contient toutes les informations produits, avec entre autre les description nécessaire pour le NLP, ainsi qu’une dossier d’image des produits.


Analyse exploratoire


Analyse Univariée


Description


Les descriptions possèdent entre 13 et 587 mots, avec une majorité entre 13 et 100.


Nom du produit


Les noms des produits ont entre 2 et 27 mots, avec une majorité entre 4 et 10 mots.

Ces deux variables seront utilisées pour la partie NLP du modèle de classification.


Catégories

7 catégories sont identifiées pour les produits.





La répartition est parfaite.


On peut également regarder les wordcloud par catégorie de produit :


Cuisine


Ordinateurs


Préparation des données


Une étape de pre-processing est nécessaire pour le texte et les images.


Texte


Les variables “Description” et “Nom du produit” sont regroupées.


Les traitements suivants sont ensuite appliqués :

  • lower : retire les majuscules

  • expand_contraction : le texte étant en anglais, il est nécessaire de développer les contractions

  • noise_removal : retire les urls, les HTML tags, les caractères non-ASCII…

  • punctuation removal : retire la ponctuation

  • number removal : retire les nombres


On poursuit avec :

  • Tokenisation : sépare les phrase en liste de tokens

  • Stopwords : retire les mots très fréquents et sans impact

  • Lemmatization : ne garde que la racine d’un mot en tenant compte du contexte.


Image


Afin de rendre l’extraction de variables plus efficace, il est nécessaire de traiter les images en amont.


Pour les techniques Bag-of-Features telle que Sift ou ORB, on applique dans l’ordre :

  • grey scale : convertit l’image en niveaux de gris

  • histogram equalization : amélioration du contraste

  • histogram stretching : correction de l’exposition

  • mean filter : atténuation du bruit par moyennage local


Cependant, les techniques CNN telle que VGG16 ont leur propre pre-processing implémenté dans leur bibliothèque.



Modèle


La partie texte et la partie image sont développées et évaluées séparément. Elles sont ensuite évaluées ensemble, afin de déterminer l’intérêt de coupler les deux modèles.


Extraction des variables


Texte

Deux types de méthodes sont disponibles :


  • Les algorithmes de type bag-of-word : donne une représentation réduite et simplifiée d’un document texte sous forme de vecteurs basée sur des critères spécifiques tels que la fréquence des mots. Exemple : CountVectorizer, TF-IDF. Avantages : rapide, fonctionne avec des mots inconnus.

    Inconvénients : ne considère pas la place du mot dans la phrase, et ne capture pas le sens du mot.


  • les méthodes dites Sentence Embedding : donnes des représentations vectorielles numériques de la sémantique ou du sens des mots, y compris le sens littéral et implicite. Ainsi, ces vecteurs de mots peuvent capturer leur connotation, et sont combinés en un vecteur dense par phrase. Exemple : Word2Vec, BERT, USE Avantage : souvent pré-entraîné, prend en compte la position du mot, comprend la sémantique.

    Inconvénients : ne considère pas les mots hors corpus, plus complexe, “black box”.


Image

Pour l’extraction de variables à partir d’images, plusieurs types de méthodes sont possibles.

  • les algorithmes dits Bag-of-visual-words : prend une image et retourne les points clés de cette image sous forme de variables/vecteurs, l’empreinte numérique de l’image, invariante qu’importe les transformations. Exemple : SIFT, ORB

  • les algorithmes dits CNN Transfer Learning : réseau de neurones convolutifs pré-entrainé prenant une image en entrée et retournant automatiquement les features de cette image, par extraction et hiérarchisation automatiques desdits features. Exemple : VGG16, en Standalone Feature Extractor


Réduction des variables & Clustering


La méthode de réduction utilisée est t-SNE.

La méthode de clustering utilisées est k-Means.

On trace ensuite une projection des produits avec catégorisation réelle et calculée.



Evaluation


Afin d’évaluer la précision de la méthode utilisée et l’efficacité de l’algorithme d’extraction de variables testé, on calcule l’ARI (Adjusted Rand Index), qui donne une mesure de similarité entre les catégories calculées et les réelles. On considère également le temps de calcul, autre élément important.


Texte

Algorithme

ARI

Temps de calcul

Countvectorizer

0.49

19 s

TF-IDF

0.50

18 s

Word2Vec

0.41

15 s

BERT

0.32

2 min 30 s

USE

0.63

10 s

USE semble être la méthode adaptée à notre problème pour la partie NLP.


Image

Algorithme

ARI

Temps de calcul

SIFT

0.04

10 min 45 s

ORB

0.03

1 min 50 s

VGG16

0.45

4 min

VGG16 est l’algorithme le plus efficace pour la partie DIP.


Text & Image

Algorithme

ARI

Temps de calcul

USE + VGG16

0.65

4 min 20 s

Conclusion


L’association de modèle de classification pour image et texte permet d’atteindre un ARI de 0.65. La faisabilité du moteur de classifciation est donc prouvée.


D’un point de vue performance + temps de calcul, l’utilisation du texte uniquement peut être envisagée.

  • bluesky_site
  • LinkedIn-Symbole_2
  • Astrolabe Cae_2

Legal Notice

Cookie Management

© 2023 by Pascaline Grondein Data Consultant. Created with Wix.com

bottom of page