R တွင် levenshtein အကွာအဝေးကို မည်ကဲ့သို့ တွက်ချက်နည်း (ဥပမာများနှင့်အတူ)


ကြိုးတန်းနှစ်ခုကြားရှိ Levenshtein အကွာအဝေး သည် စကားလုံးတစ်လုံးမှ အခြားတစ်လုံးသို့ ပြောင်းလဲရန် လိုအပ်သော စာလုံးတစ်လုံးတည်းပြောင်းလဲမှု၏ အနည်းဆုံးအရေအတွက်ဖြစ်သည်။

“ မွမ်းမံမှုများ” ဟူသော စကားလုံးတွင် အစားထိုးခြင်း၊ ထည့်သွင်းခြင်းနှင့် ဖျက်ခြင်းများ ပါဝင်သည်။

ဥပမာအားဖြင့်၊ ကျွန်ုပ်တို့တွင် အောက်ပါစကားလုံးနှစ်လုံးရှိသည်ဆိုပါစို့။

  • ပါတီသို့
  • ပန်းခြံ

စကားလုံးနှစ်လုံးကြားရှိ Levenshtein အကွာအဝေး (ဆိုလိုသည်မှာ စကားလုံးတစ်လုံးမှ အခြားတစ်လုံးသို့ ပြောင်းလဲရန် ကျွန်ုပ်တို့ပြုလုပ်ရမည့် အပြောင်းအလဲအရေအတွက်) သည် 2 ဖြစ်လိမ့်မည်။

Levenshtein အကွာအဝေး၏ဥပမာ

လက်တွေ့တွင်၊ Levenshtein အကွာအဝေးကို fuzzy string matching၊ spell checking နှင့် natural language processing အပါအဝင် မတူညီသော application အများအပြားတွင် အသုံးပြုပါသည်။

ဤသင်ခန်းစာသည် R ရှိ stringdist အထုပ်၏ stringdist() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ R ရှိ ကြိုးများကြားရှိ Levenshtein အကွာအဝေးကို မည်သို့တွက်ချက်ရမည်ကို ရှင်းပြထားသည်။

ဤလုပ်ဆောင်ချက်သည် အောက်ပါအခြေခံ syntax ကိုအသုံးပြုသည်-

 #load stringdist package
library(stringdist)

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

ဤလုပ်ဆောင်ချက်သည် မတူညီသော အကွာအဝေးတိုင်းတာမှုများကို တွက်ချက်နိုင်သည်ကို သတိပြုပါ။ method = “ lv” ကိုသတ်မှတ်ခြင်းဖြင့် Levenshtein အကွာအဝေးကိုတွက်ချက်ရန် function ကိုပြောပြသည်။

ဥပမာ 1- ကြိုးနှစ်ခုကြားရှိ Levenshtein အကွာအဝေး

အောက်ပါကုဒ်သည် stringdist() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ ကြိုးတန်းနှစ်ခုကြားရှိ Levenshtein အကွာအဝေးကို တွက်ချက်နည်းကို ပြသသည်-

 #load stringdist package
library(stringdist)

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

[1] 2

Levenshtein အကွာအဝေးသည် 2 ဖြစ်သည် ။

ဥပမာ 2- ကွက်နှစ်ခုကြားရှိ Levenshtein အကွာအဝေး

အောက်ဖော်ပြပါ ကုဒ်သည် မတူညီသော vector နှစ်ခုတွင် မျဉ်းတွဲတစ်ခုစီ၏ အတွဲလိုက်ပေါင်းစပ်မှုကြားရှိ Levenshtein အကွာအဝေးကို တွက်ချက်နည်းကို ပြသသည်-

 #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

ရလဒ်ကို အဓိပ္ပာယ်ဖွင့်ဆိုရန် နည်းလမ်းမှာ အောက်ပါအတိုင်းဖြစ်သည်။

  • “ Mavs” နှင့် “ Rockets” အကြား Levenshtein အကွာအဝေးသည် 6 ဖြစ်သည်။
  • “ စပါး” နှင့် “ ပါဆာ” အကြား Levenshtein အကွာအဝေးသည် 4 ဖြစ်သည်။
  • “ Lakers” နှင့် “ Warriors” အကြား Levenshtein အကွာအဝေးသည် 5 ဖြစ်သည်။
  • “ Cavs” နှင့် “ Celtics” အကြား Levenshtein အကွာအဝေးသည် 5 ဖြစ်သည်။

ဥပမာ 3- ဒေတာဘောင်၏ကော်လံများကြားရှိ Levenshtein အကွာအဝေး

အောက်ပါကုဒ်သည် ဒေတာဘောင်တစ်ခု၏ မတူညီသောကော်လံနှစ်ခုတွင် မျဉ်းတွဲတစ်ခုစီ၏ အတွဲလိုက်ပေါင်းစပ်မှုကြားရှိ Levenshtein အကွာအဝေးကို တွက်ချက်နည်းကို ပြသသည်-

 #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

ထို့နောက် ကျွန်ုပ်တို့အလိုရှိပါက ဒေတာဘောင်တွင် ကော်လံအသစ်တစ်ခုအနေဖြင့် Levenshtein အကွာအဝေးကို ပေါင်းထည့်နိုင်သည်-

 #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

ထပ်လောင်းအရင်းအမြစ်များ

R ဖြင့် Hamming အကွာအဝေးကိုဘယ်လိုတွက်ရမလဲ
Euclidean အကွာအဝေးကို R ဖြင့် တွက်နည်း
မန်ဟက်တန်မှ အကွာအဝေးကို R ဖြင့် တွက်နည်း

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်