You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/my/6-NLP/1-Introduction-to-NLP/README.md

163 lines
16 KiB

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1c2ec40cf55c98a028a359c27ef7e45a",
"translation_date": "2025-09-05T14:12:02+00:00",
"source_file": "6-NLP/1-Introduction-to-NLP/README.md",
"language_code": "my"
}
-->
# သဘာဝဘာသာစကားလုပ်ငန်းစဉ် (NLP) အကြောင်းမိတ်ဆက်
ဒီသင်ခန်းစာမှာ *သဘာဝဘာသာစကားလုပ်ငန်းစဉ်* (NLP) ရဲ့ သမိုင်းအကျဉ်းချုပ်နဲ့ အရေးကြီးသောအယူအဆများကို လေ့လာသွားမှာ ဖြစ်ပါတယ်။ ဒါဟာ *ကွန်ပျူတာဘာသာဗေဒ* (computational linguistics) ရဲ့ အခန်းကဏ္ဍတစ်ခုဖြစ်ပါတယ်။
## [သင်ခန်းမတိုင်မီ စမ်းမေးခွန်း](https://ff-quizzes.netlify.app/en/ml/)
## မိတ်ဆက်
NLP ဟာ လူသိများတဲ့ အခန်းကဏ္ဍတစ်ခုဖြစ်ပြီး၊ ဒီနယ်ပယ်မှာ စက်လေ့လာမှု (machine learning) ကို အောင်မြင်စွာ အသုံးချထားပါတယ်။
✅ သင်နေ့စဉ်အသုံးပြုနေတဲ့ ဆော့ဖ်ဝဲတွေထဲမှာ NLP ပါဝင်နေတာကို သတိထားမိပါသလား။ ဥပမာ - သင့်ရဲ့ စကားဝိုင်းဆော့ဖ်ဝဲတွေ၊ သို့မဟုတ် မိုဘိုင်းအက်ပ်တွေမှာပါ။
ဒီသင်ခန်းစာမှာ သင်လေ့လာရမယ့်အရာတွေက:
- **ဘာသာစကားရဲ့ အယူအဆ**: ဘာသာစကားတွေ ဘယ်လိုဖွံ့ဖြိုးလာပြီး ဘာသာဗေဒရဲ့ အဓိကလေ့လာရေးနယ်ပယ်တွေက ဘာတွေလဲဆိုတာ။
- **အဓိပ္ပါယ်နဲ့ အယူအဆများ**: ကွန်ပျူတာတွေ ဘာသာစကားကို ဘယ်လိုလုပ်ငန်းစဉ်ဖြင့် ကိုင်တွယ်တယ်ဆိုတာ၊ ဥပမာ - စာကြောင်းခွဲခြမ်းစိတ်ဖြာခြင်း၊ သဒ္ဒါနဲ့ နာမ်၊ ကြိယာတွေကို သတ်မှတ်ခြင်း စတာတွေကို လေ့လာရမှာ ဖြစ်ပါတယ်။
## ကွန်ပျူတာဘာသာဗေဒ
ကွန်ပျူတာဘာသာဗေဒ (computational linguistics) ဟာ အတော်လေးနှစ်ပေါင်းများစွာ လေ့လာရေးနဲ့ ဖွံ့ဖြိုးရေးလုပ်နေတဲ့ နယ်ပယ်တစ်ခုဖြစ်ပြီး၊ ကွန်ပျူတာတွေက ဘာသာစကားနဲ့ အလုပ်လုပ်နိုင်ဖို့၊ နားလည်နိုင်ဖို့၊ ဘာသာပြန်နိုင်ဖို့ စမ်းသပ်နေတဲ့ နယ်ပယ်တစ်ခုပါ။ သဘာဝဘာသာစကားလုပ်ငန်းစဉ် (NLP) ဟာ လူသားဘာသာစကားတွေကို အဓိကထားပြီး လေ့လာတဲ့ နယ်ပယ်တစ်ခုဖြစ်ပါတယ်။
### ဥပမာ - ဖုန်း dictation
သင်ဖုန်းမှာ စာရိုက်မယ့်အစား စကားပြောပြီး စာသားအဖြစ် ပြောင်းတာကို သုံးဖူးလား။ ဒါဟာ သင်ပြောတဲ့စကားကို စနစ်တစ်ခုက စာသားအဖြစ် ပြောင်းပြီး၊ နောက်ပြီးတော့ အဲဒီစာသားကို သင့်ဖုန်း သို့မဟုတ် အကူအညီပေးစနစ်နဲ့ နားလည်နိုင်အောင် ပြောင်းတာပါ။
![comprehension](../../../../6-NLP/1-Introduction-to-NLP/images/comprehension.png)
> ဘာသာစကားနားလည်မှုဟာ အလွန်ခက်ခဲပါတယ်! ပုံကို [Jen Looper](https://twitter.com/jenlooper) မှ ဖန်တီးထားပါတယ်။
### ဒီနည်းပညာ ဘယ်လိုဖြစ်နိုင်တာလဲ?
ဒါဟာ တစ်စုံတစ်ယောက်က ဒီလိုလုပ်ဖို့ ကွန်ပျူတာပရိုဂရမ်ရေးသားထားလို့ ဖြစ်ပါတယ်။ အချို့သော သိပ္ပံစိတ်ကူးရေးသားသူတွေက လူတွေက ကွန်ပျူတာနဲ့ စကားပြောပြီး၊ ကွန်ပျူတာက အမြဲတမ်း နားလည်နိုင်မယ်လို့ ခန့်မှန်းခဲ့ကြပါတယ်။ ဒါပေမယ့် အဲဒါဟာ အလွန်ခက်ခဲတဲ့ ပြဿနာတစ်ခုဖြစ်ပြီး၊ ယနေ့အချိန်မှာ ပိုမိုနားလည်နိုင်ပေမယ့်၊ စာကြောင်းတစ်ကြောင်းရဲ့ အဓိပ္ပါယ်ကို အပြည့်အဝနားလည်နိုင်ဖို့ အခက်အခဲတွေ ရှိနေဆဲပါ။
သင့်ကို သဒ္ဒါနဲ့ ပတ်သက်ပြီး ကျောင်းမှာ သင်ခဲ့တဲ့ အချိန်တွေကို သတိရစေမလား။ နာမ်နဲ့ ကြိယာကို ခွဲခြားဖို့ ခက်ခဲတယ်ဆိုရင်၊ သင်တစ်ယောက်တည်းမဟုတ်ပါဘူး။ ကံကောင်းစွာနဲ့ ကွန်ပျူတာတွေက သဒ္ဒါစည်းမျဉ်းတွေကို အလွန်ကောင်းစွာ လိုက်နာနိုင်ပါတယ်။
## ကြိုတင်လိုအပ်ချက်များ
ဒီသင်ခန်းစာအတွက် အဓိကလိုအပ်ချက်က သင့်အတွက် ဒီသင်ခန်းစာရဲ့ ဘာသာစကားကို နားလည်ဖတ်ရှုနိုင်ဖို့ပါ။ သင့်မှာ သင်္ချာပြဿနာတွေ သို့မဟုတ် ဆာမီးမရှိပါဘူး။
ဒီသင်ခန်းစာမှာ သင်လိုအပ်မယ့်အရာတွေက:
- **Python 3 comprehension**: Python 3 ကို နားလည်ဖို့လိုအပ်ပါတယ်။
- **Visual Studio Code + extension**: Visual Studio Code နဲ့ Python extension ကို သုံးပါ။
- **TextBlob**: [TextBlob](https://github.com/sloria/TextBlob) ဟာ Python အတွက် ရိုးရှင်းတဲ့ စာသားလုပ်ငန်းစဉ် စာကြောင်းပါ။
```bash
pip install -U textblob
python -m textblob.download_corpora
```
> 💡 အကြံပြုချက်: Python ကို VS Code ပတ်ဝန်းကျင်မှာ တိုက်ရိုက် အလုပ်လုပ်နိုင်ပါတယ်။ [docs](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-77952-leestott) ကို ကြည့်ပါ။
## စက်တွေနဲ့ စကားပြောခြင်း
လူသားဘာသာစကားကို ကွန်ပျူတာနားလည်စေဖို့ ကြိုးစားမှုဟာ အတော်လေးနှစ်ပေါင်းများစွာ ရှိခဲ့ပြီး၊ အစောဆုံး သိပ္ပံပညာရှင်တစ်ဦးဖြစ်တဲ့ *Alan Turing* က ဒီအကြောင်းကို စဉ်းစားခဲ့ပါတယ်။
### 'Turing Test'
Turing ဟာ 1950 ခုနှစ်တွေမှာ *အတုယူပွဲ* (The Imitation Game) ဆိုတဲ့ အကြံကနေ စတင်ပြီး၊ လူနဲ့ ကွန်ပျူတာကို စကားပြောစမ်းသပ်မှုတစ်ခုလုပ်ခဲ့ပါတယ်။
### Eliza ဖွံ့ဖြိုးတိုးတက်မှု
1960 ခုနှစ်တွေမှာ MIT ရဲ့ သိပ္ပံပညာရှင်တစ်ဦးဖြစ်တဲ့ *Joseph Weizenbaum* က [*Eliza*](https://wikipedia.org/wiki/ELIZA) ဆိုတဲ့ ကွန်ပျူတာ 'သိပ္ပံဆရာ' တစ်ဦးကို ဖန်တီးခဲ့ပါတယ်။
[![Chatting with Eliza](https://img.youtube.com/vi/RMK9AphfLco/0.jpg)](https://youtu.be/RMK9AphfLco "Chatting with Eliza")
> 🎥 Eliza အကြောင်း ဗီဒီယိုကို ကြည့်ရန် ပုံကို နှိပ်ပါ။
## လေ့ကျင့်မှု - အခြေခံ စကားပြော bot တစ်ခုရေးခြင်း
Eliza လိုပဲ စကားပြော bot တစ်ခုကို Python နဲ့ ဖန်တီးကြည့်ပါ။
### အစီအစဉ်
1. အသုံးပြုသူကို bot နဲ့ ဘယ်လိုအလုပ်လုပ်ရမယ်ဆိုတာ ရှင်းပြပါ။
2. loop တစ်ခုစတင်ပါ။
1. အသုံးပြုသူရဲ့ input ကို လက်ခံပါ။
2. အသုံးပြုသူက ထွက်ချင်တယ်ဆိုရင် ထွက်ပါ။
3. အသုံးပြုသူရဲ့ input ကို လုပ်ငန်းစဉ်ဖြင့် ပြောင်းပါ။
4. ပြန်လည်ဖြေကြားပါ။
3. loop ကို ပြန်လုပ်ပါ။
### Bot ဖန်တီးခြင်း
Python နဲ့ bot ကို ဖန်တီးပါ။
1. အောက်ပါ random responses တွေကို သုံးပြီး bot ကို ဖန်တီးပါ:
```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?"]
```
အောက်ပါ output ကို အညွှန်းအဖြစ် သုံးပါ (အသုံးပြုသူရဲ့ input ဟာ `>` နဲ့ စတင်ပါတယ်):
```output
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!
```
တစ်ခုဖြေရှင်းနည်းကို [ဒီမှာ](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/1-Introduction-to-NLP/solution/bot.py) ကြည့်နိုင်ပါတယ်။
✅ စဉ်းစားကြည့်ပါ
1. Random responses တွေက bot ဟာ တကယ်နားလည်တယ်လို့ လူတွေကို လှည့်စားနိုင်မလား?
2. Bot ကို ပိုထိရောက်အောင် ဘာတွေလိုအပ်မလဲ?
3. Bot တစ်ခုဟာ စကားကြောင်းရဲ့ အဓိပ္ပါယ်ကို တကယ်နားလည်နိုင်ဖို့၊ ယခင်စကားကြောင်းတွေကို မှတ်မိဖို့ လိုအပ်မလား?
---
## 🚀 စိန်ခေါ်မှု
အထက်ပါ "စဉ်းစားကြည့်ပါ" အချက်တစ်ခုကို ရွေးပြီး၊ code နဲ့ စမ်းသပ်ကြည့်ပါ၊ သို့မဟုတ် pseudocode နဲ့ ဖြေရှင်းနည်းရေးပါ။
နောက်သင်ခန်းစာမှာ သဘာဝဘာသာစကားကို စနစ်တကျ ခွဲခြမ်းစိတ်ဖြာဖို့ နည်းလမ်းအမျိုးမျိုးကို လေ့လာသွားပါမယ်။
## [သင်ခန်းပြီးနောက် စမ်းမေးခွန်း](https://ff-quizzes.netlify.app/en/ml/)
## ပြန်လည်သုံးသပ်ခြင်းနှင့် ကိုယ်တိုင်လေ့လာခြင်း
အောက်ပါ ရင်းမြစ်တွေကို ဖတ်ရှုပါ:
### ရင်းမြစ်များ
1. 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/>.
2. Princeton University "About WordNet." [WordNet](https://wordnet.princeton.edu/). Princeton University. 2010.
## လုပ်ငန်း
[Bot ရှာဖွေပါ](assignment.md)
---
**ဝက်ဘ်ဆိုက်မှတ်ချက်**:
ဤစာရွက်စာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ကို အသုံးပြု၍ ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှန်ကန်မှုအတွက် ကြိုးစားနေပါသော်လည်း၊ အလိုအလျောက်ဘာသာပြန်ဆိုမှုများတွင် အမှားများ သို့မဟုတ် မမှန်ကန်မှုများ ပါဝင်နိုင်သည်ကို ကျေးဇူးပြု၍ သတိပြုပါ။ မူရင်းစာရွက်စာတမ်းကို ၎င်း၏ မူလဘာသာစကားဖြင့် အာဏာတည်သောရင်းမြစ်အဖြစ် သတ်မှတ်သင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် ပရော်ဖက်ရှင်နယ် လူသားဘာသာပြန်ကို အကြံပြုပါသည်။ ဤဘာသာပြန်ကို အသုံးပြုခြင်းမှ ဖြစ်ပေါ်လာသော နားလည်မှုမှားများ သို့မဟုတ် အဓိပ္ပါယ်မှားများအတွက် ကျွန်ုပ်တို့သည် တာဝန်မယူပါ။