Skip to content

alexanderbeatson/bursyl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

ဗာစလ်

ဗာစလ်သည် စီစဥ်ပုံရှာမှု (regular expression) ကို အခြေခံ အသုံးပြုထားသော ဝဏ္ဏ ထုတ်ယူသည့် အဆင့်လိုက်လုပ်ဆောင်ခြင်း (algorithm) တစ်ခု ဖြစ်သည်။ ဗာစလ်သည် ခေတ်သစ် ဗဟုဝဏ္ဏ အသုံးများ (ဥပမာ - မန်မ်၊ မော်ဝ်၊ လမ်းစ်) ကိုပါ ထုတ်ယူနိုင်ရန် စီစဥ်ထားပြီး ယူနီကုဒ်ရေးနည်း ကွန်ပျူတာသဒ္ဒါအတိုင်း ရှာဖွေသည့် စီစဥ်ပုံရှာမှု ပြုလုပ်ထားသည့်အတွက် ခေတ်သစ် ရေးဟန်များ ဝဏ္ဏ ထုတ်ယူရန်အတွက် လွန်စွာ အသုံးဝင်သည်။ ပရိုဂရမ်မင်းဘာသာရပ်တိုင်းတွင် လွယ်ကူစွာအသုံးပြုနိုင်ရန် ရည်ရွယ်၍ ရေးသားထားသော အဆင့်လိုက်လုပ်ဆောင်ခြင်း တစ်ခုဖြစ်ပြီး ယူနီကုဒ်လုပ်ငန်းစု၏ စီစဥ်ပုံရှာမှု စံစနစ်အား လိုက်နာထားသည်။

ဝဏ္ဏ ထုတ်ယူခြင်းသည် လိုအပ်ချက်အလိုက် တစ်ချိန်နှင့် တစ်ချိန် တူညီနိုင်မည် မဟုတ်ပါ။ တစ်ချို့သော လုပ်ငန်းများတွင် အသံထွက်အတိုင်း ဖြတ်ရန် လိုအပ်နိုင်သကဲ့သို့ တစ်ချို့သော လုပ်ငန်းများတွင် အက္ခရာပေါ်လိုက်၍ ဖြတ်တောက်ရန် လိုအပ်နိုင်ပါသည်။ အသံထွက်အတိုင်းဖြတ်စေကာမူ ဝဏ္ဏဖြတ်ရန် နည်းလမ်းများစွာ ရှိနိုင်သေးသည်။ ဥပမာ - မော်ဝ်ဝေ ကို ဖြတ်တောက်သောအခါ ["မော်ဝ်", "ဝေ"] ဟု လိုအပ်နိုင်သကဲ့သို့ ["မော်", "ဝ်", "ဝေ"] ဟု လိုအပ်နိုင်သည့် အခြေအနေများလဲရှိနိုင်သည်။

ဗာစလ်၏ စီစဥ်ပုံရှာမှုသည်

  • ခေတ်သစ်အသုံး အသံထွက်အစု တစ်ခုအား ဝဏ္ဏတစ်ခုအဖြစ်ယူသည် (ဥပမာ - မော်ဝ် အား ဝဏ္ဏ တစ်ခုအဖြစ် သတ်မှတ်သည်)
  • ကွန်ပျူတာသဒ္ဒါအစုအမှားများကို လက်မခံပါ (ဥပမာ - မျြန်မာ ဆိုပါက ["မျ", "မာ"] ဟုသာ သတ်မှတ်သည်)
  • ကွန်ပျူတာသဒ္ဒါအစီအစဥ်အမှားများကို လက်မခံပါ (ဥပမာ - မွြန်စု ဆိုပါက ["မွ", "စု"] ဟုသာ သတ်မှတ်သည်)
  • ယူနီကုဒ် စံစနစ်ကိုသာ လက်ခံနိုင်ပြီး ဇော်ဂျီရေးဟန်တွင် အလုပ်မလုပ်ပါ
  • အစုလိုက် စီစဥ်ပုံရှာမှုကို အသုံးပြုထားသဖြင့် အသုံးပြုရမည့် ပုံစံကွာခြားမှုရှိနိုင်သည် (ပရိုဂရမ်မင်းဘာသာရပ် ဥပမာတွင်ရှု့)
  • စွမ်းဆောင်ရည် အတွက် အတတ်နိုင်ဆုံး ဆီလျော်စေရန် ရေးသားထားသည် (စွမ်းဆောင်ရည် စမ်းသပ်မှုတွင်ရှု့)

ပရိုဂရမ်မင်းဘာသာရပ် အသုံးပြုပုံ

Python ပရိုဂရမ်မင်းတွင် အသုံးပြုရန် re ပြင်ပဆော့ဖ်ဝဲကို လိုအပ်ပြီး အစုလိုက် စီစဥ်ပုံရှာမှု၏ အစုများကို ပြန်လည်စုပေါင်းရန် လုပ်ဆောင်ရသည်။

import re
pattern = bursyl.regex
text = "စမ်းသပ်မှု"
group_syl = re.findall(pattern, text)
print([item for sublist in group_syl for item in sublist if item])

R ပရိုဂရမ်မင်းတွင် အသုံးပြုရန် stringr ပြင်ပဆော့ဖ်ဝဲကို လိုအပ်သည်

library (stringr)
pattern = bursyl.regex
text = "စမ်းသပ်မှု"
print(str_extract_all(text, pattern)[[1]])

စွမ်းဆောင်ရည် စမ်းသပ်မှု

စွမ်းဆောင်ရည် စမ်းသပ်မှုကို R ပရိုဂရမ်မင်း ဗားရှင်း 4.3.3 ပေါ်တွင် ပြင်ပဆော့ဖ်ဝဲ microbenchmark ဖြင့်ပြုလုပ်ထားခြင်းဖြစ်ပြီး ကွန်ပျူတာစွမ်းဆောင်ရည်နှင့် အသုံးပြုသည့် ဆောဖ်ဝဲများအပေါ်လိုက်၍ ကွဲပြားမှုရှိနိုင်သည်။

အသတ် "်" အစု စီစဥ်ပုံရှာမှု ကြာချိန် စမ်းသပ်ခြင်း (ဝဏ္ဏ ၁ ခု)

median 42.95 microsecond

အသတ် "်" မပါသော အစု စီစဥ်ပုံရှာမှု ကြာချိန် စမ်းသပ်ခြင်း (ဝဏ္ဏ ၁ ခု)

median 43.2 microsecond

ဗမာဘာသာ စီစဥ်ပုံရှာမှု အစု ၄ စုလုံးအား ကြာချိန် စမ်းသပ်ခြင်း (ဝဏ္ဏ ၄ ခု)

median 46 microsecond


ဗာစလ်သည် မြန်မာဘာသာစကားများ တိုးတက်ရေးကို အလေးထား၍ အကန့်အသတ်မဲ့ ပွင့်လင်းအရင်းအမြစ်ဆော့ဖ်ဝဲ အသုံးပြုခွင့် MIT License အောက်တွင် ထားရှိသည်။ ကိုးကားမှုပြုလုပ်ရန်အတွက် အောက်ပါပုံစံကို ထည့်သွင်းပေးပါ။

title: bursyl
authors:
  - given-names: Alexander
    family-names: Beatson
    orcid: https://orcid.org/0000-0002-1829-5965
date-released: 11.07.2024
url: https://github.com/alexanderbeatson/bursyl
DOI: 10.5281/zenodo.12721865
license: MIT

ဗာစလ်သည် လိုအပ်ချက်များ (သို့) ပိုမိုကောင်းမွန်ရန် လုပ်ဆောင်ရန်များ ရှိနိုင်သေးသည်။ တွေ့ရှိချက်များကို ကိစ္စရပ်များကဏ္ဍ တွင် တင်သွင်းနိုင်သည်။

About

Regex-based Burmese phonetic syllabification algorithm

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published