IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Intelligence artificielle Discussion :

Retrouver la catégorie d'un produit de grande consommation à partir de son libellé


Sujet :

Intelligence artificielle

  1. #1
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 746
    Points : 342
    Points
    342
    Par défaut Retrouver la catégorie d'un produit de grande consommation à partir de son libellé
    Bonjour,
    Je voudrais développer un programme qui prend en entrée un nom d'un produit de grande consommation et renvoi sa catégorie.
    Exemples :
    - Nom du produit : ariel liquide 25 doses ---> catégorie : lessive
    - DOLCE GUSTO Lungo 16 Capsules 112g ---> café
    - PANZANI Capellini 500gr ---> pâte

    Sachant que je peux créer une base de données avec quelques produits et leur catégorie respective, ça pourra être utilisée comme base pour un algo d'apprentissage auto !

    Quelqu'un a eu idée sur un algo pareil ? Merci d'avance
    '...parfois l'informatique peut vous rendre fou...'

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 15
    Points : 26
    Points
    26
    Par défaut TF-IDF
    Bonjour,

    Si tu as assez de données, tu peux appliquer une méthode classique de machine learning:
    1. Chaque couple (nom produit, catégorie) est un sample.
    2. Création de features depuis ton texte (entrées du modèle)
    3. Création de ta liste de classes (sorties du modèle)
    4. Apprentissage d'un modèle de prédiction multi-classes


    Pour les features, on utilise fréquemment TF-IDF pour le texte.
    En prenant par exemple les libellés de produits dans ton message
    • on applique un tokinizer, pour séparer le libellé en mots. "ariel liquide 25 doses" -> ["ariel", "liquide", "25", "doses"]
    • optionnellement, tu peux ensuite utiliser un stemmer, pour garder seulement la racine des mots, et regrouper les mots similaires par la suite. Par exemple, "doses" et "dose" donnent la même racine "dose".
    • parcourir tous les libellés de produits, et créer un set (un dictionnaire, sans duplication) avec tous les mots et attribuer un id à chaque mot. [0:"ariel", 1:"liquide", 2:"25", 3:"DOLCE", 4:"GUSTO", ...]. Ton dictionnaire peut être très grand, de taille M (M = 100000 par exemple).
    • optionnellement, filtrer certains types de mots, car non significatifs (prépositions, nombres, ...)
    • Calculer le TF (term frequency) pour chaque libellé, c'est à dire compter combien de fois chaque mot du dictionnaire apparaît dans le nom du produit. Pour le produit "ariel liquide 25 doses", tu obtiens un vecteur de taille M [1, 1, 1, 0, 0, ...] (avec sans doute beaucoup de 0)
    • Calculer l'IDF (inverse document frequency) pour chaque mot, c'est à dire combien de fois un mot apparaît dans tes noms de produits, et inverser cette distribution. Par exemple, si le mot "arie"l apparaît dans 4 noms sur 1000, son IDF est log(1000/4) = 2.39. Pour un terme très fréquent, par exemple "et" qui apparaît 340 fois sur 1000, l'IDF sera log(1000/340) = 0.46. On attribue donc moins de poids aux termes qui apparaissent souvent dans tous les documents, car ils sont moins discriminant.
    • Calculer le TF-IDF pour chaque produit : TF * IDF. Tu obtiens un vecteur de taille M pour chaque produit. "ariel liquide 25 doses" -> [1 (TF ariel dans ce produit) * 2.39 (IDF ariel), 1 (TF liquide) * 1.2 (IDF liquide), ...., 0, 0, ..]
    • Finalement, tu as une matrice X = (N, M), où N est ton nombre de produits et M la taille de ton dictionnaire.


    Pour les sorties du système, tu peux simplement crée un set des catégories possibles et leur attribuer un id. 0: lessive, 1:café, ... Pour l'ensemble de tes produits, cela te donne un vecteur Y de taille N. Y = [0, 1, ...]

    Tu peux appliquer un modèle d'apprentissage sur X et Y: SVM, régression logistique, Random Forest, ...

    Si tu connais un peu Python, tu peux suivre ce tuto très bien fait, qui utilise la library scikit-learn.

Discussions similaires

  1. [MySQL-5.5] Catégories de plusieurs produits
    Par soukatsoui dans le forum Requêtes
    Réponses: 9
    Dernier message: 04/02/2014, 13h08
  2. [Magento] Appliquer promotions sur une catégorie avec 15000 produits!
    Par julien08330 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 07/02/2013, 18h59
  3. [PrestaShop] Aide sur affichage de l'ensemble des catégories d'un produit
    Par enmodepresta dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 15/06/2012, 19h35
  4. Réponses: 4
    Dernier message: 07/01/2007, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo