Partage
  • Partager sur Facebook
  • Partager sur Twitter

IA - information extraction

Récupérer un pattern de données dans une page web

    24 décembre 2018 à 6:32:51

    Hello,

    Certains me diront que je ne suis pas au bon endroit pour poser ce genre de questions mais je tente ma chance ici malgré tout.

    Je souhaiterais extraire de l'information d'une page web. Cette information suit une certaine logique puisque le 'type' de données recherché est toujours le même.

    Pour être plus concret, je voudrais par exemple pouvoir remplir une db (ou équivalent) des différentes caractéristiques et prix des pellets (granulés de bois) en fonction du vendeur/marque. Le but étant biensur d'automatiser cette tâche. Pour en obtenir un maximum, je récupérerai les différents liens que Google me retourne pour une recherche telle que 'prix pellets'. Et pour chacun de ceux-ci, extraire les infos (nombre de sacs, prix au kilo, prix par sac, taille du granulé, taux de cendres, ...)

    Certains me diront qu'avec des regex c'est possible. Probablement mais pas de manière générique. J'aimerais pour récupérer ces infos sur n'importe quel site avec le meme code.

    J'ai quelques bases en IA (suivi le cours sur coursera) mais je ne vois pas par où commencer pour arriver au résultat recherché. 

    Quelqu'un aurait-il une piste de solution à me proposer pour m'eclaircir, me guider vers la marche à suivre ou m'indiquer des documents ou exemple qui me permettrait d'avancer ?

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      29 décembre 2018 à 0:08:57

      Personne pour m'aiguiller ?
      • Partager sur Facebook
      • Partager sur Twitter
        31 décembre 2018 à 11:09:59

        Bonjour,

        Je vois plusieurs façons d'arriver à tes fins. 

        Empiriquement, je pense que la meilleure (rapide / efficace) est de passer par de l'algorithmie plutôt que du machine learning. 

        L'algorithme n'est pas compliqué en soit, t'as juste à faire plusieurs listes de mots clefs servants à récupérer les informations dont t'as besoin. Exemple : "prix; TTC; Montant;" etc.. Définir la forme de ta donnée (pour un minimum de contrôle), par exemple un montant est de forme [0-9]+(,|;|,){1}[0-9]{2}

        Tu fais donc 1 algorithme de recherche par type d'information, par exemple "recherchePrix(requete)" "rechercheMarque(requete)" 

        Ensuite, pour chaque requêtes retournées, tu lance tes détections et rempli ton objet "pellets" que tu stockera dans ta db.

         ------------

        Sinon,

        tu peux passer par du machine learning. Le but est de lui apprendre ce qu'est un "pellet", et c'est là toute la difficulté de la tache. Bien que ce ne soit pas complexe dans l'implémentation, il te faudrait récupérer beaucoup d'exemples que "TU" aura au préalable triés et indiquer si c'est ou non un "pellet" ou "une telle information". 

        Plusieurs formes de modèles sont possibles, je ne suis pas certain de la meilleure. Je te donne donc juste les deux qui me paraisse les plus logiques.

        X = entrée, Y = sortie

        1) Multiple modèle (comme je l'aurai fait)

        Tu fais 1 modèle par information: 

        X = texte; Y = TTC

        X = texte; Y = Marque

        X = texte; Y = taille granulé

        etc.. Ainsi, tu as juste à passer ta requêtes dans tes modèles et chacun te retournera l'information souhaitée.

        De plus, chaque modèle est spécialisé dans une tache, ce qui te permet de lui donner moins d'exemple pour apprendre, et il aura une meilleure précision (théoriquement).

        2) Mono modèle

        Pour ça, ce serait plus du deep learning, vu la complexité de la tache (reconnaître plusieurs informations sémantiquement différentes à partir d'un seul texte).

        Ce qui donne :

        X = texte; Y = TTC; Marque; prix/kilo; etc...

        j'ai bien peur qu'il faille trop d'exemple, de puissance de calcul, et une maîtrise approfondie du deep learning pour réaliser ce modèle.

        ----------

        En espérant que ça t'ai aidé, ou du moins, donné quelques idées.

        -
        Edité par WorstDevEver 31 décembre 2018 à 11:15:33

        • Partager sur Facebook
        • Partager sur Twitter

        Try->Fail->Learn->Converge to success :{\displaystyle Q[s,a]:=(1-\alpha )Q[s,a]+\alpha (r+\gamma ~max_{a'}Q[s',a'])}

          4 janvier 2019 à 21:06:50

          Merci pour ta réponse constructive, ça m'est effectivement déjà bien utile. 

          J'ai du coup effectivement peur du nombre d'exemples à devoir lui donner pour que ça fonctionne correctement...

          • Partager sur Facebook
          • Partager sur Twitter

          IA - information extraction

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown