Partage
  • Partager sur Facebook
  • Partager sur Twitter

Nettoyer une base de données

Nettoyer une base de données avec des algorithmes de distances

    12 janvier 2020 à 19:38:22

    Bonsoir tout le monde,

    Alors voilà,  je dois nettoyer une base de données gigantesque, bien sûr il ne suffit pas d'enlever uniquement les doublons.

    Je me dois de retirer tout les doublons,  mais aussi retirer des éléments qui serait susceptible d'être pareil

    Par exemple  si j'ai  Nom  : Smith   Prénom : Will    et un peu plus tard,   j'ai  Nom : Smithh   Prénon: Will    

    Alors mon algorithme doit comprendre qu'il s'agit de la même personne   , je dois donc réaliser des algorithmes de distances sur python ou sur R.    

    Et bien entendu, je devrais supprimer la bonne ligne , ici il s'agit de Smithh Will et donc je garde :   Will Smith.

    C'est la première fois que je vois ça et je suis assez perdu sur la maniere de faire et je ne trouve aucun site pour m'aider.

    En espérant que vous pourriez m'aider

    Merci !

    • Partager sur Facebook
    • Partager sur Twitter
      13 janvier 2020 à 9:17:19

      Bonjour,

      Je ne vois pas comment faire cela de manière automatique, en tout cas de façon accessible ...

      Pour identifier les doublons il faut qu'il y ait une règle claire et répétable, et dans ton exemple, la machine ne peut deviner si c'est Smith ou Smithh qu'il faut supprimer ...

      Avec une distance de Levenstein tu peux identifier les enregistrements proches (ou très très proches), mais je pense que cela ne t'empêchera pas de traiter un par ces enregistrements proches pour décider qui doit être supprimé.

      -
      Edité par Benzouye 13 janvier 2020 à 9:17:37

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        13 janvier 2020 à 15:10:37

        Oui merci,  c'est bien ce que je pensais alors,  j'ai aussi vu des algorithmes de jaccard ...

        Je me demande juste une chose,   si j'ai 2 éléments qui sont par exemple : " la planete des singes 1 "  et la " planete des singes 2"    en soit ici il n'y a pas d'erreur.   Mais mon algorithme va remarque une distance très similaire et risque de me le considerer comme un doublon .

        J'ai déjà essayé de faire un algorithme sur 50 données différentes ou j'insère des fautes de frappes exprès .  Mais je me demande comment je peux automatiser cela sur des millions de données

        Merci de m'avoir réponde

        • Partager sur Facebook
        • Partager sur Twitter
          13 janvier 2020 à 15:34:33

          Autre problème

          En cas de découverte d'un "doublon par similarité"
          Tu devras supprimer lequel des deux et pourquoi ?

          Exemple :
          "Star wars" ou "Tsar wars" ?
          Même dans ce cas , comment vérifier qu'il n'y a pas de problème ?

          Ensuite, si on peut supposer que les éléments à supprimer ou potentiellement à supprimer sont rare.

          Tu peux très bien faire un script qui fais la liste des cas problématiques (et autres infos utiles pour toujours savoir quoi faire de ce cas) sans essayer pour le moment de les supprimer.
          Supprimer de la liste tous les faux doublons (peut être à la main).
          Mettre à jour la base de donnée en fonction de ce qui restera dans la liste.

          Après , sans en savoir plus , je ne peux pas en dire plus.

          • Partager sur Facebook
          • Partager sur Twitter
            13 janvier 2020 à 15:58:38

            Oui exactement, c'est ce dont j'avais un peu parlé au tout début du poste.

            J'ai pensé pour cela à faire un clustering  qui permettrait de regrouper tout les éléments similaires.

            Je ne sais pas comment cela marche sur python et comment le faire fonctionner avec des mots et non pas des chiffres.

            Je regarde des tutos pour apprendre à maîtriser le clustering, je comprends le principe et comment faire, mais je me demande juste comment le faire sur des mots plutôt que des chiffres

            Merci

            • Partager sur Facebook
            • Partager sur Twitter

            Nettoyer une base de données

            × 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