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