Original Title: Feature Extraction based Text Classification using K-Nearest Neighbor Algorithm
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ចំណាត់ថ្នាក់អត្ថបទផ្អែកលើការទាញយកលក្ខណៈពិសេស ដោយប្រើក្បួនដោះស្រាយ K-Nearest Neighbor

ចំណងជើងដើម៖ Feature Extraction based Text Classification using K-Nearest Neighbor Algorithm

អ្នកនិពន្ធ៖ Muhammad Azam (Department of Computer Science and Information Technology, Superior University Lahore, Lahore, Pakistan), Tanvir Ahmed (Department of Computer Science and Information Technology, Superior University Lahore, Lahore, Pakistan), Fahad Sabah (Department of Computer Science and Information Technology, Superior University Lahore, Lahore, Pakistan), Muhammad Iftikhar Hussain (Faculty of Information Technology & Beijing Engineering Research Center for IoT Software and Systems, Beijing University of Technology, Beijing 100124, China)

ឆ្នាំបោះពុម្ព៖ 2018, IJCSNS International Journal of Computer Science and Network Security

វិស័យសិក្សា៖ Computer Science / Machine Learning

១. សេចក្តីសង្ខេបប្រតិបត្តិ (Executive Summary)

បញ្ហា (The Problem)៖ ឯកសារនេះដោះស្រាយបញ្ហាប្រឈមក្នុងការចាត់ថ្នាក់ឯកសារបោះពុម្ពផ្សាយវិទ្យាសាស្ត្រដែលកំពុងកើនឡើងយ៉ាងឆាប់រហ័ស ដោយធ្វើការវិភាគលើប្រសិទ្ធភាពនៃក្បួនដោះស្រាយចំណាត់ថ្នាក់អត្ថបទផ្សេងៗ។

វិធីសាស្ត្រ (The Methodology)៖ ការសិក្សានេះប្រើប្រាស់កម្មវិធី Rapid Miner ដើម្បីដំណើរការ និងចាត់ថ្នាក់ទិន្នន័យពីអត្ថបទសង្ខេបចំនួន ១ម៉ឺនឯកសារពី Scopus ដោយប្រើប្រាស់ក្បួនដោះស្រាយរួមផ្សំនឹងបច្ចេកទេស Bagging និង Boosting ។

លទ្ធផលសំខាន់ៗ (The Verdict)៖

២. ការវិភាគលើប្រសិទ្ធភាព និងដែនកំណត់ (Performance & Constraints)

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
Naïve Bayes (NB)
ក្បួនដោះស្រាយ Naïve Bayes (ផ្អែកលើទ្រឹស្តីប្រូបាប៊ីលីតេ)
ងាយស្រួលយល់ មានល្បឿនលឿនក្នុងការគណនា និងទាមទារទិន្នន័យហ្វឹកហាត់តិចតួចដើម្បីទាយលទ្ធផល។ វាអាចទាញយកអត្ថប្រយោជន៍ពីបច្ចេកទេស Boosting បានល្អ។ វាសន្មតថាគ្រប់លក្ខណៈពិសេស (Features) ទាំងអស់គឺឯករាជ្យពីគ្នា ដែលមិនតែងតែពិតប្រាកដក្នុងទិន្នន័យជាក់ស្តែង ធ្វើឱ្យភាពត្រឹមត្រូវទាបជាងគេនៅពេលមិនប្រើបច្ចេកទេសរួមផ្សំ។ ផ្តល់ភាពត្រឹមត្រូវទូទៅ (Accuracy) ៧១.១១% និងពិន្ទុ F-Score ៧២.៩៥% លើទិន្នន័យដើម។
K-Nearest Neighbor (K-NN)
ក្បួនដោះស្រាយ K-Nearest Neighbor (រៀនដោយប្រៀបធៀបជាមួយភាពជិតបំផុត)
មានភាពត្រឹមត្រូវខ្ពស់ជាង Naïve Bayes ជាទូទៅងាយស្រួលអនុវត្តសម្រាប់ទិន្នន័យអត្ថបទដែលមានវិមាត្រច្រើន ព្រោះវាប្រៀបធៀបគំរូដោយផ្ទាល់តាមរយៈចម្ងាយ (Euclidean distance)។ ត្រូវការពេលវេលាគណនាយូរនៅពេលទិន្នន័យតេស្តមានទំហំធំ ព្រោះវាត្រូវស្វែងរកចម្ងាយជាមួយគ្រប់ទិន្នន័យហ្វឹកហាត់ ហើយភាពត្រឹមត្រូវអាស្រ័យខ្លាំងលើការជ្រើសរើសតម្លៃ k ល្អបំផុត។ ផ្តល់ភាពត្រឹមត្រូវទូទៅ (Accuracy) ៧៨.៦៧% និងពិន្ទុ F-Score ៧៨.៨១%។
Bayesian Boost (K-NN)
ក្បួនដោះស្រាយ K-NN រួមផ្សំជាមួយបច្ចេកទេស Bayesian Boost
ជួយពង្រឹងម៉ូដែលឲ្យកាន់តែមានស្ថិរភាព និងកាត់បន្ថយកំហុសបានយ៉ាងមានប្រសិទ្ធភាព ដោយផ្តល់ទម្ងន់សាឡើងវិញទៅលើទិន្នន័យដែលពិបាកចាត់ថ្នាក់ក្នុងជុំនីមួយៗនៃការហ្វឹកហាត់។ ប្រើប្រាស់ធនធានម៉ាស៊ីន និងពេលវេលាគណនាច្រើនជាងម៉ូដែលធម្មតា ហើយមានភាពស្មុគស្មាញក្នុងការរៀបចំដំណើរការ (Parameters tuning)។ ទទួលបានភាពត្រឹមត្រូវទូទៅខ្ពស់បំផុតរហូតដល់ ៨០.០០% និង F-Score ៨០.១៥% ដែលជាលទ្ធផលល្អបំផុតក្នុងការសិក្សានេះ។

ការចំណាយលើធនធាន (Resource Cost)៖ ឯកសារនេះមិនបានបញ្ជាក់លម្អិតអំពីតម្លៃ ឬទំហំធនធានកុំព្យូទ័រ (Hardware specs) នោះទេ ប៉ុន្តែបានបញ្ជាក់ច្បាស់លាស់ពីកម្មវិធី និងទិន្នន័យដែលត្រូវបានប្រើប្រាស់។

៣. ការពិនិត្យសម្រាប់បរិបទកម្ពុជា/អាស៊ីអាគ្នេយ៍

ភាពលំអៀងនៃទិន្នន័យ (Data Bias)៖

ការសិក្សានេះប្រើប្រាស់សំណុំទិន្នន័យឯកសារបោះពុម្ពផ្សាយពី Scopus ដែលជាអត្ថបទវិទ្យាសាស្ត្រជាភាសាអង់គ្លេស។ វាមិនមានផ្ទុកទិន្នន័យ ឬបរិបទជាភាសាខ្មែរឡើយ។ សម្រាប់ប្រទេសកម្ពុជា នេះគឺជាបញ្ហាប្រឈមមួយ ព្រោះភាសាខ្មែរមិនមានការដកឃ្លារវាងពាក្យនិមួយៗច្បាស់លាស់ទេ (No word boundaries) ដែលទាមទារឱ្យមានបច្ចេកទេសបំបែកពាក្យខ្មែរ (Khmer Word Segmentation) ដ៏រឹងមាំជាមុនសិន មុននឹងអាចអនុវត្តក្បួនដោះស្រាយទាំងនេះបានល្អ។

លទ្ធភាពនៃការអនុវត្ត (Applicability)៖

ទោះបីជាជួបបញ្ហាប្រឈមផ្នែកភាសាក៏ដោយ វិធីសាស្ត្ររួមបញ្ចូលគ្នានូវ K-NN និងបច្ចេកទេស Boosting/Bagging សម្រាប់ការចាត់ថ្នាក់ឯកសារ គឺមានអត្ថប្រយោជន៍ និងអាចអនុវត្តបានខ្ពស់នៅក្នុងស្ថាប័ននានានៅកម្ពុជា។

