LevenshteinDist - fonction de script et fonction de graphique
LevenshteinDist() renvoie la distance Levenshtein entre deux chaînes. Cela est défini comme le nombre minimal d'éditions (insertions, suppression ou substitutions) d'un seul caractère requises pour modifier une chaîne dans l'autre. La fonction s'avère utile pour les comparaisons de chaînes partielles.
LevenshteinDist(text1, text2)
entier
Example | Result |
---|---|
LevenshteinDist('Kitten','Sitting') | Returns '3' |
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Un champ dans la table de données appelé InputText.
Script de chargement
Example:
Load * inline [
InputText
Sliver
SSiver
SSiveer
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :
InputText
=LevenshteinDist('Silver', InputText), pour calculer le nombre minimal de modifications d'un seul caractère nécessaires pour remplacer les valeurs de chaîne de InputText par le terme 'Silver'.
InputText | LevenshteinDist(‘Silver’, InputText) |
---|---|
Sliver | 2 |
SSiveer | 3 |
SSiver | 2 |
La sortie de la fonction LevenshteinDist renvoie le nombre de modifications nécessaires pour remplacer InputText par le texte prévu, 'Silver'. Par exemple, la première ligne nécessite deux modifications pour remplacer le terme 'Sliver' par 'Silver'. La deuxième ligne nécessite trois modifications : 1) Suppression du caractère supplémentaire 'S'. 2) Suppression du caractère supplémentaire 'e'. 3) Insertion d'un nouveau caractère 'l'.
Vue d'ensemble
Cet exemple consolide les noms de produits provenant de différents systèmes. Les noms de produits n'utilisent pas toujours la même orthographe en raison de fautes de frappe, d'abréviations, d'espacements ou d'autres variations. Grâce à la fonction LevenshteinDist, vous pouvez mesurer la similarité entre deux noms de produits et identifier ceux qui font probablement référence au même produit, même si les noms ne sont pas identiques.
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
ProductA
ProductB
Script de chargement
Example:
Load * inline [
ProductA, ProductB
Coca Cola 330ml, CocaCola 330 ml
Pepsi 500 ml, Pepsi 500ml
Sprite Zero 600 ml, SpriteZero600ml
Red Bull 250ml, Redbull 250ml
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
ProductA
ProductB
=LevenshteinDist(ProductA, ProductB), pour calculer le nombre minimal de modifications d'un seul caractère nécessaires pour remplacer les valeurs de chaîne de ProductB pour qu'elles correspondent à ProductA.
ProductA | ProductB | LevenshteinDist(ProductA, ProductB) |
---|---|---|
Coca Cola 330ml | CocaCola 330 ml | 2 |
Pepsi 500 ml | Pepsi 500ml | 1 |
Red Bull 250ml | Redbull 250ml | 2 |
Sprite Zero 600 ml | SpriteZero600ml | 3 |
La distance Levenshtein est un type de correspondance approximative largement utilisé dans les correcteurs orthographiques, les systèmes de reconnaissance optique de caractères et les systèmes de correction dans des domaines tels que la gestion des données client, les systèmes d'inventaire et le traitement de documents, dans lesquels on rencontre souvent de légères variations du texte.
Load script
T1: Load *, recno() as ID; Load 'Silver' as String_1,* inline [ String_2 Sliver SSiver SSiveer ]; T1: Load *, recno()+3 as ID; Load 'Gold' as String_1,* inline [ String_2 Bold Bool Bond ]; T1: Load *, recno()+6 as ID; Load 'Ove' as String_1,* inline [ String_2 Ove Uve Üve ]; T1: Load *, recno()+9 as ID; Load 'ABC' as String_1,* inline [ String_2 DEFG abc ビビビ ]; set nullinterpret = '<NULL>'; T1: Load *, recno()+12 as ID; Load 'X' as String_1,* inline [ String_2 '' <NULL> 1 ]; R1: Load ID, String_1, String_2, LevenshteinDist(String_1, String_2) as LevenshteinDistance resident T1; Drop table T1;
Result
ID | String_1 | String_2 | LevenshteinDistance |
---|---|---|---|
1 | Silver | Sliver | 2 |
2 | Silver | SSiver | 2 |
3 | Silver | SSiveer | 3 |
4 | Gold | Bold | 1 |
5 | Gold | Bool | 3 |
6 | Gold | Bond | 2 |
7 | Ove | Ove | 0 |
8 | Ove | Uve | 1 |
9 | Ove | Üve | 1 |
10 | ABC | DEFG | 4 |
11 | ABC | abc | 3 |
12 | ABC | ビビビ | 3 |
13 | X | 1 | |
14 | X | - | 1 |
15 | X | 1 | 1 |