R cinsinden levenshtein mesafesi nasıl hesaplanır (örneklerle)


İki dize arasındaki Levenshtein mesafesi, bir kelimeyi diğerine dönüştürmek için gereken minimum tek karakterli değişiklik sayısıdır.

“Değişiklikler” kelimesi, ikameleri, eklemeleri ve silmeleri içerir.

Örneğin aşağıdaki iki kelimeye sahip olduğumuzu varsayalım:

  • PARTİYE
  • PARK

İki kelime arasındaki Levenshtein mesafesi (yani bir kelimeyi diğerine dönüştürmek için yapmamız gereken değişiklik sayısı) 2 olacaktır:

Levenstein mesafesi örneği

Pratikte Levenshtein mesafesi, bulanık dize eşleştirme, yazım denetimi ve doğal dil işleme gibi birçok farklı uygulamada kullanılmaktadır.

Bu eğitimde, R’deki stringdist paketinin stringdist() işlevini kullanarak R’deki dizeler arasındaki Levenshtein mesafesinin nasıl hesaplanacağı açıklanmaktadır.

Bu işlev aşağıdaki temel sözdizimini kullanır:

 #load stringdist package
library(stringdist)

#calculate Levenshtein distance between two strings
stringdist(" string1 ", " string2 ", method = " lv ")

Bu fonksiyonun birçok farklı mesafe ölçümünü hesaplayabildiğini unutmayın. method = “lv” belirterek, fonksiyona Levenshtein mesafesini hesaplamasını söyleriz.

Örnek 1: İki dize arasındaki Levenshtein mesafesi

Aşağıdaki kod, stringdist() işlevini kullanarak “party” ve “park” iki dizesi arasındaki Levenshtein mesafesinin nasıl hesaplanacağını gösterir:

 #load stringdist package
library(stringdist)

#calculate Levenshtein distance between two strings
stringdist(' party ', ' park ', method = ' lv ')

[1] 2

Levenshtein mesafesi 2 olarak çıkıyor.

Örnek 2: İki vektör arasındaki Levenstein mesafesi

Aşağıdaki kod, iki farklı vektördeki dizelerin her ikili kombinasyonu arasındaki Levenshtein mesafesinin nasıl hesaplanacağını gösterir:

 #load stringdist package
library(stringdist)

#definevectors
a <- c('Mavs', 'Spurs', 'Lakers', 'Cavs')
b <- c('Rockets', 'Pacers', 'Warriors', 'Celtics')

#calculate Levenshtein distance between two vectors
stringdist(a, b, method=' lv ')

[1] 6 4 5 5

Sonucun yorumlanma şekli şu şekildedir:

  • “Mavs” ve “Rockets” arasındaki Levenshtein mesafesi 6’dır .
  • “Spurs” ile “Pacers” arasındaki Levenshtein mesafesi 4 .
  • “Lakers” ve “Warriors” arasındaki Levenshtein mesafesi 5 .
  • “Cavs” ve “Celtics” arasındaki Levenshtein mesafesi 5’tir .

Örnek 3: Veri çerçevesinin sütunları arasındaki Levenshtein mesafesi

Aşağıdaki kod, bir veri çerçevesinin iki farklı sütunundaki dizelerin her ikili kombinasyonu arasındaki Levenshtein mesafesinin nasıl hesaplanacağını gösterir:

 #load stringdist package
library(stringdist)

#define data
data <- data.frame(a = c('Mavs', 'Spurs', 'Lakers', 'Cavs'),
                   b = c('Rockets', 'Pacers', 'Warriors', 'Celtics'))

#calculate Levenshtein distance
stringdist(data$a, data$b, method=' lv ')

[1] 6 4 5 5

Daha sonra istersek Levenshtein mesafesini veri çerçevesine yeni bir sütun olarak ekleyebiliriz:

 #save Levenshtein distance as vector
lev <- stringdist(data$a, data$b, method=' lv ')

#append Levenshtein distance as new column
data$lev <- lev

#view data frame
data

       ab lev
1 Mavs Rockets 6
2 Spurs Pacers 4
3 Lakers Warriors 5
4 Cavs Celtics 5

Ek kaynaklar

R cinsinden Hamming mesafesi nasıl hesaplanır
R cinsinden Öklid mesafesi nasıl hesaplanır
R cinsinden Manhattan’a olan mesafe nasıl hesaplanır?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir