Levenshtein Mesafesi Hesaplama

İki dizi girin, aralarında kaç tek karakterlik düzenleme olduğunu görün.

Sonuç

3
%62,5

Nasıl hesaplanır?

Diziler Unicode karakterlerine ayrılır; yani aksanlı bir harf tek karakter sayılır. Bir tablo doldurulur: (i, j) hücresi, A'nın ilk i karakterini B'nin ilk j karakterine çevirmenin en ucuz yolunu tutar: d(i, j) = min(d(i−1, j) + 1, d(i, j−1) + 1, d(i−1, j−1) + c); iki karakter aynıysa c = 0, farklıysa c = 1. Köşedeki hücre mesafe d değeridir. Benzerlik (1 − d / max(|A|, |B|)) × 100 ile bulunur ve bir ondalıkla yüzde olarak gösterilir. Karşılaştırma büyük-küçük harfe duyarlıdır ve boşluklar karakter sayılır. İki boş dizide sonuç çıkmaz; iki uzunluğun çarpımı 1.000.000'u aşan çiftlerde de sonuç verilmez.

Örnek hesaplama

saturday (8 harf) ile sunday (6 harf) karşılaştırılsın. saturday'den a ve t silinirse surday kalır; r yerine n konunca sunday olur. Bu 2 silme ve 1 değiştirmedir; mesafe 3. Uzun dizi 8 karakterlidir; benzerlik = (1 − 3 / 8) × 100 = %62,5.

Bu örneği dene →

Sık yapılan hatalar

  • Büyük ve küçük harfin eşleşmesini beklemek. Kitten ile kitten bir düzenleme farklıdır, çünkü büyük K farklı bir karakter sayılır.
  • Yapıştırılan metnin sonunda boşluk bırakmak. Boşluk da karakterdir; abc ile sonunda boşluk olan abc arasındaki mesafe 1'dir.
  • Benzerliği anlam benzerliği sanmak. Yalnızca karakterleri sırayla karşılaştırır; aynı anlama gelen iki kelime düşük puan alabilir.
  • Mesafeyi farklı konum sayısı sanmak. Ekleme ve silme sonrasındaki her şeyi kaydırır; bu yüzden mesafe, konum konum karşılaştırmanın gösterdiğinden çok daha küçük olabilir.
  • İki uzun metni yapıştırıp sonuç beklemek. İki uzunluğun çarpımı bir milyonu geçince araç sonuç vermez; daha kısa parçaları karşılaştırın.

Bu hesaplama hakkında

İki metin dizisi arasındaki Levenshtein mesafesi, birini diğerine dönüştürmek için gereken en az sayıda tek karakterlik düzenlemedir — ekleme, silme veya değiştirme. Bu kavram 1965 yılında Rus matematikçi Vladimir Levenshtein tarafından ortaya atılmıştır ve bir dinamik programlama tablosuyla hesaplanır; bu tablo, bir dizinin her ön ekini diğerinin her ön ekiyle karşılaştırarak hücre hücre en ucuz düzenleme yolunu bulur.

Bu ölçüt, metinlerin kusurlu şekilde karşılaştırılması gereken hemen her yerde karşımıza çıkar: yazım denetleyicileri bir yazım hatasına en yakın gerçek kelimeyi önermek için bunu kullanır; arama motorları ve otomatik tamamlama, hatalı yazılmış sorgularla bulanık eşleştirme yapmak için bundan yararlanır; biyoinformatik araçları DNA ve protein dizilerini hizalamak için bu ölçütün yakın bir türevini kullanır; intihal denetleyicileri ve sürüm kontrol sistemlerindeki fark (diff) araçları ise iki belgenin veya kod satırının gerçekte ne kadar benzer olduğunu ölçmek için ondan faydalanır.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar

  • İlk yorumu siz yazın.

Popüler hesaplayıcılar

Tüm Hesaplayıcılar