Wiki Extractor Survey
Tue 17 May 2011
Corpus လုပ်ဖို့အတွက် များများစားစား ရနိုင်တဲ့နေရာက Wiki ရှိတယ် ပြဿနာက Wiki ရဲ့ Markup တွေက Text ပဲလိုချင်တဲ့လူအတွက်တော့ အတော်ပြဿနာလုပ်ပါတယ် အင်မတန်ရှုပ်ထွေးပွေလီတဲ့ Markup လို့ပြောရမယ် အဲဒီတော့ အလွယ်ဆုံးဆွဲထုတ်နိုင်တာက XML Dump ကနေပဲ ကိုယ်လိုချင်တဲ့ Text တွေကိုဆွဲထုတ်ရမယ် XML ကို Parse လုပ်ရတာက မခက်ခဲ့ပါဘူး ဒါပေမယ့် Wiki Markup တွေကိုဖယ်ဖို့ကတော့ Parser တစ်ခုလိုအပ်ပါတယ်။ ကိုယ်တိုင်ပဲလုပ်လိုက်မယ် စိတ်ကူးမိတယ် ဒါပေမယ့် အကြောင်းအရာတစ်ခု လုပ်တော့မယ်ဆိုရင် ကိုယ်တစ်ယောက်ပဲ လုပ်နေတယ်လို့ မတွေးပါနဲ့ ကိုယ့်လိုလုပ်နေတဲ့လူတွေ အများကြီးရှိတယ် သူတို့ဘယ်လိုလုပ်သလဲ မင်းလေ့လာရမယ် သူများလုပ်တာ မသိရင်မင်းလုပ်တာ သူတို့ထက်ဘယ်လိုမှ ပိုမကောင်းနိုင်ဘူးဆိုတဲ့ ဆရာဆုံးမတာကို သတိရမိတယ်။
တကယ်တော့ Wiki ဆိုတာက Text တွေအများကြီးရှိတဲ့နေရာပါ ဘာသာစကားလည်း အတော်များများရှိတယ် အဲဒါကြောင့် Wiki ကိုလည်းသုံးပြီး Training Corpus လုပ်ကြတဲ့ လူတွေလည်းရှိပါတယ်။ ပထမဆုံး ပြင်သစ်စာကို Extract လုပ်ထားတာတွေ့ပါတယ် သူထဲမှာလည်း Wikipedia Extractors Tools ဆိုပြီးစမ်းပြထားတယ် အလုပ်လုပ်ပုံက XML Dump ထဲက Articles တွေကို ဖိုင်တစ်ခုစီအနေနဲ့ခွဲရေးပါတယ် ပြီးမှတစ်ဖိုင်ချင်းကို Wiki Markup Parser တစ်ခုနဲ့ Parse လုပ်ပြီးနောက်ဆုံး Result တွေကိုရေးပါတယ်။ ပြဿနာက နောက်ဆုံးအဆင့်ဟာ ဘုရားတနေရပါတယ် အများအားဖြင့် Parse လုပ်ရင်းနဲ့ Infinite Loop ဖြစ်ပြီးရပ်သွားတာများတယ်။
မဖြစ်ချေဘူးဆိုပြီး သူ့ထဲကကုဒ်ကိုဖတ်ကြည့်တော့ မူရင်းရေးတဲ့လူရဲ့ဆိုက်ကို တွေ့လို့ထပ်လိုက်ပြန်တယ် Evan Jones ရဲ့ဆိုက်မှာလည်း သူလည်းပြောထားတယ် Parse လုပ်ချိန်မှာ ရပ်သွားတတ်တယ် Parser အစားထိုးဖို့လိုမယ်လို့ ရေးထားတာတွေ့တယ် အဲဒါနဲ့ Media Wiki ထဲကိုလိုက်ပြီး Parser ရှာပုံတော်ဖွင့်ရပြန်တယ် Alternative Parsers ထဲမှာအတော်များများတွေ့ရှိတယ် ပြဿနာက ဘယ်သူမှ Plain Text ကိုမလိုချင်ကြတော့ အများအားဖြင့် Output တွေက html ဖြစ်နေတယ် တကယ်ကတော့ အဆင်ပြေရင် html ပြောင်းထုတ်လိုက်ပြီး နောက်တစ်ဆင့် html tag တွေကိုဖယ်လိုက်လို့တော့ ဖြစ်နိုင်ပါတယ်။ ဒါပေမယ့်အဆင့်တွေ မလိုအပ်ပဲတစ်ဆင့်ပိုလာမယ် အဲဒါကြောင့်ရှိတဲ့ Parser တစ်ခုကိုတော့ လိုသလိုရဖို့ ပြင်တာကတော့ ပြင်ရလိမ့်မယ်။
ထပ်ပြီးရှာတယ်ဖွေတယ် ကံကောင်းချင်တော့ ဆက်စပ်တာထပ်တွေ့ပါတယ် University of Pisa က Medialab မှာသုံးထားတဲ့ အီတာလျံစာကို Corpus လုပ်တဲ့ Tools တစ်ခုကိုတွေ့ပါတယ်။ ကိုယ်လုပ်ချင်တဲ့ အလုပ်မျိုး တူတဲ့အတွက် သိမ်းဖို့အတွက် Structure လုပ်တာလည်း သဘောကျတဲ့ အဆင့်သင့်အခြေအနေ ဖြစ်နေတယ်။ စမ်းကြည့်ပါတယ် ဗမာစာကနည်းသေးတော့ အတော်မြန်ပါတယ်။ မူရင်းအတိုင်းတော့ သုံးလို့အဆင်မပြေဘူး ကိုယ်လိုချင်တဲ့ Text Extraction Level ရောက်အောင် သူ့ကုဒ်တွေကို ထပ်ဖြည့်လိုက်ပြုပြင်လိုက်ရတယ် သုံးလို့ရတဲ့ အခြေအနေဖြစ်သွားတယ်။
ဒီတစ်ခုပဲရှိသလားလို့လည်း လက်မခံနိုင်သေးပါဘူး အဲဒါနဲ့တစ်ခြား Tools လည်းထပ်ရှာပါတယ် Rubyforge မှာတစ်ခုထပ်တွေ့ပါတယ် wp2txt ဆိုပြီးတွေ့ပါတယ် သူလည်းပဲ Japanese Corpus လုပ်ဖို့အတွက် Doshisha University က Yoichiro Hasebe ရေးထားတာဖြစ်ပါတယ်။ သူကတော့ ပြောင်းဖို့အတွက် Gui ပါလာပါတယ် ထွက်လာတဲ့ Output ဟာ Plain Text သီးသန့်ဖြစ်တဲ့အတွက် တကယ်သုံးမယ်ဆို သူလည်းသုံးလို့ရပါတယ် ဒါပေမယ့် Source Code မရှိတဲ့အတွက် ပြင်လို့မရဘူးဖြစ်နေတယ် သူသုံးထားတဲ့ tartan parser ကိုသုံးမယ်ဆိုရင်လည်း ပြင်လုပ်လို့တော့ ရပါတယ်။
Academic Work ဆိုရင်တစ်ခု ကောင်းတာက Related Works တွေပြထားပေးတယ် ဒါဟာလည်း ရိုးသားမှု့တစ်ခုဖြစ်တယ် လူတစ်ယောက်ရလာတဲ့ Idea ဟာအသစ်ဖြစ်နိုင်ပါတယ် ဒါပေမယ့် အရာအားလုံး အစကနေထူထောင်ခဲ့တာ မဖြစ်နိုင်ပါဘူး ဘယ်ကနေအခြေခံခဲ့သလဲ ပြောရပါလိမ့်မယ် မဟုတ်ရင်တော့ ဒါဟာလည်းခိုးတာပါပဲ အဲလိုပြောခဲ့မှသာ ကိုယ့်နောက်မှာလုပ်မယ့်လူက ကိုယ့်ထက်ကောင်းအောင် ပိုလုပ်နိုင်မှာပါ။
Plain Text တွေပဲဖြစ်အောင် လုပ်လိုက်တော့ ပြဿနာက တစ်ချို့နေရာတွေ သုံးမရပြန်ပါဘူး။ Plain ဖြစ်တဲ့အတွက် Machine Learning အတွက် Train လုပ်လို့လွယ်ပါတယ် ဒါပေမယ့် Search အတွက်ကတော့ အရေးပါတဲ့ Title, Anchor, Reference တွေကိုဖယ်လိုက်တော့ မတူညီတဲ့ Rank စမ်းလို့ မဖြစ်နိုင်တော့ပါဘူး အဲဒါကြောင့် ဒီထက်ပိုပြီး Meta Data တွေကိုပါ စနစ်တစ်သိမ်းပြီး ဆွဲထုတ်နိုင်ဖို့လိုအပ်သေးတယ်။
Medialab ရဲ့ Related Works မှာတော့ စိတ်ဝင်စားစရာကောင်းတာက Israel Institute of Technology ကလုပ်ထားတဲ့ WikiPrep ကိုတွေ့မိတယ် သူကတော့ Meta Data တွေကို စနစ်တကျခွဲထုတ်ပါတယ် Category, Anchor, Related, Incoming links စသည်ဖြင့် ခွဲထုတ်လိုက်ပါတယ်။ အဲဒီ့ Data တွေအရဆိုရင် Information Retrieval စမ်းသပ်ဖို့ အတော်လေး လုံလောက်တယ်ပြောရမယ် ကိုယ်လိုချင်တာ ထပ်ရှိရင်တော့ ပြင်တော့ပြင်ရပါလိမ့်မယ်။
လတ်တစ်လော အနေနဲ့ကတော့ Tools တွေကတော့ အတော်လေးရပြီ အစမ်းလုပ်ထားတဲ့ Plain Text Corpus လည်း အမျိုးမျိုးရှိပါတယ် ဘယ်နေရာမှာ ကိုယ်စမ်းသပ်မလဲ ဘာတွေထပ်လိုမလဲ စဉ်းစားရဦးမယ်။ ကိုယ်စိတ်ကူးပေါက်ရင် စမ်းကြည့်လိုက် Corpus ကမလုံလောက်ပေးရင် Structure မလုံလောက်ပေးရင် ထပ်ပြင်လိုက်တော့ လည်နေဦးမယ်ထင်တယ်။ တကယ်ကတော့ စိတ်ပေါက်မှ လိပ်လောက်သွားရတယ် လွန်ခဲ့တဲ့ ၃ ပါတ်က စမ်းကြည့်တဲ့ဟာ စာရေးဖို့အကြွေးမှတ်ရတဲ့ဘဝ အားတဲ့အချိန်ဟာ အတော်နည်းလွန်းနေတယ်။