R တွင် levenshtein အကွာအဝေးကို မည်ကဲ့သို့ တွက်ချက်နည်း (ဥပမာများနှင့်အတူ)
ကြိုးတန်းနှစ်ခုကြားရှိ Levenshtein အကွာအဝေး သည် စကားလုံးတစ်လုံးမှ အခြားတစ်လုံးသို့ ပြောင်းလဲရန် လိုအပ်သော စာလုံးတစ်လုံးတည်းပြောင်းလဲမှု၏ အနည်းဆုံးအရေအတွက်ဖြစ်သည်။
“ မွမ်းမံမှုများ” ဟူသော စကားလုံးတွင် အစားထိုးခြင်း၊ ထည့်သွင်းခြင်းနှင့် ဖျက်ခြင်းများ ပါဝင်သည်။
ဥပမာအားဖြင့်၊ ကျွန်ုပ်တို့တွင် အောက်ပါစကားလုံးနှစ်လုံးရှိသည်ဆိုပါစို့။
- ပါတီသို့
- ပန်းခြံ
စကားလုံးနှစ်လုံးကြားရှိ Levenshtein အကွာအဝေး (ဆိုလိုသည်မှာ စကားလုံးတစ်လုံးမှ အခြားတစ်လုံးသို့ ပြောင်းလဲရန် ကျွန်ုပ်တို့ပြုလုပ်ရမည့် အပြောင်းအလဲအရေအတွက်) သည် 2 ဖြစ်လိမ့်မည်။
လက်တွေ့တွင်၊ 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 ဖြင့် တွက်နည်း