PHP တွင် Levenhhtein function သည် twings နှစ်ခုအကြားတည်းဖြတ်ခြင်းအကွာအဝေးကိုတွက်ချက်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ၎င်းသည်များသောအားဖြင့် fuzzy ကိုက်ညီမှုကိုအကောင်အထည်ဖော်ရန်အသုံးပြုသည်။ ၎င်းသည်အနိမ့်ဆုံးထည့်သွင်းမှု, ဖျက်ခြင်းနှင့်အစားထိုးခြင်းနှင့်အစားထိုးခြင်းများကိုအစားထိုးခြင်းဖြင့်ဆင်တူခြင်းကိုတန်ဖိုးထားသည်။ Complevenstiting Matching STRINGS တွင်အချို့သောရှုပ်ထွေးသော string နှင့်ကိုက်ညီသည့်အခြေအနေများတွင်၎င်းသည်ပုံမှန်အသုံးအနှုန်းများနှင့်ပေါင်းစပ်ခြင်းဖြင့်၎င်းကိုပုံမှန်အသုံးအနှုန်းများနှင့်ပေါင်းစပ်ခြင်းများပြုလုပ်နိုင်သည်။
Levenhtein function ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">levenshtein</span></span><span> ( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str1</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str2</span></span><span> [, </span><span><span class="hljs-keyword">int</span></span><span> &</span><span><span class="hljs-variable">$cost_ins</span></span><span> = </span><span><span class="hljs-number">1</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> &</span><span><span class="hljs-variable">$cost_rep</span></span><span> = </span><span><span class="hljs-number">1</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> &</span><span><span class="hljs-variable">$cost_del</span></span><span> = </span><span><span class="hljs-number">1</span></span><span> ] )
</span></span>
$ str1 နှင့် $ str2 နှိုင်းယှဉ်ခံရဖို့ကြိုးနှစ်ချောင်းရှိပါတယ်။
$ cost_ins များ , $ cost_rep နှင့် $ cost_del သည် ငွေသွင်းခြင်း, အစားထိုးခြင်းနှင့်ဖျက်ခြင်းလုပ်ငန်းများအသီးသီး (ပုံသေ) သည် 0 င်ငွေ၏ကုန်ကျစရိတ်များကိုကိုယ်စားပြုသည်။
function ၏ပြန်လာတန်ဖိုးမှာ string $ str1 မှ ဒေါ်လာ str2 သို့ပြောင်းရန်လိုအပ်သောအနိမ့်ဆုံး operand ကိုကိုယ်စားပြုသောကိန်းတစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့်, Levenhhettein ('Kitten') သည် "ထိုင်ခုံ '' မှ" S "မှ" s "မှအကူးအပြောင်းသုံးခုလိုအပ်သည်။
ပုံမှန်အသုံးအနှုန်းများ (regex) သည် string ပုံစံများနှင့်ကိုက်ညီရန်အစွမ်းထက်သောကိရိယာများဖြစ်သည်။ PHP တွင်များသောအားဖြင့်ပုံမှန်ပုံမှန်ကိုက်ညီမှုလုပ်ဆောင်ချက်များတွင် Preg_match , Preg_match_Reall , preg_match_replace စသည်တို့ပါဝင်သည်။
Levenhhtein နှင့်ပုံမှန်အသုံးအနှုန်းများသည်အစွမ်းထက်သောကိရိယာနှစ်ခုဖြစ်သော်လည်း၎င်းတို့သည်သဘာဝအားဖြင့် "ပေါင်းစပ်" မရှိကြပေ။ Levenhtein သည် ကြိုးနှစ်ချောင်းအကြားအကွာအဝေးကိုတွက်ချက်သည်။ ပုံမှန်အသုံးအနှုန်းများသည်ပုံစံများကိုကိုက်ညီရန်အသုံးပြုသည်။ အချို့ကိစ္စများတွင်သူတို့တစ် ဦး ကိုတစ် ဦး ဖြည့်တင်းနိုင်သည်။
ကျွန်ုပ်တို့သည်စကားလုံးများစွာပါ 0 င်သော string မှအသုံးပြုသူမှထည့်သွင်းထားသောစကားလုံးနှင့်ဆင်တူသည့်စကားလုံးကိုကျွန်ုပ်တို့ရှာဖွေလိုသည်ဆိုပါစို့။ Word တစ်ခုစီနှင့်အသုံးပြုသူမှထည့်သွင်းထားသော string တစ်ခုအကြားဆင်တူမှုကိုတွက်ချက်ရန် Levenhhtein function ကိုသုံးနိုင်သည်။
<span><span><span class="hljs-variable">$words</span></span><span> = [</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"orange"</span></span><span>, </span><span><span class="hljs-string">"grape"</span></span><span>, </span><span><span class="hljs-string">"kiwi"</span></span><span>];
</span><span><span class="hljs-variable">$user_input</span></span><span> = </span><span><span class="hljs-string">"applw"</span></span><span>; </span><span><span class="hljs-comment">// အသုံးပြုသူမှထည့်သွင်း fuzzy စကားများ</span></span><span>
</span><span><span class="hljs-variable">$closest_match</span></span><span> = </span><span><span class="hljs-string">""</span></span><span>;
</span><span><span class="hljs-variable">$min_distance</span></span><span> = PHP_INT_MAX;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$words</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$word</span></span><span>) {
</span><span><span class="hljs-variable">$distance</span></span><span> = </span><span><span class="hljs-title function_ invoke__">levenshtein</span></span><span>(</span><span><span class="hljs-variable">$user_input</span></span><span>, </span><span><span class="hljs-variable">$word</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$distance</span></span><span> < </span><span><span class="hljs-variable">$min_distance</span></span><span>) {
</span><span><span class="hljs-variable">$min_distance</span></span><span> = </span><span><span class="hljs-variable">$distance</span></span><span>;
</span><span><span class="hljs-variable">$closest_match</span></span><span> = </span><span><span class="hljs-variable">$word</span></span><span>;
}
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အလားတူစကားများမှာ: <span class="hljs-subst">$closest_match</span></span></span><span>";
</span></span>
ဤဥပမာတွင်ကျွန်ုပ်တို့သည်စကားလုံးများအားလုံးကိုဖြတ်သန်းပြီးအသုံးပြုသူမှထည့်သွင်းထားသောစကားလုံးနှင့်အကွာအဝေးကိုတွက်ချက်ရန် Levenhhtein function ကိုသုံးပါ။ နောက်ဆုံးတွင်အလားတူစကားလုံးများကိုရွေးချယ်ပါ။
အချို့ဖြစ်ရပ်များတွင်သင်သည်အခြေခံပုံစံအမျိုးမျိုးကိုပုံမှန်အသုံးအနှုန်းများဖြင့်ပထမအကြိမ်လိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်လိုပြီး Levenhhtein မှတစ်ဆင့်ပိုမိုတိကျသောကိုက်ညီမှုကိုပြုလုပ်လိုပေမည်။ ဥပမာအားဖြင့်အသုံးပြုသူသည်ကြမ်းတမ်းသောပုံစံ (သို့မဟုတ်နောက်ဆက်သို့မဟုတ်နောက်ဆက်အဖြစ်) သို့ဝင်လျှင်အလားအလာရှိသောပွဲများကိုစစ်ထုတ်ရန်ပုံမှန်အသုံးအနှုန်းများကိုသုံးနိုင်သည်။ ထို့နောက်အလားတူရလဒ်များကိုရှာဖွေရန် Levenhtein ကို သုံးနိုင်သည်။
<span><span><span class="hljs-variable">$words</span></span><span> = [</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"orange"</span></span><span>, </span><span><span class="hljs-string">"grape"</span></span><span>, </span><span><span class="hljs-string">"kiwi"</span></span><span>];
</span><span><span class="hljs-variable">$user_input</span></span><span> = </span><span><span class="hljs-string">"applw"</span></span><span>; </span><span><span class="hljs-comment">// အသုံးပြုသူမှထည့်သွင်း fuzzy စကားများ</span></span><span>
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"/^ap/"</span></span><span>; </span><span><span class="hljs-comment">// ပုံမှန်အသုံးအနှုန်းများ,နှင့်ကိုက်ညီ "ap" စသောစကားလုံး</span></span><span>
</span><span><span class="hljs-comment">// ပုံစံနှင့်ကိုက်ညီသောမှန်မှန် filter ကိုသုံးပါ</span></span><span>
</span><span><span class="hljs-variable">$matches</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$words</span></span><span>);
</span><span><span class="hljs-variable">$closest_match</span></span><span> = </span><span><span class="hljs-string">""</span></span><span>;
</span><span><span class="hljs-variable">$min_distance</span></span><span> = PHP_INT_MAX;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$matches</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$match</span></span><span>) {
</span><span><span class="hljs-variable">$distance</span></span><span> = </span><span><span class="hljs-title function_ invoke__">levenshtein</span></span><span>(</span><span><span class="hljs-variable">$user_input</span></span><span>, </span><span><span class="hljs-variable">$match</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$distance</span></span><span> < </span><span><span class="hljs-variable">$min_distance</span></span><span>) {
</span><span><span class="hljs-variable">$min_distance</span></span><span> = </span><span><span class="hljs-variable">$distance</span></span><span>;
</span><span><span class="hljs-variable">$closest_match</span></span><span> = </span><span><span class="hljs-variable">$match</span></span><span>;
}
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အလားတူစကားများမှာ: <span class="hljs-subst">$closest_match</span></span></span><span>";
</span></span>
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် "AP" နှင့်ပုံမှန်စကားရပ်များဖြင့်စတင်သောစကားလုံးများအားလုံးကိုပထမ ဦး ဆုံးထုတ်ဖော်ပြောဆိုကာအလားတူစကားများကိုထပ်မံရှာဖွေရန် Levenhtein ကို အသုံးပြုပါ။ ပုံမှန်အသုံးအနှုန်းများမှတစ်ဆင့်မလိုအပ်သောရွေးချယ်စရာများကဲ့သို့သောကိုက်ညီမှုရှိသောအခြေအနေများ (prefixes များ, နောက်ဆက်တွဲဇာတ်ကောင်များကဲ့သို့သော) ကိုက်ညီသည့်အခြေအနေများနှင့်ကိုက်ညီသည့်အခြေအနေများသိသည့်အခါဤချဉ်းကပ်မှုသည်အထူးသဖြင့်အသုံးဝင်သည်။
ကိုက်ညီမှုရှိသောတိကျမှုတိုးတက်စေရန်အတွက် ပုံမှန်အသုံးအနှုန်းများမှတစ်ဆင့်အချို့သောအခြေအနေများနှင့် ကိုက်ညီ သောကြိုးများကိုကြိုတင်ထုတ်ယူနိုင်ပြီး,
စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း - အကယ်. သင်၏ Dataset သည်ကြီးမားလွန်းပါကပုံမှန်အသုံးအနှုန်းများဖြင့်စစ်ထုတ်ခြင်းများကိုပုံမှန်အသုံးအနှုန်းများအားလုံးတွင် 0 န်ဆောင်မှု ဓလေ့ထုံးစံများကိုရှောင်ရှားနိုင်သည်။
ပြောင်းလွယ်ပြင်လွယ် - ပုံမှန်အသုံးအနှုန်းများသည်အချို့သောတိကျသောဇာတ်ကောင်အစုံနှင့်ကိုက်ညီသော complettte sensitivity ကဲ့သို့သောရှုပ်ထွေးသောပုံစံကိုက်ညီမှုကိုကိုင်တွယ် နိုင်သည် ။
Levenhhtein နှင့်ပုံမှန်အသုံးအနှုန်းများသည်သီးခြားကိရိယာနှစ်ခုဖြစ်ပုံရသော်လည်း၎င်းတို့၏ပေါင်းစပ်မှုသည် PHP ကိုအမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်ပိုမိုအားကောင်းတဲ့ fuzzy ကိုက်ညီသောစွမ်းရည်များဖြင့်ပေးနိုင်သည်။ ပုံမှန်အသုံးအနှုန်းများကိုပထမ ဦး စွာစစ်ထုတ်ခြင်းအားဖြင့် Levenhtein ကို တိကျမှန်ကန်စွာတွက်ချက်ခြင်းဖြင့်ကိုက်ညီမှုနှင့်ကိုက်ညီမှု၏တိကျမှုနှင့်ထိရောက်မှုကိုထိထိရောက်ရောက်တိုးတက်စေနိုင်သည်။ လိုအပ်ချက်များပေါ် မူတည်. တိကျသော application တစ်ခုနှင့်တွေ့ဆုံရန်ဤနှစ်ခုပေါင်းစပ်မှုကိုသင်ပြောင်းလွယ်ပြင်လွယ်ရွေးချယ်နိုင်သည်။