# LevenshteinDist - Komut dosyası ve grafik fonksiyonu

LevenshteinDist() iki dize arasında Levenshtein mesafesi döndürür. Bu, bir dizeyi diğeriyle değiştirmek için gereken minimum tek karakterli düzenleme (ekleme, silme veya değiştirme) sayısı olarak tanımlanır. Fonksiyon, fuzzy dize karşılaştırmaları için kullanışlıdır.

Söz Dizimi:

LevenshteinDist(text1, text2)

Dönüş verileri türü: tamsayı

Bağımsız Değişkenler

| Bağımsız Değişken | Tanım |
| --- | --- |
| text1 | İlk dize. |
| text2 | Minimum tek karakterli düzenleme sayısını hesaplamak için ilk dizeyle karşılaştırılacak olan ikinci dize. |

Örnek: Grafik ifadesi

| Örnek | Sonuç |
| --- | --- |
| `LevenshteinDist( 'Kitten','Sitting' )` | `3` döndürür |

## Örnek - LevenshteinDist temel bilgileri

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

#### Grafik ifadesi

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* `Example` adlı veri tablosuna yüklenen bir veri kümesi.

* Veri tablosunda `InputText` adında bir alan.

Komut dosyası

```
Example:
Load * inline [
InputText
Sliver
SSiver
SSiveer
];
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanı boyut olarak ekleyin:

* `InputText`

Şu hesaplamayı oluşturun:

* `=LevenshteinDist('Silver', InputText)`, `InputText` dize değerini `Silver` kelimesine değiştirmek üzere gereken minimum tek karakter düzenleme sayısını hesaplamak için.

Sonuçlar tablosu

| InputText | LevenshteinDist('Silver', InputText) |
| --- | --- |
| Sliver | 2 |
| SSiveer | 3 |
| SSiver | 2 |

`LevenshteinDist` işlevinin çıktısı, `InputText` metnini beklenen metin olan `Silver` metnine dönüştürmek için gereken değişiklik sayısını verir. Örneğin, ilk satırda `Sliver` kelimesini `Silver` olarak değiştirmek için iki değişiklik yapılması gerekmektedir. İkinci satır 3 değişiklik gerektirir: 1) Fazla `S` karakterini silin. 2) Fazla `e` karakterini silin. 3) Yeni bir `l` karakteri ekleyin.

## Örnek - LevenshteinDist senaryosu

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

#### Grafik ifadesi

Genel bakış

Bu örnek, farklı sistemlerdeki ürün adlarını birleştirir. Yazım hataları, kısaltmalar, boşluklar veya diğer varyasyonlar nedeniyle ürün adları her zaman aynı şekilde yazılmaz. `LevenshteinDist` işlevini kullanarak, iki ürün adı arasındaki benzerliği ölçebilir ve adlar aynı olmasa bile hangilerinin muhtemelen aynı ürüne referans verdiğini belirleyebilirsiniz.

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* `Example` adlı veri tablosuna yüklenen bir veri kümesi.

* Veri tablosundaki şu alanlar:

  * `ProductA`

  * `ProductB`

Komut dosyası

```
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
];
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* `ProductA`

* `ProductB`

Şu hesaplamayı oluşturun:

* `=LevenshteinDist(ProductA, ProductB)`, `ProductB` dize değerini `ProductA` ile eşleştirmek üzere gereken minimum tek karakter düzenleme sayısını hesaplamak için.

Sonuçlar tablosu

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

Levenshtein mesafesi, metinde küçük değişikliklerin sıklıkla meydana geldiği müşteri veri yönetimi, envanter sistemleri ve belge işleme gibi alanlarda yazım denetleyicileri, optik karakter tanıma ve düzeltme sistemlerinin bir parçası olarak yaygın şekilde kullanılan bir fuzzy eşleştirme türüdür.

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

#### Komut dosyası

Komut dosyası

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

Sonuçlar tablosu

| Kimlik | Dize\_1 | Dize\_2 | LevenshteinDistance |
| --- | --- | --- | --- |
| 1 | Silver | Sliver | 2 |
| 2 | Silver | SSiver | 2 |
| 3 | Silver | SSiveer | 3 |
| 4 | Gold | Kalın | 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 |