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

Algorithmes et structures de données Discussion :

Algo de comparaison approximative de chaînes


Sujet :

Algorithmes et structures de données

  1. #1
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut Algo de comparaison approximative de chaînes
    Salut

    Je suis en ce moment à la recherche d'un algo de comparaison approximative de chaîne, comme levenshtein, soundex ou autres...

    En fait j'en ai trouvé quelques-uns mais j'aimerais savoir lequel est le plus efficace. Quelqu'un sait ou je pourrais trouver un comparatif (google est pas mon ami sur ce coup)

    J'imagine que c'est un problème assez récurrent lorsque l'on souhaite faire une fonction de recherche un tant soit peu efficace non ?

    Pourrais-je avoir vos retours d'expérience ?

    Merci à vous

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Pour les recheches sur notre intranet local, j'ai utilisé Damerau-Levenshtein pour les recherches de noms communs et Metaphone pour les recherches de nom propres.

    Ca marche plutot pas mal.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    Mais metaphone n'est-il pas très orienté vers l'anglais ?

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Davboc
    Mais metaphone n'est-il pas très orienté vers l'anglais ?
    Pour les noms propres, l'algo original se débrouille pas trop mal. Et tu peux toujours lui ajouter des regles pour les phonemes francais:

    G+A -> K (Garder)
    G+E -> J (manGe)
    G+I -> J (aGir)
    G+O -> K (Gouter)
    G+U -> K (lanGue)
    ...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    je confirme que Damerau-Levenshtein donne de bons résultats

    tu trouveras ici (de mémoire rubrique sql) des soundex aménagés qui peuvent donner de bons résultats
    Elle est pas belle la vie ?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour
    excusez moi de vous interompre. Mais j'ai peut etre un pb un peu proche de le votre. En fait: je travail sur un projet : correcteur orthographique en c sous linux et je suis débutante.
    je suis maintenant dans la phase d'algo: la conception préliminaire pour écrire une fonction en algo :
    fonction MotsProches(d: Dictionnaire,motMalOrthographie : MOT)Liste<Mot>

    Dictionnaire et Mot sont les deux TAD que j'ai crée.
    mon problème c'est que je n'ai pas une idée pour concevoir cette fonction à savoir qu'elle doit verifier si le mot est dans le dictionnaire et donc elle l'affiche, sinon elle doit afficher la liste des mots proches et c'est la où je ne sais pas comment je dois choisir les mots proches dans le dictionnaire ..
    merci de me donner une piste.

  7. #7
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    Après recherche j'ai trouvé tout un tas d'algorithmes interessants.

    Il y a le Sacro saint Levenshtein, son dérivé Damereau-Levenshtein, Jaro-Winkler, une version évoluée.

    D'un autre côté tu trouvera par exemple TF-IDF

    Sinon tu as des algos comme Soundex et Metaphone qui se basent sur la sonorité des mots et les encodant au préalable. C'est plus rapide que les autres mais l'efficacité est moindre.

    Tu peux faire une recherche sur google des expressions "recherche approximative", "comparaison approximative", "approximative matching", "fuzzy matching"...

    Bon courage

    P.S : recherche les travaux d'un certain cohen à ce sujet ilss sont interessants

Discussions similaires

  1. Comparaison de 2 chaînes
    Par antonius_marcus dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/10/2008, 09h10
  2. [Tableaux] Comparaison pondérée de chaînes
    Par Nicomart dans le forum Langage
    Réponses: 4
    Dernier message: 06/08/2007, 13h00
  3. Réponses: 4
    Dernier message: 07/06/2007, 22h35
  4. Comparaison entre deux chaînes
    Par fifi87 dans le forum Assembleur
    Réponses: 2
    Dernier message: 12/12/2006, 20h55
  5. Comparaison d'une chaîne caractère
    Par schtroumpf_farceur dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/08/2006, 19h25

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