Après avoir vu différents algorithmes de similarité dans des billets précédents, je vous propose un petit comparatif à travers un exemple qui consiste à trouver le doublon de restaurants par leur nom, adresse, téléphone et type de cusine.
Lire la suite
Archives pour la catégorie SQL – Ms Access
VBA : Distance de Jaro-Winkler
Cet algorithme mesure la similarité entre deux chaînes de caractères pour la recherche de doublons par exemple. Tout comme les algorithmes de Damerau-Levenshtein et les indices de similarité Cosinus, Dice, Jaccard…, la distance est normalisée entre 0 et 1. Plus la similarité est forte plus la distance tend vers 1.
Lire la suite
Calcul direct de la date de Pâques en SQL
La requête paramétrée suivante calcule directement la date du Dimanche de Pâques entre 1900 et 2099 sans faire intervenir une fonction VBA personnelle grâce à une formule dérivée de l’algorithme de Carter.
La date des 3 jours fériés mobiles français (Lundi de Pâques, Ascension et Lundi de Pentecôte) est également formulée, bien que le lundi de Pentecôte ne soit plus chômé depuis 2005 (journée de solidarité).
Lire la suite
Indices de similarité entre deux chaînes de caractères
Après l’algorithme de Damerau-Levenshtein qui mesure la distance minimale d’édition entre deux textes, je présente un algorithme plus simple et donc plus rapide qui calcule différents indices de similarité (Cosinus, Dice, Jaccard, Kulczynski,…) à partir de n-grammes (n-grams/q-grams en anglais) ou sous-séquences continues de caractères.
Lire la suite
Transposer des lignes en une colonne
On a parfois besoin de concaténer dans une colonne le contenu de plusieurs lignes d’une table ou d’une requête.
Lire la suite
Similarité entre deux chaînes de caractères
Pour tenter de réduire l’imperfection des ITCC, IPCC, ITPCC voire ITPCCC et plus généralement ICC(*), de nombreux algorithmes sont proposés (Soundex, Jaro-Winkler, …) et l’algorithme de Damerau-Levenshtein que j’ai implémenté ici en VBA.
Voir aussi le billet sur les indices de similarité et le billet sur la distance de Jaro-Winkler.
Lire la suite
Fonctions Min / Max d’une série de valeurs
Deux petites fonctions qui permettent d’extraire la valeur minimale ou maximale d’une série de valeurs dans une requête SQL ou dans un code VBA.
Lire la suite
Substituer des sous-chaînes
Je vous présente une fonction polyvalente écrite en VBA qui permet de remplacer une ou plusieurs sous-chaînes en tenant compte ou non de la casse des caractères.
Lire la suite
Remplacer les caractères accentués d’une chaîne
Lors d’une recherche de sous-chaine, il est parfois nécessaire de substituer les lettres accentuées par leurs équivalents sans accent.
En effet, le moteur Jet des bases de données Access est insensible à la casse des caractères mais ne fait pas le lien entre un caractère accentué et son équivalent.
La FAQ propose déjà deux fonctions ayant le même objectif, mais voici une troisième voie qui se caractérise par sa vitesse d’exécution et la possibilité ou non de conserver la casse des caractères de la chaine initiale.
Lire la suite
Regroupement de périodes chevauchées
Vous avez une table avec une date de début et de fin et vous souhaitez connaître la date mini et la date maxi des périodes qui se chevauchent.
Lire la suite