# LevenshteinDist Fonction de script et 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

Arguments

| Argument | Description |
| --- | --- |
| text1 | Première chaîne. |
| text2 | Deuxième chaîne qui sera comparée à la première afin de calculer le nombre minimal de modifications d'un seul caractère. |

Exemple : Expression de graphique

| Exemple | Résultat |
| --- | --- |
| `LevenshteinDist( 'Kitten','Sitting' )` | Renvoie `3` |

## Exemple - Les bases de LevenshteinDist

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/LevenshteinDist.htm)

#### Expression de graphique

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champ dans la table de données portant le nom `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`

Créez la mesure suivante :

* `=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`.

Tableau de résultats

| 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`.

## Exemple - Scénario LevenshteinDist

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/LevenshteinDist.htm)

#### Expression de graphique

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 à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champs suivants dans la table de données :

  * `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`

Créez la mesure suivante :

* `=LevenshteinDist(ProductA, ProductB)` pour calculer le nombre minimal de modifications d'un seul caractère nécessaires pour remplacer la valeur de chaîne de `ProductB` pour qu'elles correspondent à `ProductA`.

Tableau de résultats

| 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.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/LevenshteinDist.htm)

#### Script de chargement

Script de chargement

```
Example:
Load *, recno() as ID;
Load 'Silver' as String_1,* inline [
String_2
Sliver
SSiver
SSiveer ];

Example:
Load *, recno()+3 as ID;
Load 'Gold' as String_1,* inline [
String_2
Bold
Bool
Bond ];

Example:
Load *, recno()+6 as ID;
Load 'Ove' as String_1,* inline [
String_2
Ove
Uve
Üve ];

Example:
Load *, recno()+9 as ID;
Load 'ABC' as String_1,* inline [
String_2
DEFG
abc
ビビビ ];

set nullinterpret = '<NULL>';
Example:
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 Example;

Drop table Example;
```

Tableau de résultats

| 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 |