|
|
4 months ago | |
|---|---|---|
| .. | ||
| README.md | 4 months ago | |
| assignment.md | 4 months ago | |
README.md
ការណែនាំអំពីកែសម្រួលភាសាធម្មជាតិ
មេរៀននេះផ្ដោតលើប្រវត្តិសាស្រ្តខ្លីៗ និងមូលដ្ឋានសំខាន់ៗនៃ កែសម្រួលភាសាធម្មជាតិ ដែលជាក្រុមរងមួយនៃ ភាសាវិទ្យាគណនាមួយ។
សំណួរជាមុនមេរៀន
ការណែនាំ
NLP ដែលគេស្គាល់សំរាប់ភាគច្រើនគឺជាតំបន់មួយដែលមានការដាក់ពាក់ព័ន្ធនិងអនុវត្តការសិក្សាយានយន្តយ៉ាងល្អបំផុតក្នុងកម្មវិធីផលិតកម្ម។
✅ តើអ្នកអាចគិតបានអំពីកម្មវិធីដែលអ្នកប្រើប្រាស់រៀងរាល់ថ្ងៃដែលប្រហែលជាមាន NLP បញ្ចូលរួមទេ? តើកម្មវិធីកែសម្រួលពាក្យ ឬកម្មវិធីទូរស័ព្ទចល័តដែលអ្នកប្រើប្រាស់ជាទៀងទាត់យ៉ាងដូចម្តេច?
អ្នកនឹងបានរៀនអំពី៖
- គំនិតអំពីភាសា។ របៀបដែលភាសាបានអភិវឌ្ឍនិងតំបន់សិក្សាធំៗដែលបានសិក្សា។
- និយមន័យ និងមែនទកិច្ច។ អ្នកនឹងរៀននិយមន័យនិងមែនទកិច្ចអំពីរបៀបដែលកុំព្យូទ័របញ្ចូលប្រតិបត្តិការនៅលើអត្ថបទ រួមមានការពិភាក្សា ការប្រឡងវេយ្យាករណ៍ និងការកំណត់នាម និងកិរិយាស័ព្ទ។ មានវិបត្តិការកូដមួយចំនួននៅក្នុងមេរៀននេះ ហើយមានមែនទកិច្ចសំខាន់ៗជាច្រើនដែលនឹងបង្ហាញដែលអ្នកនឹងរៀនដើម្បីកូដនៅមេរៀនបន្ទាប់។
ភាសាវិទ្យាគណនាមួយ
ភាសាវិទ្យាគណនាមួយគឺជាតំបន់ស្រាវជ្រាវនិងអភិវឌ្ឍន៍ប៉ុន្មានទសវត្សរ៍ដែលសិក្សារបៀបដែលកុំព្យូទ័រអាចធ្វើការជាមួយ ហើយផងដែរយល់ដឹង បកប្រែ និងទំនាក់ទំនងជាមួយភាសា។ ការ៉េសម្រួលភាសាធម្មជាតិ (NLP) គឺជាវដ្តនាក្នុងការផ្តោតលើរបៀបដែលកុំព្យូទ័រអាចដំណើរការភាសា 'ធម្មជាតិ' ឬភាសាមនុស្ស។
ឧទាហរណ៍ - ការបញ្ចាក់តាមទូរស័ព្ទ
បើអ្នកធ្លាប់បានបញ្ចាក់តាមទូរស័ព្ទរបស់អ្នកជំនួសការបញ្ចូលដោយការចុច ឬសួរអ្នកជំនួយវីរុសមួយ សំឡេងរបស់អ្នកត្រូវបានបម្លែងទៅជាអក្សរនិងបន្ទាប់មកត្រូវបានដំណើរការឬ បានបញ្ចាក់ ពីភាសាដែលអ្នកបាននិយាយ។ ពាក្យគន្លឹះដែលបានរកឃើញបន្ទាប់មកត្រូវបានដំណើរការចូលទៅជារូបមន្តដែលទូរស័ព្ទឬអ្នកជំនួយអាចយល់និងអនុវត្តបាន។
ការយល់ដឹងភាសាវិទ្យាពិតជាពិបាកណាស់! រូបភាពដោយ Jen Looper
តើបច្ចេកវិទ្យានេះត្រូវបានបង្កើតឡើងជាដូចម្តេច?
វាអាចកើតឡើងបានដោយសារតែមាននរណាម្នាក់បានសរសេរកម្មវិធីកុំព្យូទ័រដើម្បីធ្វើការនេះ។ ចំណាយពីរទសវត្សរ៍មុន អ្នកនិពន្ធវិទ្យាសាស្ត្រខ្លះបានទាយថាមនុស្សភាគច្រើននឹងនិយាយទៅកុំព្យូទ័ររបស់ពួកគេ ហើយកុំព្យូទ័រនឹងយល់បានឲ្យបានត្រឹមត្រូវចំពោះអ្វីដែលពួកគេចង់និយាយ។ អសូរម_FACE_: វាបានបង្ហាញថា វាជាបញ្ហា ដែលពិបាកជាងការគិតពីមុន ហើយជាបញ្ហាដែលមានការយល់ដឹងល្អប្រសើរជាងមុននៅថ្ងៃនេះ ប៉ុន្តែមានអកុសលភាពច្រើននៅក្នុងការសម្រេចបាននូវការកែសម្រួលភាសាធម្មជាតិដែល 'ល្អឥតខ្ចោះ' នៅពេលដែលវាជួបការយល់ដឹងអត្ថន័យនៃប្រយោគ។ នេះជាបញ្ហាដ៏ពិបាកផ្ទាត់ខ្លាំងនៅពេលផ្នែកនៃការយល់យុទ្ធមានមនោសញ្ចេតនា ឬគេចែកសំអាតអារម្មណ៍ដូចជា ការធ្វើរឿងអន្ទិតិតក្នុងប្រយោគ។
នៅពេលនេះ អ្នកប្រហែលជាចងចាំថានៅថ្នាក់រៀននៅសាលាមុនដែលគ្រូបានបង្រៀនផ្នែកវេយ្យាករណ៍ក្នុងប្រយោគ។ នៅប្រទេសខ្លះ សិស្សបានបង្រៀនវេយ្យាករណ៍ និងភាសាវិទ្យាជាប្រធានបទមួយជាក់លាក់ ប៉ុន្តែនៅជាច្រើន ប្រធានបទទាំងនេះត្រូវបានរួមបញ្ចូលជាផ្នែកមួយនៃការសិក្សាភាសា: ប្រសិនបើភាសដំបូងរបស់អ្នកនៅក្នុងសាលាបឋមសិក្សា (រៀនអាននិងសរសេរ) ហើយប្រហែលជារបស់ទីពីរ នៅបន្ទាប់បឋមសិក្សា ឬវិស្សមកាលទូទៅ។ កុំបារម្ភប្រសិនបើអ្នកមិនជាអ្នកជំនាញក្នុងការដាច់ចេញនាមពីកិរិយាស័ព្ទ ឬគន្លឹះពីគុណនាមពីគុណវុត្ថុ!
បើអ្នកប្រឈមមុខនឹងភាពខុសគ្នារវាង វេលាបច្ចុប្បន្នសាមញ្ញ និង វេលាបច្ចុប្បន្នបន្ត អ្នកមិនម្នាក់ឯងឡើយ។ នេះជារឿងថា់ពីអ្នកជាច្រើនទេទំនងតែម្ដង ជាពិសេសសម្រាប់អ្នកដែលនិយាយភាសាជាភាសាមាតុភូមិ។ ព័ត៌មានល្អគឺកុំព្យូទ័រមានសមត្ថភាពល្អបំផុតក្នុងការដាក់ពាក្យច្បាប់ផ្លូវការ ហើយអ្នកនឹងរៀនសរសេរកូដដែលអាច បញ្ចាក់ ប្រយោគបានដូចជាមនុស្សម្នាក់។ បញ្ហាប្រឈមធំបំផុតដែលអ្នកនឹងពិនិត្យបន្តគឺការយល់អត្ថន័យ និង អារម្មណ៍, នៃប្រយោគមួយ។
វត្ថុកាលរងចាំ
សម្រាប់មេរៀននេះ វត្ថុកាលរងចាំសំខាន់គឺអាចអាននិងយល់ភាសានៃមេរៀននេះ។ មិនមានបញ្ហាគណិតវិទ្យាឬសមីការណ៍ណាដើម្បីដោះស្រាយទេ។ ខណៈដែលអ្នកនិពន្ធដើមបានសរសេរមេរៀននេះជាភាសាអង់គ្លេស វាក៏មានការបកប្រែទៅជាភាសាផ្សេងទៀតដូច្នេះអ្នកអាចកំពុងអានការបកប្រែ។ មានឧទាហរណ៍មួយចំនួនដែលប្រើភាសាវិវរណៈជាច្រើន (ដើម្បីប្រៀបធៀបច្បាប់វេយ្យាករណ៍ផ្សេងៗរបស់ភាសាតែងតែផ្សេងគ្នា)។ អ្នក មិន ប្រែក្លាយនោះទេ ប៉ុន្តែអត្ថបទពន្យល់បាន បើយាយហេតុអត្ថន័យគួរតែច្បាស់។
សម្រាប់វិបត្តិការកូដ អ្នកនឹងប្រើ Python ហើយឧទាហរណ៍ក្នុងនេះប្រើ Python 3.8។
នៅក្នុងផ្នែកនេះ អ្នកនឹងត្រូវការ ហើយប្រើ៖
-
ការយល់ភាសា Python 3។ ការយល់ភាសាកម្មវិធីក្នុង Python 3, មេរៀននេះប្រើ input, loop, ការអានឯកសារ, អារៃ។
-
Visual Studio Code + ការពង្រីក។ យើងនឹងប្រើ Visual Studio Code និងកំណែ Python របស់វា។ អ្នកក៏អាចប្រើ IDE Python ដែលអ្នកចូលចិត្ត។
-
TextBlob។ TextBlob គឺជាបណ្ណាល័យកែសម្រួលអត្ថបទសាមញ្ញសម្រាប់ Python។ អ្នកអាចធ្វើតាមការណែនាំនៅលើគេហទំព័រ TextBlob ដើម្បីតំឡើងវា នៅលើប្រព័ន្ធរបស់អ្នក (តំឡើង corpora ដូចមានបង្ហាញខាងក្រោម)៖
pip install -U textblob python -m textblob.download_corpora
💡 ត្បិត: អ្នកអាចរត់ Python ត្រង់ក្នុងបរិយាកាស VS Code បានដែរ។ សូមពិនិត្យ ឯកសារ សម្រាប់ព័ត៌មានបន្ថែម។
និយាយជាមួយម៉ាស៊ីន
ប្រវត្តិនៃការព្យាយាមធ្វើឲ្យកុំព្យូទ័រយល់បានភាសាមនុស្សដំណើរត្រឡប់បានជាច្រើនទស្សវត្សរ៍ ហើយអ្នកវិទ្យាសាស្ត្របឋមមួយនៅក្នុងការកែសម្រួលភាសាធម្មជាតិគឺ Alan Turing។
'តេស្ត Turing'
ពេលដែល Turing កំពុងស្រាវជ្រាវ បញ្ជាជ្រងយន្ត ក្នុងទសវត្សរ៍ 1950 គាត់បានពិចារណាថាតើតេស្តសន្ទនា ដែលផ្តល់ទៅកាន់មនុស្សម្នាក់និងកុំព្យូទ័រ (តាមការសរសេរចញ្ជូមពាក្យ) ដែលមនុស្សនៅក្នុងសន្ទនានោះមិនប្រាកដថាតើគាត់កំពុងនិយាយជាមួយមនុស្សផ្សេងទេ ឬកុំព្យូទ័រហើយឬទេ។
បើនៅបន្ទាប់ពីរយៈពេលកំណត់នៃសន្ទនា មនុស្សម្នាក់មិនអាចសម្រេចបានថាចម្លើយមកពីកុំព្យូទ័រ ឬមិនមែនទេ តើអាចនិយាយបានទេថាកុំព្យូទ័រនេះកំពុង គិត?
បណ្តុះបណ្តាល - 'ហ្គេមក្លែងបន្លំ'
គំនិតនេះបានប្រភូសមកពីហ្គេមបន្ទប់ភោជនីយដ្ឋានមួយដែលហៅថា The Imitation Game ដែលអ្នកសួរចោទសំណុំគឺនៅតែម្នាក់នៅក្នុងបន្ទប់ និងត្រូវបញ្ជាក់គ្នាតាព័ន្ធនឹងមនុស្សពីរនាក់នៅក្នុងបន្ទប់មួយផ្សេងទៀតដែលជាបុរស និងស្រ្តីបន្ទាប់បន្សំពីគ្នា។ អ្នកសួរចោទអាចផ្ញើកំណត់ត្រាចេញ ហើយត្រូវពិចារណាផ្ញើសំណួរដែលចម្លើយសរសេររៀបរាប់ពីភេទរបស់មនុស្សមិនគួរត្រូវបញ្ជាក់ថាជាស្រ្តី ឬបុរស។ ពិតប្រាកដ អ្នកលេងនៅក្នុងបន្ទប់ផ្សេងទៀតកំពុងព្យាយាមបន្លំអ្នកសួរសំណួរដោយឆ្លើយវាផ្សេងពីការពិត ដែលមានគោលបំណងបន្លំ ឬបញ្ច្រាសអ្នកសួរចោទ ខណៈពេលផ្តល់មើលឲ្យមើលដូចជាកំពុងឆ្លើយស្មោះត្រង់។
ការអភិវឌ្ឍ Eliza
នៅទសវត្សរ៍ 1960 អ្នកវិទ្យាសាស្ត្រ MIT ម្នាក់ទៅជា Joseph Weizenbaum បានបង្កើត Eliza មនុស្សជឿថាជា 'គ្រូពេទ្យ' កុំព្យូទ័រមួយ ដែលនឹងសួរអ្នកអំពីសំណួរហើយផ្តល់មើលដូចជាយល់ពីចម្លើយរបស់ពួកគេ។ ប៉ុន្តែនៅពេល Eliza អាចបញ្ចាក់ប្រយោគនិងកំណត់អោយដឹងពីរចនាសម្ព័ន្ធវិញ្ញាណនិងពាក្យគន្លឹះដើម្បីផ្ដល់ចម្លើយមានហេតុ មានន័យក៏ពុំអាចនិយាយថា យល់ ប្រយោគនោះទេ។ បើ Eliza បានបង្ហាញប្រយោគដែលមានទ្រង់ទ្រាយ "ខ្ញុំមាន សោកសៅ" វាអាចប្តូរនិងប្តូរពាក្យក្នុងប្រយោគ ដើម្បីបង្កើតចម្លើយ "តើអ្នកសោកសៅរយៈពេលប៉ុន្មាន?"។
វាបង្កើតអារម្មណ៍ថា Eliza យល់ពីសេចក្តីថ្លែង និងកំពុងសួរពីសំណួរបន្ត ប៉ុន្តែនៅក្នុងភាពជាក់ស្តែង វាត្រឹមតែប្ដូរពេលនិងបន្ថែមពាក្យខ្លះៗប៉ុណ្ណោះ។ ប្រសិនបើ Eliza មិនអាចស្គាល់ពាក្យគន្លឹះណាមួយដែលមានចម្លើយវានឹងផ្ដល់ចម្លើយចៃដន្យដែលអាចត្រូវបានប្រើទាន់ក្នុងពាក្យជាច្រើនផ្សេងទៀត។ Eliza អាចត្រូវបានគេទប់បោកយ៉ាងងាយស្រួល ដូចជាបើអ្នកប្រើប្រាស់សរសេរ "អ្នកគឺ ជា កង់" វាអាចឆ្លើយថា "តើខ្ញុំបានជាកង់រយៈពេលប៉ុន្មាន?" ជំនួសឱ្យចម្លើយដែលមានហេតុផលជាង។
🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូមានយោបាយដើមបង្កើតកម្មវិធី ELIZA
កំណត់សម្គាល់: អ្នកអាចអានពិពណ៌នាដើមស្តីពី Eliza ដែលបានបោះពុម្ពផ្សាយនៅឆ្នាំ 1966 ប្រសិនបើអ្នកមានគណនី ACM។ ផ្ទុយនេះ អានអំពី Eliza នៅលើ វីគីភីឌា
ការប្រលង - កូដកម្មវិធីបូតសន្ទនាដែលមូលដ្ឋាន
បូតសន្ទនា ដូចជា Eliza គឺជាកម្មវិធីដែលទាញយកព័ត៌មានអ្នកប្រើ ហើយដូច្នេះមានអារម្មណ៍ថាបានយល់ និងឆ្លើយតបយ៉ាងឆ្លាតវៃ។ ខុសពី Eliza បូតរបស់យើងមិនមានច្បាប់ជាច្រើនព្រមទាំងមើលទៅដូចជាកាន់តែឆ្លាតមុខផងដែរ។ ផ្ទុយទៅវិញបូតរបស់យើងមានតែសមត្ថភាពតែមួយគត់ គឺរក្សាសន្ទនាឲ្យបន្តជាមួយចម្លើយចៃដន្យដែលអាចឆ្លើយតបបានក្នុងសន្ទនាធម្មតាណាមួយ។
ផែនការណ៍
ជំហានរបស់អ្នកពេលបង្កើតបូតសន្ទនា៖
- បោះពាក្យណែនាំដល់អ្នកប្រើប្រាស់អំពីរបៀបផ្អែកជាមួយបូត
- ចាប់ផ្តើមវដ្ត
- ទទួលយកបញ្ចូលអ្នកប្រើ
- បើអ្នកប្រើស្នើរបញ្ចប់ ទៅបញ្ចប់កម្មវិធី
- ដំណើរការបញ្ចូលអ្នកប្រើ និងកំណត់ចម្លើយ (នៅក្នុងករណីនេះ ចម្លើយគឺជាការជ្រើសរើសចៃដន្យពីបញ្ជីចម្លើយទូទៅ)
- បោះពាក្យចម្លើយ
- វដ្តត្រឡប់ទៅជំហានលេខ 2
ការបង្កើតបូត
មកបង្កើតបូតបន្ទាប់។ យើងនឹងចាប់ផ្តើមដោយកំណត់ពាក្យសម្តីមួយចំនួន។
-
បង្កើតបូតនេះដោយខ្លួនអ្នកនៅក្នុង Python ជាមួយចម្លើយចៃដន្យដូចខាងក្រោម៖
random_responses = ["That is quite interesting, please tell me more.", "I see. Do go on.", "Why do you say that?", "Funny weather we've been having, isn't it?", "Let's change the subject.", "Did you catch the game last night?"]វានេះជាឧទាហរណ៍លទ្ធផលដើម្បីណែនាំអ្នក (បញ្ចូលអ្នកប្រើនៅជួរដើមជាមួយ
>):Hello, I am Marvin, the simple robot. You can end this conversation at any time by typing 'bye' After typing each answer, press 'enter' How are you today? > I am good thanks That is quite interesting, please tell me more. > today I went for a walk Did you catch the game last night? > I did, but my team lost Funny weather we've been having, isn't it? > yes but I hope next week is better Let's change the subject. > ok, lets talk about music Why do you say that? > because I like music! Why do you say that? > bye It was nice talking to you, goodbye!ដំណោះស្រាយមួយដែលអាចធ្វើបានសម្រាប់បញ្ហានេះមាននៅ ទីនេះ
✅ បញ្ឈប់ និងពិចារណា
- តើអ្នកគិតថាចម្លើយចៃដន្យអាច 'បោកបញ្ឆោត' អ្នកណាម្នាក់ឲ្យគិតថាបូតបានយល់ពិតណែន?
- តើមានលក្ខណៈអ្វីដែលបូតនឹងត្រូវការដើម្បីមានប្រសិទ្ធភាពបន្ថែម?
- បើបូតអាចពិតប្រាកដ 'យល់' អត្ថន័យប្រយោគ តើវាត្រូវចាំអត្ថន័យនៃប្រយោគចាស់ក្នុងសន្ទនាជាមួយទេ?
🚀ការប្រកួតប្រជែង
ជ្រើសរើសមួយក្នុងចំណោមធាតុ "បញ្ឈប់ និងពិចារណា" ខាងលើ ហើយសាកល្បងអនុវត្តវាក្នុងកូដ ឬសរសេរបញ្ហាដោយផ្ទាល់ក្នុងទំព័រដោយប្រើ pseudocode។
នៅមេរៀនបន្ទាប់ អ្នកនឹងរៀនអំពីវិធីផ្សេងៗជាច្រើនក្នុងការបញ្ចាក់ភាសាធម្មជាតិ និងការសិក្សាយានយន្ត។
សំណួរបន្ទាប់មករួចពីមេរៀន
សេចក្ដីពិនិត្យ & ការសិក្សាផ្ទាល់ខ្លួន
សូមមើលឯកសារយោងខាងក្រោមជាឳកាសអានបន្ថែម។
ឯកសារយោង
- Schubert, Lenhart, "Computational Linguistics", The Stanford Encyclopedia of Philosophy (Spring 2020 Edition), Edward N. Zalta (ed.), URL = https://plato.stanford.edu/archives/spr2020/entries/computational-linguistics/.
- Princeton University "About WordNet." WordNet. Princeton University. 2010.
កិច្ចតម្រូវការ
ការបដិសេធ៖
ឯកសារនេះត្រូវបានបកប្រែក្នុងការប្រើប្រាស់សេវាកម្មបកប្រែ AI Co-op Translator។ ទោះបីយើងខិតខំរក្សាការត្រឹមត្រូវ ក៏ដោយ សូមយល់ដឹងថាការបកប្រែដោយម៉ាស៊ីនអាចមានកំហុសឬការមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាទ្រង់ទ្រាយដើមគួរត្រូវបានចាត់ទុកជាភាពដោយផ្លូវការជាមូលដ្ឋាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរតែប្រើការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះទេ។

