Cara menghitung jarak levenshtein di r (dengan contoh)


Jarak Levenshtein antara dua string adalah jumlah minimum perubahan karakter tunggal yang diperlukan untuk mengubah satu kata menjadi kata lain.

Yang dimaksud dengan “modifikasi” meliputi penggantian, penyisipan, dan penghapusan.

Misalnya, kita mempunyai dua kata berikut:

  • KE PESTA
  • TAMAN

Jarak Levenshtein antara dua kata (yaitu jumlah perubahan yang perlu kita lakukan untuk mengubah satu kata menjadi kata lainnya) adalah 2 :

Contoh jarak Levenshtein

Dalam praktiknya, jarak Levenshtein digunakan dalam banyak aplikasi berbeda, termasuk pencocokan string fuzzy, pemeriksaan ejaan, dan pemrosesan bahasa alami.

Tutorial ini menjelaskan cara menghitung jarak Levenshtein antar string di R menggunakan fungsi stringdist() dari paket stringdist di R.

Fungsi ini menggunakan sintaks dasar berikut:

 #load stringdist package
library(stringdist)

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

Perhatikan bahwa fungsi ini dapat menghitung banyak pengukuran jarak yang berbeda. Dengan menentukan metode = “lv”, kami memberi tahu fungsi tersebut untuk menghitung jarak Levenshtein.

Contoh 1: Jarak Levenshtein antara dua senar

Kode berikut menunjukkan cara menghitung jarak Levenshtein antara dua string “party” dan “park” menggunakan fungsi stringdist() :

 #load stringdist package
library(stringdist)

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

[1] 2

Jarak Levenshtein ternyata 2 .

Contoh 2: Jarak Levenshtein antara dua vektor

Kode berikut menunjukkan cara menghitung jarak Levenshtein antara setiap kombinasi string berpasangan dalam dua vektor berbeda:

 #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

Cara menafsirkan hasilnya adalah sebagai berikut:

  • Jarak Levenshtein antara “Mavs” dan “Rockets” adalah 6 .
  • Jarak Levenshtein antara “Spurs” dan “Pacers” adalah 4 .
  • Jarak Levenshtein antara “Lakers” dan “Warriors” adalah 5 .
  • Jarak Levenshtein antara “Cavs” dan “Celtics” adalah 5 .

Contoh 3: Jarak Levenshtein antar kolom bingkai data

Kode berikut menunjukkan cara menghitung jarak Levenshtein antara setiap kombinasi string berpasangan dalam dua kolom berbeda pada bingkai data:

 #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

Kita kemudian dapat menambahkan jarak Levenshtein sebagai kolom baru di bingkai data jika kita ingin:

 #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

Sumber daya tambahan

Cara menghitung jarak Hamming di R
Cara menghitung jarak Euclidean di R
Cara menghitung jarak dari Manhattan di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *