Sunday, June 23, 2019

Cycle2: QDC-4 & its syllabified form


My intention for cleaning the sentence ending would be to remove text fragments that looks like sentences. That arises because I adopt the definition that any text that ended in a “” to be a sentence. I’ve mentioned some of such problems in my post: Cycle2: Fixing the sentence endings. I’ll now try to clean them. A sensible approach to do that would be to determine the usual sentence endings and remove all others. To do so let’s start with the frequensies of different sentence endings.

Create dfm of sentence endings from the 20k sample of sentences partitioned into syllables.

library(quanteda)
system.time(
  senEnd.20k <- corpus(t(data.frame(lapply(x20k_syllQS, paste0, collapse = " ")))) %>%
    tokens(., what = "fasterword") %>% 
    tokens_ngrams(., n = 2, concatenator = "") %>%
    dfm(.) %>%
    dfm_select(., "\u104b$", selection = "keep", valuetype = "regex")
)  
   user  system elapsed 
  22.03    0.14   21.99 
First we look at all the sentence endings. There are 259 distinct endings.
senEnd.20k_tf <- textstat_frequency(senEnd.20k)[,1:2]
utf8::utf8_print(do.call("paste", c(sep= " - ", senEnd.20k_tf)))
  [1] "သည်။ - 15956"  "၏။ - 1589"    "တယ်။ - 532"    "ပေ။ - 312"    "ချေ။ - 296"  
  [6] "မည်။ - 288"    "ပါ။ - 208"    "ပြီ။ - 73"     "တည်း။ - 54"    "မယ်။ - 37"    
 [11] "ရ။ - 35"      "ဘူး။ - 35"     "ခြင်း။ - 34"   "ပဲ။ - 30"      "ရှိ။ - 17"     
 [16] "ခဲ့။ - 13"      "စေ။ - 12"     "နှင့်။ - 11"     "များ။ - 11"   "နည်း။ - 10"   
 [21] "ကြောင်း။ - 10" "ပေါ့။ - 10"    "စို့။ - 9"       "ကို။ - 9"       "တဲ့။ - 8"      
 [26] "ပုံ။ - 8"       "လေ။ - 8"      "ဟုတ်။ - 7"      "လား။ - 7"     "ရား။ - 7"    
 [31] "ရန်။ - 7"      "ကား။ - 7"     "လေး။ - 7"     "နိုင်။ - 6"      "လော။ - 6"    
 [36] "လဲ။ - 6"       "ရာ။ - 6"      "ထွက်။ - 6"      "လော့။ - 6"     "ဘဲ။ - 5"      
 [41] "စဉ်။ - 5"      "တာ။ - 4"      "သေး။ - 4"     "သောင်း။ - 4"   "သူ။ - 4"      
 [46] "ကြ။ - 4"      "၊။ - 4"       "မြို့။ - 4"      "ငယ်။ - 3"      "တော့။ - 3"    
 [51] "လတ္တံ့။ - 3"     "အံ့။ - 3"       "ဝေ။ - 3"      "သာ။ - 3"      "တတ်။ - 3"     
 [56] "ယော။ - 3"     "ရေး။ - 3"     "ပြန်။ - 3"     "နော်။ - 3"     "ခု။ - 3"      
 [61] "မြတ်။ - 3"     "ဆောင်။ - 3"    "နဲ့။ - 3"       "ပင်။ - 3"      "ထိ။ - 2"      
 [66] "လင့်။ - 2"      "ကောင်း။ - 2"   "ဆာ။ - 2"      "စမ်း။ - 2"     "မြစ်။ - 2"    
 [71] "စု။ - 2"       "ပ။ - 2"       "နံ။ - 2"       "ဦး။ - 2"      "ပေါင်း။ - 2"  
 [76] "ပြောင်း။ - 2"  "ဒိ။ - 2"       "ကျောင်း။ - 2"  "ကြီး။ - 2"     "ဉာဏ်။ - 2"    
 [81] "ရောက်။ - 2"    "ဆီ။ - 2"       "ကုန်။ - 2"      "ညျ။ - 2"      "မျိုး။ - 2"    
 [86] "စေ့။ - 2"      "ဘုံ။ - 2"       "တီ။ - 2"       "လျက်။ - 2"     "တိုင်း။ - 2"    
 [91] "နှုန်း။ - 1"     "အပ်။ - 1"      "ညာ။ - 1"      "ချက်။ - 1"     "ဗျ။ - 1"     
 [96] "သည့်။ - 1"      "ဘော။ - 1"     "ဒါန်း။ - 1"    "ပြီး။ - 1"     "မိုင်း။ - 1"    
[101] "နှစ်။ - 1"      "ဇံ။ - 1"       "မှတ်။ - 1"      "နေ။ - 1"      "မြင်။ - 1"    
[106] "ခါ။ - 1"      "ရီ။ - 1"       "လို။ - 1"       "လှစ်။ - 1"      "တင့်။ - 1"     
[111] "တူ။ - 1"       "တံ့။ - 1"       "တိ။ - 1"       "ဟာ။ - 1"      "ပဏ္ဍိုတ်။ - 1"   
[116] "တမ်း။ - 1"     "သေည်။ - 1"     "ခွင့်။ - 1"      "နား။ - 1"     "ပေါင်။ - 1"   
[121] "မှု။ - 1"       "လျှား။ - 1"    "ထိံ။ - 1"       "ဆယ်။ - 1"      "ဝင်။ - 1"     
[126] "နိုင်၏်။ - 1"     "သင့်။ - 1"      "လှာ။ - 1"      "ကြူး။ - 1"     "စင်။ - 1"     
[131] "လက်။ - 1"      "နန္ဒီ။ - 1"     "ခြား။ - 1"    "ရူး။ - 1"      "ဖြင့်။ - 1"    
[136] "သား။ - 1"     "ပြု။ - 1"      "တို။ - 1"       "ကိုင်း။ - 1"     "အဗ္ဘုဂ္ဂစ္ဆိ။ - 1"
[141] "ဖွယ်။ - 1"      "ဖိုး။ - 1"      "ပြူး။ - 1"     "ထင်။ - 1"      "လွမ်း။ - 1"    
[146] "ချဲ့။ - 1"      "ပိမ့်။ - 1"      "ယွှယ့်။ - 1"      "နှင်း။ - 1"     "လှ။ - 1"      
[151] "ယောက်။ - 1"    "တက်။ - 1"      "နိုင်း။ - 1"     "လာ။ - 1"      "ထီး။ - 1"     
[156] "ဖြောဝ်။ - 1"   "ယှဉ်။ - 1"      "ရွက်။ - 1"      "လျား။ - 1"    "ရည်။ - 1"     
[161] "ခံ။ - 1"       "ယာ။ - 1"      "မင်း။ - 1"     "ဖုံး။ - 1"      "လင်း။ - 1"    
[166] "ချဉ်။ - 1"     "ညီ။ - 1"       "ထောင်။ - 1"    "နစ္ပါ။ - 1"    "ထိုက်။ - 1"     
[171] "တင်း။ - 1"     "တိုက်။ - 1"      "ယူ။ - 1"       "ဝဲ။ - 1"       "ဘိ။ - 1"      
[176] "ဝန္တိ။ - 1"     "ခဲ။ - 1"       "မန္အားျ။ - 1"  "လှိုင်း။ - 1"     "မိုင်။ - 1"     
[181] "ရတ္တိံ။ - 1"     "ခွန်း။ - 1"     "နာ။ - 1"      "နယ်။ - 1"      "နှာ။ - 1"     
[186] "တု။ - 1"       "ထိန်။ - 1"      "မြှင့်။ - 1"     "ထာ။ - 1"      "စား။ - 1"    
[191] "့။ - 1"        "နစ်။ - 1"      "ရုဏ်း။ - 1"     "ကျောက်။ - 1"   "နိုး။ - 1"     
[196] "နှိုက်။ - 1"      "မံ။ - 1"       "စွာ။ - 1"      "သို့။ - 1"       "တွဲ။ - 1"      
[201] "မျဉ်။ - 1"     "ခန္ဓာ။ - 1"    "ဒိုင်း။ - 1"     "ကြမ်း။ - 1"    "ကြောဝ်။ - 1"  
[206] "ခတ်။ - 1"      "ခေါက်။ - 1"    "ငှေါဝ်။ - 1"    "စာ။ - 1"      "ညှိုး။ - 1"     
[211] "လွယ်။ - 1"      "ဓာတ်။ - 1"     "တွေ။ - 1"      "ကွယ်။ - 1"      "သွေး။ - 1"    
[216] "ခန့်။ - 1"      "လုံး။ - 1"      "ထား။ - 1"     "ိ။ - 1"        "ဟန်။ - 1"     
[221] "ပသည္။ - 1"     "စပ်။ - 1"      "မြောက်။ - 1"   "မှာ။ - 1"      "ချိန်။ - 1"    
[226] "ကြိုက်။ - 1"     "သွင်။ - 1"      "ဖျား။ - 1"    "လက္ခန်။ - 1"    "ရိုင်း။ - 1"    
[231] "ထက်။ - 1"      "ရော။ - 1"     "မိ။ - 1"       "ဘို့။ - 1"       "သက်။ - 1"     
[236] "ဗျာ။ - 1"     "ညှား။ - 1"     "ပေါ်။ - 1"     "စွ။ - 1"       "ဗျာယ်။ - 1"   
[241] "ဖြစ်။ - 1"     "ရွား။ - 1"     "သွား။ - 1"     "ပြတ်။ - 1"     "ပါး။ - 1"    
[246] "တောင်း။ - 1"   "ရက်။ - 1"      "ဒုက္ခံ။ - 1"     "မင်။ - 1"      "ဏံ။ - 1"      
[251] "တော်။ - 1"     "အား။ - 1"     "ဝယ်။ - 1"      "ကျပ်။ - 1"     "ပါ့။ - 1"     
[256] "တော။ - 1"     "ခြည်း။ - 1"    "လွန္အက်ိဳး။ - 1"   "ရင်။ - 1"     
In the following screenshot, I highlighted those endings which I think could be taken as normal in the given context.
sum(senEnd.20k_tf[c(1:17,20:25,27:29,31:37,39:40,42:43,46,49,51:52,54:55,57,60,63:64,66,72,75),2])/20000*100
[1] 98.5
My highlighted list for inclusion covers more than 98% so I think I could ignore the rest. Then I think I should inspect some of those in this range to see if I’ve made silly mistakes. I know that it will not be hundred percent correct, unless I do that exhaustively. May be I could leave it to you.

Checking some suspect items

My preliminary guess about excluding item-18 in the above list was proved to be incorrect! So I’ll have to put it back in.
cat(grep("နှင့်။$",x20k_itN_Sen.5,value = T))
…..တစ်နေ့ အလ္လာဟ်အသျှင်မြတ်ရှေ့တော်မှောက်၌ စာရင်းအင်းအစစ်ခံရမည်ဖြစ်၍ ငါကိုယ်တော် မရှိတော့သည့်နောက် လမ်းမှန်တရားမှ မကွေကွင်းကြလေနှင့်။ မူဝါဒများ၏ အခြေခံ သဘောတရား ကို ထည့်သွင်းစဉ်းစားခြင်း မပြုဘဲ မူဝါဒများ၏ စည်းကမ်းကို အလွန်အကျူး အဓိပ္ပာယ်ကောက်ယူခြင်း မပြုပါနှင့်။ ထို့ပြင် သင်အိမ်သို့ ရောက်သည်နှင့် ခရီးဆောင်အိတ်ကို ချက်ချင်းမဖွင့်ပါနှင့်။ ရိုင်းစိုင်းနီးကပ်၊ မကိုင်းညွတ်ဘဲ၊ မတ်တတ်ထိုး၍၊ မသွားနှင့်။ လက်နက် ကိရိယာ အပ်တော်မူသမျှ အပျက်အစီး အကျိုးအပဲ့ မရှိစေနှင့်။  ထမင်းနှင့်ဟင်းကို လူမြင်မကောင်းအောင် ရော၍မနယ်နှင့်။ ပြင်ဆင်ပြောင်းလဲလိုသည့် အကြောင်းရင်းနှင့် ဖော်ပြချက်ကို ထည့်သွင်းရေးသားရန် မမေ့ပါနှင့်။  အဆိုပါဇာတ်ကြောင်းပြောကြားခဲ့သည်ဟုသူမေးတဲ့"ဘာအတွက်လဲ?" အစြန္းကပြောပါတယ်၊"ဒါဟာရှိပါတယ်ဆာလံဒါဝိဒ်၏အဆိုပါတွေ့ရှိရ၏၊အရှင်ယေရှု၏၊အစာအာဗြဟံ၏၊ထိုဥပဒေများအကြောင်းကိုရှင်းပြမည်ဖြစ်ကြောင်းနှင့်။ မှိုင်းညို့ညို့နှင့် ဒို့နေရာမှာ သီတာငယ်မှ တရစ်၊ လေးက၊ွန်း လယ်ခေါင် မြတန်ဆောင်မှာ တောင်တဆစ်နှင့် ကသစ်ကယ်မှ နီလွင်၊ ပင်လယ်ပန်းနှင့်နန်းကြီးရှင်ကို နှင်နှင်မမှတ်ကြပါနှင့်။ ကွန်းပြာသာဒ်ကဲပြင်၊ ယွန်းတတ်ထွေ နတ်လှေကားနှင့်၊ ရှေလျားစွာ ဘုရားလာတဲ့ လမ်းတွင်မှ၊ စောင်းတန်းသွယ်ဆန်းကြယ်တဲ့ စမုတ်တွေတို့၊ အတန်တန် ကြံဖန်၍လုပ်ရာက၊ နံချုပ်ကာ ဝညာဉ်လျောရှာနှင့်၊ မယ်စော ကြင်သူမိက၊ ဒုပီကာ၊ ကြာကလပ်ကယ်နှင့်။ ရပ်သူရွာသား၊ သူကောင်းများ၏၊ နားမှာမဆန့်၊ မခန့်မလေး၊ သူမုန်းဆေးလျှင်၊ ဆဲရေးညစ်ညမ်း၊ ကိုယ်လက်နွမ်းအောင်၊ အသွမ်းမကျင့်ကြလေနှင့်။
This one shows that exclusion of item-19 seems correct.
cat(grep("များ။$",x20k_itN_Sen.5,value = T))
ပုံစံ-တြိဂံဟူသည် မျဉ်းဖြောင့်သုံးခု အနားသုံးဖက်အဖြစ် တည်ရှိသော ပုံကိုခေါ်သည်၊# သီအိုရမ်များ။  မိမိကိုယ်တိုင်နှင့် ပတ်သက်ဆက်နွယ်မှု …..မိမိကိုယ်တိုင် ပြုကျင့်မည့် ကိစ္စများ။  ထွန်းဖောင်ဒေးရှင်းဆု (မြန်မာ့ရုပ်ရှင်ငွေကြယ်ပွင့်တို့၏ ရုပ်ပုံလွှာများ)# ဗန်းမော်မြို့ ရွှေကျီးနာဘုရား သမိုင်း (၁၉၉၄)# သမိုင်းဖြစ်စဉ်ထဲက မင်းဆွေမင်းမျိုးတို့၏ ရုပ်ပုံလွှာများ# စာပေအနုပညာရှင်များ# ဗန်မော်မြို့မှ ပေါ်ထွန်းခဲ့သည့် ကျွန်းဆွယ်အားကစား ချန်ပီယံများ# တစေ့တစောင်း ပုံရိပ်များ။ တစ်ခုချင်းစီကိုကဒ်ကိုတုံ့ပြန်, download, အပိတ်ပင်တားဆီးမှု, ဒါမှမဟုတ်ရောဂါအတွက်ဒီပဏာမခြေလှမ်းအောင်မြင်ရန်ခုနဈပါးကွဲပြားခြားနားသောနည်းလမ်းများ။ ဥပမာ- ဆေး(သုတ်ဆေး)စက်ရုံ၊ ပလပ်စတစ် စက်ရုံ၊ စိုက်ပျိုးရေးနှင့် ဆိုင်သော ပိုးမွှားသတ် ပစ္စည်းထုတ်လုပ်မှုလုပ်ငန်းများ။ အဘိဓမ္မာ ကျမ်းလာ အများသုံးထင်ရှား သိလွယ်သော ဓာတ်ကြီးများ။ ထိုကြောင့် ၁/၂+၁/၄=(၁/၄+၁/၄)+ ၁/၄=၃/၄နှစ်လီစိတ်၊ လေးလီစိတ်ဂဏန်းများနှင့် စပ်လျဉ်းသည့် ပုစ္ဆာများ။ Kelling၊သို့သော်၊ဖော်ပြထားသည့်ရဲတပ်ဖွဲ့ကစားသည့်"အရေးကြီး၊ဟိုပင်၊ခန်းကဏ္ဍ"အတွက်ကျဆင်းရာဇဝတ်မှုနှုန်းထားများ။ ဥပမာ နှိုင်းယှဉ်ကြည့်လျှင် တစ်ဦးတစ်ယောက်ချင်း လွတ်လပ်မှုရှိသော အီတလီ သို့မဟုတ် မူဆလင်မွတ်စလင်မဟုတ်သည့် ဘာသာဝင်များ ကို တရားဝင် အသက်မွေး နေထိုင်နိုင်သော “တစ်ဦးတစ်ယောက်ချင်းစီကို ကာကွယ်ထားခြင်း” ဟုအဓိပ္ပာယ်ရသည့် dhimmis ၏မိရိုးဖလာမွတ်စလင်များ။ ဒေါက်တာမောင်မောင်၊ မြန်မာ့နိုင်ငံရေးခရီးနှင့် ဗိုလ်ချုပ်ကြီးနေဝင်းနှင့် သိန်းဖေမြင့်၊ တော်လှန်ရေးကာလ နိုင်ငံရေးအတွေ့အကြုံများ။ ခရစ်ယာန်များ၏လူနည်းစုများ (အများအားဖြင့်ရောမကက်သလစ်) နှင့်အခြားအုပ်စုများ။
So is this one for excluding item-26.
cat(grep("ပုံ။$",x20k_itN_Sen.5,value = T))
File:NOoMg.jpgthumbစာရေးဆရာ ဒါရိုက်တာ ဆရာ ဦဝင်းဖေ (ဝဲဲ) နှင့် စာရေး ဆရာ ဉာဏ်ဦးမောင် (ခေါ်) အရှင်ဉာဏိက (ယာ) တို့ကို ၂၀၀၈ ခုနှစ်၊ နိုဝင်ဘာလ ၈ ရက်နေ့၊ အမေရိကန် ပြည်ထောင်စု၊ ဆန်ဖရန်စ္စကိုမြို့ (၉) ကြိမ်မြောက် စာပေဟောပြောပွဲတွင် အတူတကွ တွေ့မြင်ရပုံ။ မင်္ဂလာမောင်မယ်ရုပ်စုံ၊ တွဲ ၁၄၊ မှတ် ၅ (မေ ၂၀၀၂) စာ ၃၀၊ ပုံ။ မင်္ဂလာမောင်မယ်ရုပ်စုံ၊ တွဲ ၁၄၊ မှတ် ၅ (မေ ၂၀၀၂) စာ ၃၁၊ ပုံ။ မင်္ဂလာမောင်မယ်ရုပ်စုံ၊ တွဲ ၁၄၊ မှတ် ၆ (ဇွန် ၂၀၀၂) စာ ၂၅၊ ပုံ။ မင်္ဂလာမောင်မယ်ရုပ်စုံ၊ တွဲ ၁၂၊ မှတ် ၇ (ဇူ ၂၀၀၀) စာ-၂၅၊ ပုံ။ မင်္ဂလာမောင်မယ်ရုပ်စုံ၊ တွဲ ၁၁၊ မှတ် ၈ (၁၉၉၉-ဩ) စာ ၂၈-၂၉၊ ပုံ။ မြတ်မင်္ဂလာစာစောင်၊ တွဲ ၁၃၊ မှတ် ၈ (ဖေ ၁၉၉၉) စာ ၄၆-၅၀၊ ပုံ။ မင်္ဂလာမောင်မယ်ရုပ်စုံ၊ တွဲ ၁၃၊ မှတ် ၂၊ (ဖေ ၂၀၀၀) စာ ၂၁-၂၂၊ ပုံ။
Item-30 needs to be included.
cat(grep("ရား။$",x20k_itN_Sen.5,value = T))
ဤမေးခွန်းနှင့်ပတ်သက်၍ တပည့်တော်အရှည်ဖြေကြားရမည်ဖြစ်ပါသည်ဘုရား။ တပည့်တော်ရို့နှင့်တကွ နိုင်ငံခြားသုတေသီရို့ လက်ခံထားပါသည်ဘုရား။ တပည့်တော် သင်္ဂါယနာတင်ခြင်းဆိုင်ရာ ရခိုင်ပြည်သို့စီးဆင်းလာသော ရီစီးကြောင်းကိုရာ လျှောက်ထားပါသည်ဘုရား။ ဆရာတော်ဘုရားကို နောက်ဆုံး ဖူးမြော်ကန်တော့ကြောင်းပါဘုရား။ သမိုင်းအစောင်စောင်၌လည်း မဟာမုနိဘုရားကို စန္ဒသူရိယမင်းသွန်းလုပ်ကြောင်း တညီတညွတ်တည်းဖော်ပြထားပါသည်ဘုရား။ တင်ရသောအကြောင်းရင်း၊ တင်ခဲ့သောနေရာနှင့်တိုင်းပြည်၊ တင်ရာ၌အားပေးအားမြှောက်ပေးသောဘုရင်၊ တင်ရာ၌ပါဝင်သောရဟန္တာများ၊ ဦးဆောင်သောရဟန္တာ၊ ရည်ညွှန်းသောဂါထာပုဒ်၊ ပါဠိတော်စသည်အားဖြင့် အင်္ဂါဆယ်တန်နှင့်ပြီးအောင်တင်ခဲ့ကြောင်း ဖတ်ရပါသည်ဘုရား။ ဆိတ်ကွယ်ရာ၌ပင် မကောင်းမှုကို ပြုတော်မမူသော မြတ်စွာဘုရား။
About the sentence ending “ပ။” (item-71). I’m sure it is a legitimate sentence ending. In my earlier post I noted that one sentence with it seems to be a typo, though. I better leave it out in the present context.
Out of curiosity I checked for “ကုန်။” (item-83).
cat(grep("ကုန်။$",x20k_itN_Sen.5,value = T))
ဤသည်ကို နတ်အပေါင်းတို့က ဝမ်းမြောက်ဝမ်းသာဖြင့် သာဓုခေါ်ကြပါကုန်။ ဘ အုပ်စု(က)--------------မကွေး၊ ဧရာ၀တီ၊ မွန်၊ ရှမ်း(တောင်)၊ ရန်ကုန်။
Well, that’s the problem, you can see that there is the expected sentence, but also an unexpected one!
So I’ll remove that item-83 also. But having realize that I couldn’t eliminate errors like this 100% this way, I’ll do just this much of cleaning. And let you go on cleaning if you wish. Or just when you retrieve the sentences for your use and found errors clean them as they are found.

Sentence endings to keep

So, the sentence ending to keep will be:
setk <- senEnd.20k_tf[c(1:18,20:25,27:30,31:37,39:40,42:43,46,49,51:52,54:55,57,60,63:64,66,75), 1]
str(setk)
Classes ‘frequency’, ‘textstat’ and 'data.frame':   51 obs. of  1 variable:
 $ feature: chr  "<U+101E><U+100A><U+103A><U+104B>" "<U+104F><U+104B>" "<U+1010><U+101A><U+103A><U+104B>" "<U+1015><U+1031><U+104B>" ...
setk$feature
 [1] "သည\u103a။"          "၏။"                 "တယ\u103a။"          "ပေ။"               
 [5] "ခ\u103bေ။"          "မည\u103a။"          "ပ\u102b။"           "ပ\u103cီ။"          
 [9] "တည\u103aး။"         "မယ\u103a။"          "ရ။"                 "ဘူး။"               
[13] "ခ\u103cင\u103aး။"   "ပဲ။"                 "ရ\u103eိ။"           "ခဲ့။"                
[17] "စေ။"                "န\u103eင့\u103a။"    "နည\u103aး။"         "က\u103cောင\u103aး။"
[21] "ပေ\u102b့။"          "စို့။"                 "ကို။"                 "တဲ့။"                
[25] "လေ။"                "ဟုတ\u103a။"          "လား။"               "ရား။"              
[29] "ရန\u103a။"          "ကား။"               "လေး။"               "နိုင\u103a။"         
[33] "လော။"               "လဲ။"                 "ရာ။"                "လော့။"              
[37] "ဘဲ။"                 "တာ။"                "သေး။"               "က\u103c။"          
[41] "ငယ\u103a။"          "လတ္တံ့။"               "အံ့။"                 "သာ။"               
[45] "တတ\u103a။"          "ရေး။"               "ခု။"                 "နဲ့။"                
[49] "ပင\u103a။"          "လင့\u103a။"          "ပေ\u102bင\u103aး။" 
Which is also the regex pattern for matching.

Select sentences to keep

Keep the sentences associated with the above endings and remove the rest from our 20K sample sentences in “x20k_itN_sen.5”.
system.time(
  x20k_itN_Sen.6 <- grep(paste(setk$feature,collapse="|"), x20k_itN_Sen.5, value=TRUE)
)
   user  system elapsed 
   1.47    0.00    1.51 
length(x20k_itN_Sen.6)
[1] 19717
cat(x20k_itN_Sen.6[c(1,19717)])
ဂူဂဲ၏ သုညစီမံကိန်း(Project Zero) လေ့လာရှာဖွေသူဖြစ်သည့် ဂျန်းဟွန်းက ကွတ်ကီးများသည် ကြားခံများဖြစ်သည့် ဝိုင်ဖိုင်ထောက်ပံ့သများက ဖတ်ရှုနိုင်သည်။ ထိုအခါ မိခင်ဖြစ်သူသည် “မိမိတို့တွင် အမွေဆက်ခံမည့် အမွေခံသား မရှိပေ။
writeLines(x20k_itN_Sen.6,"myWiki-QDC4.txt", useBytes = TRUE)
Do the same for the 20K syllable-segmented sentences in “x20k_syllQS”.
To do so, we add space between the sentence ending syllable and sentence ending mark in the regex matching pattern.
setk_1 <- sub("\u104b", " \u104b",setk$feature)
setk_1
 [1] "သည\u103a ။"          "၏ ။"                 "တယ\u103a ။"         
 [4] "ပေ ။"                "ခ\u103bေ ။"          "မည\u103a ။"         
 [7] "ပ\u102b ။"           "ပ\u103cီ ။"           "တည\u103aး ။"        
[10] "မယ\u103a ။"          "ရ ။"                 "ဘူး ။"               
[13] "ခ\u103cင\u103aး ။"   "ပဲ ။"                 "ရ\u103eိ ။"          
[16] "ခဲ့ ။"                 "စေ ။"                "န\u103eင့\u103a ။"   
[19] "နည\u103aး ။"         "က\u103cောင\u103aး ။" "ပေ\u102b့ ။"         
[22] "စို့ ။"                 "ကို ။"                 "တဲ့ ။"                
[25] "လေ ။"                "ဟုတ\u103a ။"          "လား ။"              
[28] "ရား ။"               "ရန\u103a ။"          "ကား ။"              
[31] "လေး ။"               "နိုင\u103a ။"          "လော ။"              
[34] "လဲ ။"                 "ရာ ။"                "လော့ ။"              
[37] "ဘဲ ။"                 "တာ ။"                "သေး ။"              
[40] "က\u103c ။"           "ငယ\u103a ။"          "လတ္တံ့ ။"              
[43] "အံ့ ။"                 "သာ ။"                "တတ\u103a ။"         
[46] "ရေး ။"               "ခု ။"                 "နဲ့ ။"                
[49] "ပင\u103a ။"          "လင့\u103a ။"          "ပေ\u102bင\u103aး ။" 
Create vector from 20K syllable list:
v_syllQS <- unlist(lapply(x20k_syllQS, paste0, collapse = " "))
cat(v_syllQS[c(1,20000)])
ဂူ ဂဲ ၏ သု ည စီ မံ ကိန်း ( P r o j e c t Z e r o ) လေ့ လာ ရှာ ဖွေ သူ ဖြစ် သည့် ဂျန်း ဟွန်း က ကွတ် ကီး များ သည် ကြား ခံ များ ဖြစ် သည့် ဝိုင် ဖိုင် ထောက် ပံ့ သ များ က ဖတ် ရှု နိုင် သည် ။ ထို အ ခါ မိ ခင် ဖြစ် သူ သည် " မိ မိ တို့ တွင် အ မွေ ဆက် ခံ မည့် အ မွေ ခံ သား မ ရှိ ပေ ။
Apply the grep() function to keep syllable-segmented sentences with specified endings:
system.time(
  v_syllQS.1 <- grep(paste(setk_1,collapse="|"), v_syllQS, value=TRUE)
)
   user  system elapsed 
   1.78    0.00    1.80 
length(v_syllQS.1)
[1] 19717
cat(v_syllQS.1[c(1,19717)])
ဂူ ဂဲ ၏ သု ည စီ မံ ကိန်း ( P r o j e c t Z e r o ) လေ့ လာ ရှာ ဖွေ သူ ဖြစ် သည့် ဂျန်း ဟွန်း က ကွတ် ကီး များ သည် ကြား ခံ များ ဖြစ် သည့် ဝိုင် ဖိုင် ထောက် ပံ့ သ များ က ဖတ် ရှု နိုင် သည် ။ ထို အ ခါ မိ ခင် ဖြစ် သူ သည် " မိ မိ တို့ တွင် အ မွေ ဆက် ခံ မည့် အ မွေ ခံ သား မ ရှိ ပေ ။

Conclusion

At the beginning of this post, I have got a still-raw sample 20K corpus (x20k_itN_Sen.5) and its syllabified form, x20k_syllQS. Then, based on my judgement and with some evidence from the given data, I determined which sentences to reject. Using that criteria, I retained 19,717 sentences out of the 20,000 (x20k_itN_Sen.6) and its syllabified version (v_syllQS).
I am sharing my Quick-and-Dirty-Corpus-4 here.
You may like to play with it for syllable sgementation or for any other NLP tasks of your choice, including the improvement of the corpus itself.

1 comment:

  1. Poor me, I'm hopelessly mixed up because I already had QDC4: "I am too lazy to check for problems with my last corpus QDC-4(x100_itN_Sen.5). I’m pretending it is fine and immediately start working." and that was from my post of May 29, 2019! So the corpus of this post should be called "QDC5".

    ReplyDelete