Search Function Logic for Myanmar Language

မြန်မာစာကအားလုံးသိတဲ့အတိုင်း Syllable-based language ဖြစ်ပါတယ်။ ဥပမာ “မြန်မာနိုင်ငံ” ဆို syllable ၄ လုံးရှိပါတယ်။ ကွန်ပျူတာကအလုပ်လုပ်တဲ့နေရာမှာ characterတစ်ခုချင်းစီရဲ့code pointနဲ့သာအလုပ်လုပ်တဲ့အတွက် search လုပ်တဲ့နေရာမှာ အခက်အခဲလေးတွေနည်းနည်းရှိပါတယ်။ “တော”ဆိုတဲ့စကားလုံးကိုရှာရင် တောင်, တော့, တော် အစရှိတာတွေပါ resultမှာပါလာတာကိုတွေ့ရမှာဖြစ်ပါတယ်။ မြန်မာစာအတွက် search function logicလေးကိုကျွန်တော်လေ့လာဖူး၊လုပ်ဖူး၊ရေးဖူးသလောက်ဝေမျှပေးလိုက်ပါတယ်။ လွဲနေတာ၊လိုအပ်တာများရှိရင်လည်း ဝိုင်းဝန်းထောက်ပြပေးပါလို့ မေတ္တာရပ်ခံပါတယ်။

ပထမဆုံး ကိုယ်ရှာမဲ့စကားလုံးကို Database, Sentence, Paragraph တစ်ခုခုထဲမှာတွေ့ပြီဆိုပါစို့။ အဲဒီတွေ့တဲ့နေရာကိုမှတ်ပြီး နောက်character (next character 1လို့ဆိုကြပါစို့) ကို consonant (ဗျည်း က-ဠ) ဟုတ်မဟုတ် အရင်စစ်ရပါမယ်။ သရမဟုတ်ဘဲ အောက်မြင့်, ဝစ္စနှစ်လုံးပေါက်, ရှေးထိုး, သေးသေးတင် စတဲ့Dependent Vowel နဲ့ Various Signတွေသာဖြစ်ခဲ့ရင် အပေါ်ကဥပမာလို resultမှားသွားမှာဖြစ်တဲ့အတွက် ယူလို့မရတော့ပါဘူး။ skip လုပ်ရပါမယ်။ နောက်character က ဗျည်းဖြစ်နေပြီဆိုရင်တောင် ချက်ဇ်တို့ဝေးလ်တို့လို စာလုံးမျိုးတွေအတွက် မမှားရအောင် ခုနက next character 1ရဲ့အနောက်ကcharacter (next character 2လို့သတ်မှတ်ပါမယ်) ကို အသတ်၊ VIRAMA(Killer)၊ အောက်မြင့် ဟုတ်မဟုတ်စစ်ရပါမယ်။ အဲ့ဒါတွေမဟုတ်မှသာယူလို့ရပါမယ်။

နောက်တစ်ခုက နောက်character က ဗျည်း မဟုတ်ဘဲ ဂဏန်းတွေ၊punctuationတွေ၊Englishစာတွေ၊ Independent Vowel (အ, ဤ, ဩ,ဪ အစရှိတာတွေ), နဲ့ ၌, ၍, ၏, ဿ စတာတွေ ရှိတတ်ပါတယ်။ အဲ့လိုတွေ့ပြီဆို တွေ့တဲ့နေရာရဲ့ ရှေ့character တစ်ခု (previous character)​က VIRAMA (Killer) ဟုတ်မဟုတ် စစ်ရပါမယ်။

ပါ့ဆင့်စာလုံးတွေအတွက်ဖြစ်ပါတယ်။ မဟုတ်ဘူးဆိုမှရှာနေတဲ့စာကိုတွေ့တယ်လို့ယူဆလို့ရပါမယ်။

Consonant, Vowel, Dependent Vowelအစရှိတဲ့အကြောင်းတွေသိချင်ရင် https://unicode.org/charts/PDF/U1000.pdf မှာသွားရောက်ဖတ်ရှုစေချင်ပါတယ်။​အသေးစိတ်ကိုအဲ့ဒီနေရာမှာစုံလင်စွာတွေ့ရမှာဖြစ်ပါတယ်။

P.S : ဒီစာက unicode encoding ကို အသုံးပြုထားတဲ့ မြန်မာစာတွေအတွက်သာ မှန်ကန်မှာဖြစ်ပါတယ်။

Like what you read? Give Aye Hninn Khine a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.