ជារួម បច្ចេកវិទ្យាចាត់ថ្នាក់អត្ថបទនេះអាចដើរតួនាទីយ៉ាងសំខាន់ក្នុងការជំរុញស្វ័យប្រវត្តិកម្ម និងរដ្ឋបាលឌីជីថលនៅកម្ពុជា ប៉ុន្តែស្ថាប័នពាក់ព័ន្ធត្រូវវិនិយោគលើការបង្កើតសំណុំទិន្នន័យ និងបច្ចេកវិទ្យាដំណើរការភាសាខ្មែរ (Khmer NLP) ជាមុន។

៤. ផែនការសកម្មភាពសម្រាប់និស្សិត (Actionable Roadmap)

ដើម្បីអនុវត្តតាមការសិក្សានេះ និស្សិតគួរអនុវត្តតាមជំហានខាងក្រោម៖

  1. ជំហានទី១៖ សិក្សាមូលដ្ឋានគ្រឹះនៃ Text Preprocessing និងភាសាខ្មែរ: និស្សិតត្រូវយល់ដឹងពីបច្ចេកទេសសម្អាតអត្ថបទ (Tokenization, Stopword removal, Stemming) ដោយអនុវត្តជាមួយ Python តាមរយៈបណ្ណាល័យ NLTKspaCy។ ពិសេសត្រូវស្វែងយល់ពីបច្ចេកវិទ្យា Khmer NLP ដោយប្រើប្រាស់ឧបករណ៍បំបែកពាក្យដូចជា khmer-nltk ដើម្បីបំបែកប្រយោគខ្មែរជាពាក្យៗ។
  2. ជំហានទី២៖ អនុវត្តការទាញយកលក្ខណៈពិសេសអត្ថបទ (Feature Extraction): សិក្សាពីរបៀបបំប្លែងទិន្នន័យអត្ថបទទៅជាវ៉ិចទ័រតំណាងលេខ ដើម្បីឲ្យកុំព្យូទ័រយល់បាន។ សាកល្បងប្រើប្រាស់វិធីសាស្ត្រ TF-IDF (Term Frequency-Inverse Document Frequency)CountVectorizer តាមរយៈបណ្ណាល័យ Scikit-learn ដោយប្រើសំណុំទិន្នន័យតូចៗសិន។
  3. ជំហានទី៣៖ កសាងម៉ូដែល Machine Learning ជាមូលដ្ឋាន: ប្រើប្រាស់ឧបករណ៍ Scikit-learn ឬកម្មវិធី Rapid Miner ដូចការសិក្សានេះ ដើម្បីបង្ហាត់ម៉ូដែល Naïve Bayes និង K-Nearest Neighbor (K-NN)។ សាកល្បងផ្លាស់ប្តូរតម្លៃ K ក្នុងម៉ូដែល K-NN (ឧ. K=3, 5, 7) ដើម្បីប្រៀបធៀបលទ្ធផល។
  4. ជំហានទី៤៖ បង្កើនប្រសិទ្ធភាពដោយបច្ចេកទេស Ensemble Learning: នៅពេលដែលម៉ូដែលមូលដ្ឋានដំណើរការហើយ ត្រូវដាក់បញ្ចូលបច្ចេកទេស Bagging និង Boosting (ឧទាហរណ៍ AdaBoost ឬ Gradient Boosting) ដើម្បីបង្កើនភាពត្រឹមត្រូវនៃការទាយលទ្ធផល និងដោះស្រាយបញ្ហា Overfitting ស្របតាមការរកឃើញក្នុងឯកសារស្រាវជ្រាវនេះ។
  5. ជំហានទី៥៖ វាយតម្លៃ និងដាក់ដំណើរការជាក់ស្តែង (Model Deployment): ប្រើប្រាស់ Confusion Matrix ដើម្បីវាស់ស្ទង់សមត្ថភាពម៉ូដែលតាមរយៈ Accuracy, Precision, និង Recall។ បន្ទាប់មក និស្សិតអាចសាកល្បងដាក់ពង្រាយម៉ូដែល (Deploy) ជាកម្មវិធី Web ខ្នាតតូចតាមរយៈ StreamlitFlask ដើម្បីឲ្យអ្នកប្រើប្រាស់អាចបញ្ចូលអត្ថបទ និងទទួលបានលទ្ធផលនៃការចាត់ថ្នាក់ភ្លាមៗ។

៥. វាក្យសព្ទបច្ចេកទេស (Technical Glossary)

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Feature Extraction វាជាដំណើរការទាញយកព័ត៌មានឬលក្ខណៈសំខាន់ៗចេញពីទិន្នន័យឆៅ (ដូចជាអត្ថបទទាំងមូល) ហើយបំប្លែងវាទៅជាទម្រង់លេខ ដើម្បីឱ្យកុំព្យូទ័រអាចយល់ គណនា និងរៀនពីវាបានក្នុងការចាត់ថ្នាក់។ ដូចជាការអានសៀវភៅមួយក្បាល ហើយកត់ត្រាតែចំណុចសំខាន់ៗជាចំណុចៗទុកសម្រាប់ប្រឡង ជំនួសឱ្យការទន្ទេញចាំគ្រប់ពាក្យពេចន៍ទាំងអស់។
K-Nearest Neighbor (K-NN) វាជាក្បួនដោះស្រាយសម្រាប់ចាត់ថ្នាក់ទិន្នន័យថ្មី ដោយស្វែងរកនិងប្រៀបធៀបវាទៅនឹងទិន្នន័យចាស់ចំនួន K ដែលមានលក្ខណៈស្រដៀងវា (មានចម្ងាយជិតបំផុត) មុននឹងសម្រេចថាវាជាប្រភេទអ្វី។ ដូចជាការចង់ដឹងថាមនុស្សម្នាក់ជាសិស្សពូកែឬអត់ ដោយគ្រាន់តែមើលទៅលើមិត្តភក្តិជិតស្និទ្ធបំផុតរបស់គេចំនួន ៥ នាក់ បើមិត្តគេពូកែ គេក៏ប្រហែលជាពូកែដែរ។
Naïve Bayes (NB) វាជាក្បួនដោះស្រាយផ្អែកលើទ្រឹស្តីប្រូបាប៊ីលីតេ (ភាគរយដែលអាចកើតឡើង) ដើម្បីទស្សន៍ទាយចំណាត់ថ្នាក់ ដោយវាសន្មតថាលក្ខណៈពិសេសនីមួយៗនៃទិន្នន័យគឺឯករាជ្យ និងមិនមានទំនាក់ទំនងគ្នាទាល់តែសោះ។ ដូចជាការទាយថាផ្លែឈើមួយជា 'ផ្លែប៉ោម' ដោយសារតែវាមានពណ៌ក្រហម មូល និងទំហំប៉ុនកណ្តាប់ដៃ ទោះបីជាលក្ខណៈទាំងនេះមិនមានឥទ្ធិពលលើគ្នាក៏ដោយ។
Bagging វាជាបច្ចេកទេសបង្កើតម៉ូដែលតូចៗជាច្រើនដោយប្រើការចាប់យកទិន្នន័យហ្វឹកហាត់ដោយចៃដន្យ រួចបូកបញ្ចូលលទ្ធផលនៃការទាយរបស់វាបញ្ជូលគ្នា ដើម្បីទទួលបានលទ្ធផលចុងក្រោយដែលសុក្រឹតជាងមុន និងមិនលម្អៀង។ ដូចជាការសួរមតិពីក្រុមគ្រូពេទ្យជាច្រើននាក់ដាច់ដោយឡែកពីគ្នាអំពីជំងឺមួយ រួចយកចម្លើយដែលគ្រូពេទ្យភាគច្រើនឆ្លើយស្របគ្នាជាការសម្រេចចិត្តចុងក្រោយ។
Boosting វាជាបច្ចេកទេសហ្វឹកហាត់ម៉ូដែលជាបន្តបន្ទាប់ ដោយម៉ូដែលក្រោយៗត្រូវផ្តល់ការយកចិត្តទុកដាក់ (ផ្តល់ទម្ងន់) កាន់តែខ្លាំងទៅលើទិន្នន័យដែលម៉ូដែលមុនៗបានទាយខុស ដើម្បីកាត់បន្ថយកំហុសរួម។ ដូចជាសិស្សម្នាក់ដែលប្រឡងធ្លាក់មុខវិជ្ជាគណិតវិទ្យា ដូច្នេះនៅឆមាសបន្ទាប់ គេត្រូវខិតខំរៀនបំប៉នតែមុខវិជ្ជានោះឱ្យបានច្រើនជាងគេដើម្បីឱ្យពិន្ទុរួមបានល្អ។
Tokenization វាជាដំណើរការបំបែកអត្ថបទវែងៗ ឬកថាខណ្ឌ ឱ្យទៅជាបំណែកតូចៗដាច់ៗពីគ្នា ដូចជាពាក្យនីមួយៗ ឬប្រយោគនីមួយៗ ដើម្បីឱ្យកុំព្យូទ័រងាយស្រួលក្នុងការវិភាគអត្ថន័យ។ ដូចជាការកាត់នំប៉័ងមួយដើមធំ ឱ្យទៅជាចំណិតស្តើងៗ ដើម្បីងាយស្រួលញ៉ាំ ឬយកទៅច្នៃបន្ត។
Stemming វាជាដំណើរការកាត់ចោលនូវបច្ច័យ ឬបុព្វបទនៃពាក្យ (ដូចជា -ing, -ed ក្នុងភាសាអង់គ្លេស) ដើម្បីទាញយកទម្រង់ឫសគល់ដើមនៃពាក្យនោះ ដែលជួយកាត់បន្ថយភាពស្មុគស្មាញនៃទិន្នន័យអត្ថបទ។ ដូចជាការកាត់ស្លឹក និងមែកតូចៗចេញពីដើមឈើ ដោយរក្សាទុកតែគល់និងដើមធំដើម្បីងាយស្រួលក្នុងការដឹកជញ្ជូន និងចាត់ថ្នាក់ប្រភេទឈើ។
TF-IDF វាជារូបមន្តគណិតវិទ្យាសម្រាប់វាស់ស្ទង់ភាពសំខាន់នៃពាក្យមួយនៅក្នុងឯកសារ ដោយពាក្យដែលលេចឡើងញឹកញាប់ក្នុងឯកសារមួយ ប៉ុន្តែកម្រមានក្នុងឯកសារផ្សេងទៀត នឹងទទួលបានពិន្ទុខ្ពស់។ ដូចជាពាក្យ 'បាល់ទាត់' នៅក្នុងសៀវភៅកីឡាគឺជារឿងធម្មតា ប៉ុន្តែប្រសិនបើវាលេចឡើងក្នុងសៀវភៅធ្វើម្ហូប វាបញ្ជាក់ថាពាក្យនោះជួយញែកសៀវភៅនោះឱ្យប្លែកពីគេយ៉ាងច្បាស់។
F-measure វាជារង្វាស់ដែលរួមបញ្ចូលគ្នារវាងភាពជាក់លាក់ (Precision) និងភាពគ្របដណ្តប់ (Recall) ដើម្បីផ្តល់នូវពិន្ទុវាយតម្លៃរួមមួយដែលបង្ហាញពីប្រសិទ្ធភាពពិតប្រាកដ និងតុល្យភាពរបស់ម៉ូដែល។ ដូចជារង្វាស់សមត្ថភាពរបស់អ្នកនេសាទ ដែលវាស់ទាំងការចាប់បានត្រីចំគោលដៅ (មិនមែនចាប់បានសំរាម) និងការមិនបណ្តោយឱ្យត្រីក្នុងបឹងរួចផុតពីសំណាញ់។

៦. ប្រធានបទពាក់ព័ន្ធ (Further Reading)

អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖

ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