SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 287 visiteurs en ce moment

Accueil > Squelettes > Outils pour squelettes > Levenshtein > Levenshtein

Levenshtein

9 mai 2016 – par Phenix – commentaires

11 votes

Proposition de mots lors de la recherche.

La principale vocation du plugin Levenshtein est de proposer des corrections de mots lors de la recherche.

Dépendance

Pour fonctionner le plugin a besoin d’un lexique dans lequel faire les recherches et comparaisons.

Pour cela, il dispose du pipeline levenshtein_calculer.

Ce pipeline fournit 2 paramètres :

  • mot : les mots qui sont candidats à être des corrections du mot.
  • term : le mot à rechercher.

Exemple dans le plugin Vocabulaire :

  1. function vocabulaire_levenshtein_calculer($flux) {
  2. $get_lev = sql_allfetsel('mot', 'spip_vocabulaires', 'SOUNDEX(mot) = SOUNDEX('.sql_quote($flux['term']).')');
  3. $flux['mot'] = array_merge($flux['mot'], $get_lev);
  4. return $flux;
  5. }

Télécharger

Ensuite, le plugin va calculer la distance de levenshtein et filtrer pour ne garder que les mots les plus proches.

L’affichage

L’affichage des propositions de correction se fait via la balise #LEVENSHTEIN. Si aucun paramètre n’est passé à la balise, elle utilisera automatiquement le contenu de la recherche (_request(’recherche’)).

Si un paramètre est passé à la balise, il sera utilisé à la place de ’recherche’ (_request(’mon_truc’))

Les SOUNDEX

L’utilisation des SOUNDEX de mysql est un précieux allié quand on travaille sur les corrections de mots.
Le plugin Vocabulaire référence 336531 mots français. Impossible de tester chaque mots avec la distance de Levenshtein, les serveurs classiques ne le supporteraient pas.

C’est là qu’interviennent les SOUNDEX, cela filtre les mots d’une base de donnée pour renvoyer les mots qui « sonne » comme les autres. Cela fait directement moins de mots à tester.

Ce plugin est installé sur le moteur de recherche de mon site personnel. N’hésitez pas à jouer avec !

P.-S.

Un merci spécial à Vladimir Levenshtein pour sa découverte mathématique et à PHP pour offrir une fonction levenshtein out of the box.

Dernière modification de cette page le 9 mai 2016

Retour en haut de la page

Vos commentaires

  • Le 24 septembre 2016 à 12:38, par Artlogic En réponse à : Levenshtein

    Bonjour,

    J’obtiens cette erreur sur la page de configuration en spip3.1 :

    1 Filtre levenshtein_spip non défini ../plugins/auto/levenshtein/v1.0.1/prive/squelettes/contenu/configurer_levenshtein.html

    ainsi qu’un string(8) « broeutte »

    Je réinstalle pour voir si dès fois...

    Répondre à ce message

  • Le 11 mai 2016 à 09:07, par jfd En réponse à : Levenshtein

    Bonne nouvelle, Je ne savais pas que soundex avait une version française.
    Quand je l’utilisais sous oracle, le résultat était assez cocasse, la prononciation anglaise étant différente de la française pour une même orthographe .
    On a fini par me demander de l’enlever de mes programmes.

    • Le 11 mai 2016 à 23:02, par Phenix En réponse à : Levenshtein

      J’avoue que je ne me suis pas trop posé la question, j’ai testé soundex sur la base de donnée FR et ça fonctionnait, j’en ai fait un plugin.

      Après c’est peut être simplement que MySQL supporte mieux soundex que Oracle... Ou alors ça fonctionne juste parce que j’ai de la chance :)

    • Le 11 mai 2016 à 23:10, par Phenix En réponse à : Levenshtein

      En faite, tu as complètement raison, les soundex MySQL ne fonctionnent bien qu’avec l’Anglais : http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_soundex

      Du coup, l’utilisation de Soundex est discutable, il faudrai un autre moyen de filtrer les mots...

      Crotte !

    • Le 12 mai 2016 à 09:06, par jfd En réponse à : Levenshtein

      Du coup, c’est moi qui suis déçu :-)
      Après, comme tu as pu le constater, cela fonctionne quand même.
      Il faut juste que l’utilisateur accepte de n’avoir -parfois- que des résultats sans rapport avec la saisie.

    Répondre à ce message

  • Le 11 mai 2016 à 18:48, par peetdu En réponse à : Levenshtein

    Hello,

    bravo pour cette initiative qui promet !

    Là je galère un peu : j’ai installé les deux plugins : Levenshtein et Vocabulaire, importé fr.txt.

    Mais le plugin ne semble pas prendre en compte la base installée dans spip_vocabulaires.
    Du coup, à des fins de tests, j’ai désinstallé Vocabulaire et j’ai exactement les mêmes propositions
    Qu’est ce que j’ai raté ?

    Peetdu
    ps : Et je n’ai pas compris comment / où utiliser la balise #LEVENSHTEIN ?

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Agenda 2.0

    3 novembre 2008 – 1069 commentaires

    Voici la version pour SPIP 2.0 du Plugin Agenda pour SPIP 1.9.2, avec une interface remaniée pour encore plus de plaisir. Pour une documentation concernant l’utilisation d’Agenda 3 pour SPIP 3, veuillez pour l’instant vous référer à SPIP 3, Agenda (...)

  • Indexer : Installation et Configuration

    6 octobre 2014 – 39 commentaires

    Introduction Pour comprendre l’intérêt du plugin, nous invitons à lire l’article suivant Indexer : Introduction. Le fonctionnement de la boucle SPHINX est expliqué dans cet article : Indexer : La boucle SPHINX. La suite de l’article aborde (...)

  • GIS 4

    11 août 2012 – 1313 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2058 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)

  • Indexer : La boucle SPHINX

    29 juin 2015 – 15 commentaires

    Avant de commencer Pour comprendre l’intérêt du plugin, nous invitions à lire l’article suivant Indexer : Introduction. La configuration et l’installation du plugin sont expliquées dans l’article suivant : Indexer : Installation et Configuration (...)