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/th/6-NLP/3-Translation-Sentiment/README.md

200 lines
28 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "be03c8182982b87ced155e4e9d1438e8",
"translation_date": "2025-09-05T22:23:15+00:00",
"source_file": "6-NLP/3-Translation-Sentiment/README.md",
"language_code": "th"
}
-->
# การแปลและการวิเคราะห์ความรู้สึกด้วย ML
ในบทเรียนก่อนหน้านี้ คุณได้เรียนรู้วิธีสร้างบอทพื้นฐานโดยใช้ `TextBlob` ซึ่งเป็นไลบรารีที่มี ML อยู่เบื้องหลังเพื่อทำงาน NLP พื้นฐาน เช่น การดึงวลีคำนาม อีกหนึ่งความท้าทายสำคัญในภาษาศาสตร์เชิงคอมพิวเตอร์คือการแปลประโยคจากภาษาพูดหรือภาษาเขียนหนึ่งไปยังอีกภาษาอย่างแม่นยำ
## [แบบทดสอบก่อนเรียน](https://ff-quizzes.netlify.app/en/ml/)
การแปลเป็นปัญหาที่ยากมาก เนื่องจากมีภาษาหลายพันภาษา และแต่ละภาษามีกฎไวยากรณ์ที่แตกต่างกันอย่างมาก วิธีหนึ่งคือการแปลงกฎไวยากรณ์อย่างเป็นทางการของภาษา เช่น ภาษาอังกฤษ ให้เป็นโครงสร้างที่ไม่ขึ้นกับภาษา และจากนั้นแปลงกลับไปเป็นอีกภาษา วิธีนี้หมายความว่าคุณจะต้องทำตามขั้นตอนดังนี้:
1. **การระบุ** ระบุหรือแท็กคำในภาษาต้นทาง เช่น คำนาม คำกริยา เป็นต้น
2. **สร้างการแปล** สร้างการแปลโดยตรงของแต่ละคำในรูปแบบภาษาปลายทาง
### ตัวอย่างประโยค ภาษาอังกฤษเป็นภาษาไอริช
ในภาษา 'อังกฤษ' ประโยค _I feel happy_ มีสามคำในลำดับ:
- **ประธาน** (I)
- **กริยา** (feel)
- **คำคุณศัพท์** (happy)
อย่างไรก็ตาม ในภาษา 'ไอริช' ประโยคเดียวกันมีโครงสร้างไวยากรณ์ที่แตกต่างกันมาก - อารมณ์เช่น "*happy*" หรือ "*sad*" ถูกแสดงออกว่าเป็น *สิ่งที่อยู่บนตัวคุณ*
วลีภาษาอังกฤษ `I feel happy` ในภาษาไอริชจะเป็น `Tá athas orm` การแปลแบบ *ตรงตัว* จะเป็น `Happy is upon me`
ผู้พูดภาษาไอริชที่แปลเป็นภาษาอังกฤษจะพูดว่า `I feel happy` ไม่ใช่ `Happy is upon me` เพราะพวกเขาเข้าใจความหมายของประโยค แม้ว่าคำและโครงสร้างประโยคจะแตกต่างกัน
ลำดับอย่างเป็นทางการสำหรับประโยคในภาษาไอริชคือ:
- **กริยา** (Tá หรือ is)
- **คำคุณศัพท์** (athas หรือ happy)
- **ประธาน** (orm หรือ upon me)
## การแปล
โปรแกรมแปลแบบง่ายอาจแปลคำเท่านั้น โดยไม่สนใจโครงสร้างประโยค
✅ หากคุณเคยเรียนภาษาที่สอง (หรือสามหรือมากกว่า) ในวัยผู้ใหญ่ คุณอาจเริ่มต้นด้วยการคิดในภาษาของคุณเอง แปลแนวคิดคำต่อคำในหัวของคุณเป็นภาษาที่สอง และจากนั้นพูดการแปลออกมา นี่คล้ายกับสิ่งที่โปรแกรมแปลคอมพิวเตอร์แบบง่ายกำลังทำอยู่ สิ่งสำคัญคือต้องก้าวข้ามขั้นตอนนี้เพื่อให้ได้ความคล่องแคล่ว!
การแปลแบบง่ายนำไปสู่การแปลที่ไม่ดี (และบางครั้งก็ตลก) เช่น `I feel happy` แปลตรงตัวเป็น `Mise bhraitheann athas` ในภาษาไอริช ซึ่งหมายถึง (ตรงตัว) `me feel happy` และไม่ใช่ประโยคภาษาไอริชที่ถูกต้อง แม้ว่าภาษาอังกฤษและภาษาไอริชจะเป็นภาษาที่พูดบนเกาะที่อยู่ใกล้กันมาก แต่ก็เป็นภาษาที่แตกต่างกันมากโดยมีกฎไวยากรณ์ที่แตกต่างกัน
> คุณสามารถดูวิดีโอเกี่ยวกับประเพณีภาษาศาสตร์ของไอริช เช่น [วิดีโอนี้](https://www.youtube.com/watch?v=mRIaLSdRMMs)
### วิธีการใช้ Machine Learning
จนถึงตอนนี้ คุณได้เรียนรู้เกี่ยวกับวิธีการใช้กฎอย่างเป็นทางการใน NLP อีกวิธีหนึ่งคือการละเลยความหมายของคำ และ _ใช้ Machine Learning เพื่อค้นหารูปแบบแทน_ วิธีนี้สามารถใช้ได้ในงานแปลหากคุณมีข้อความจำนวนมาก (*corpus*) หรือข้อความ (*corpora*) ในทั้งภาษาต้นทางและภาษาปลายทาง
ตัวอย่างเช่น ลองพิจารณากรณีของ *Pride and Prejudice* นวนิยายภาษาอังกฤษที่มีชื่อเสียงซึ่งเขียนโดย Jane Austen ในปี 1813 หากคุณดูหนังสือในภาษาอังกฤษและการแปลหนังสือเป็นภาษาฝรั่งเศสโดยมนุษย์ คุณสามารถตรวจจับวลีในหนึ่งภาษาที่ถูกแปล _ตามสำนวน_ เป็นอีกภาษาได้ คุณจะทำสิ่งนี้ในอีกสักครู่
ตัวอย่างเช่น เมื่อวลีภาษาอังกฤษ `I have no money` ถูกแปลตรงตัวเป็นภาษาฝรั่งเศส อาจกลายเป็น `Je n'ai pas de monnaie` "Monnaie" เป็นคำฝรั่งเศสที่หลอกลวง เนื่องจาก 'money' และ 'monnaie' ไม่ใช่คำพ้องความหมาย การแปลที่ดีกว่าที่มนุษย์อาจทำคือ `Je n'ai pas d'argent` เพราะมันสื่อความหมายได้ดีกว่าที่คุณไม่มีเงิน (แทนที่จะเป็น 'เศษเหรียญ' ซึ่งเป็นความหมายของ 'monnaie')
![monnaie](../../../../6-NLP/3-Translation-Sentiment/images/monnaie.png)
> ภาพโดย [Jen Looper](https://twitter.com/jenlooper)
หากโมเดล ML มีการแปลโดยมนุษย์เพียงพอที่จะสร้างโมเดลขึ้นมาได้ มันสามารถปรับปรุงความแม่นยำของการแปลโดยการระบุรูปแบบทั่วไปในข้อความที่เคยถูกแปลโดยผู้เชี่ยวชาญที่พูดทั้งสองภาษา
### แบบฝึกหัด - การแปล
คุณสามารถใช้ `TextBlob` เพื่อแปลประโยค ลองใช้ประโยคแรกที่มีชื่อเสียงของ **Pride and Prejudice**:
```python
from textblob import TextBlob
blob = TextBlob(
"It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife!"
)
print(blob.translate(to="fr"))
```
`TextBlob` ทำงานได้ดีในการแปล: "C'est une vérité universellement reconnue, qu'un homme célibataire en possession d'une bonne fortune doit avoir besoin d'une femme!".
สามารถกล่าวได้ว่าการแปลของ TextBlob นั้นแม่นยำกว่าการแปลภาษาฝรั่งเศสในปี 1932 โดย V. Leconte และ Ch. Pressoir:
"C'est une vérité universelle qu'un célibataire pourvu d'une belle fortune doit avoir envie de se marier, et, si peu que l'on sache de son sentiment à cet egard, lorsqu'il arrive dans une nouvelle résidence, cette idée est si bien fixée dans l'esprit de ses voisins qu'ils le considèrent sur-le-champ comme la propriété légitime de l'une ou l'autre de leurs filles."
ในกรณีนี้ การแปลที่ได้รับการสนับสนุนจาก ML ทำงานได้ดีกว่าผู้แปลที่ใส่คำในปากของผู้เขียนต้นฉบับโดยไม่จำเป็นเพื่อความชัดเจน
> เกิดอะไรขึ้นที่นี่? และทำไม TextBlob ถึงเก่งเรื่องการแปล? เบื้องหลัง มันใช้ Google Translate ซึ่งเป็น AI ที่ซับซ้อนสามารถวิเคราะห์วลีหลายล้านวลีเพื่อทำนายสตริงที่ดีที่สุดสำหรับงานที่กำลังทำ ไม่มีอะไรที่เป็นการทำงานแบบแมนนวลที่นี่ และคุณต้องมีการเชื่อมต่ออินเทอร์เน็ตเพื่อใช้ `blob.translate`
✅ ลองประโยคอื่น ๆ อีก คุณคิดว่า ML หรือการแปลโดยมนุษย์ดีกว่ากัน? ในกรณีใด?
## การวิเคราะห์ความรู้สึก
อีกหนึ่งพื้นที่ที่ Machine Learning สามารถทำงานได้ดีมากคือการวิเคราะห์ความรู้สึก วิธีที่ไม่ใช้ ML ในการวิเคราะห์ความรู้สึกคือการระบุคำและวลีที่ 'บวก' และ 'ลบ' จากนั้น เมื่อมีข้อความใหม่ ให้คำนวณค่ารวมของคำบวก ลบ และเป็นกลางเพื่อระบุความรู้สึกโดยรวม
วิธีนี้ถูกหลอกได้ง่ายอย่างที่คุณอาจเห็นในงาน Marvin - ประโยค `Great, that was a wonderful waste of time, I'm glad we are lost on this dark road` เป็นประโยคที่มีความรู้สึกเชิงลบแบบประชดประชัน แต่ขั้นตอนวิธีง่าย ๆ ตรวจพบคำว่า 'great', 'wonderful', 'glad' เป็นบวก และ 'waste', 'lost' และ 'dark' เป็นลบ ความรู้สึกโดยรวมถูกโน้มน้าวโดยคำที่ขัดแย้งกันเหล่านี้
✅ หยุดสักครู่และคิดเกี่ยวกับวิธีที่เราสื่อประชดประชันในฐานะผู้พูดมนุษย์ น้ำเสียงมีบทบาทสำคัญ ลองพูดวลี "Well, that film was awesome" ในวิธีต่าง ๆ เพื่อค้นพบว่าน้ำเสียงของคุณสื่อความหมายอย่างไร
### วิธีการใช้ ML
วิธีการ ML คือการรวบรวมข้อความเชิงลบและบวกด้วยมือ - ทวีต หรือรีวิวภาพยนตร์ หรืออะไรก็ตามที่มนุษย์ให้คะแนน *และ* ความคิดเห็นเป็นลายลักษณ์อักษร จากนั้นสามารถใช้เทคนิค NLP กับความคิดเห็นและคะแนน เพื่อให้รูปแบบปรากฏขึ้น (เช่น รีวิวภาพยนตร์เชิงบวกมักมีวลี 'Oscar worthy' มากกว่าที่รีวิวภาพยนตร์เชิงลบ หรือรีวิวร้านอาหารเชิงบวกพูดว่า 'gourmet' มากกว่า 'disgusting')
> ⚖️ **ตัวอย่าง**: หากคุณทำงานในสำนักงานของนักการเมือง และมีการอภิปรายกฎหมายใหม่ ผู้มีสิทธิเลือกตั้งอาจเขียนอีเมลถึงสำนักงานเพื่อสนับสนุนหรือคัดค้านกฎหมายใหม่ คุณได้รับมอบหมายให้อ่านอีเมลและจัดเรียงเป็น 2 กอง *สนับสนุน* และ *คัดค้าน* หากมีอีเมลจำนวนมาก คุณอาจรู้สึกหนักใจในการอ่านทั้งหมด จะดีแค่ไหนถ้าบอทสามารถอ่านทั้งหมดให้คุณ เข้าใจ และบอกคุณว่าอีเมลแต่ละฉบับอยู่ในกองไหน?
>
> วิธีหนึ่งที่จะทำให้สิ่งนี้สำเร็จคือการใช้ Machine Learning คุณจะฝึกโมเดลด้วยส่วนหนึ่งของอีเมล *คัดค้าน* และส่วนหนึ่งของอีเมล *สนับสนุน* โมเดลจะมีแนวโน้มที่จะเชื่อมโยงวลีและคำกับฝั่งคัดค้านและฝั่งสนับสนุน *แต่จะไม่เข้าใจเนื้อหาใด ๆ* เพียงแค่คำบางคำและรูปแบบมีแนวโน้มที่จะปรากฏในอีเมล *คัดค้าน* หรือ *สนับสนุน* คุณสามารถทดสอบมันด้วยอีเมลบางฉบับที่คุณไม่ได้ใช้ในการฝึกโมเดล และดูว่ามันมาถึงข้อสรุปเดียวกับคุณหรือไม่ จากนั้น เมื่อคุณพอใจกับความแม่นยำของโมเดล คุณสามารถประมวลผลอีเมลในอนาคตโดยไม่ต้องอ่านแต่ละฉบับ
✅ กระบวนการนี้ฟังดูเหมือนกระบวนการที่คุณเคยใช้ในบทเรียนก่อนหน้านี้หรือไม่?
## แบบฝึกหัด - ประโยคที่มีความรู้สึก
ความรู้สึกถูกวัดด้วย *ความเป็นขั้ว* ตั้งแต่ -1 ถึง 1 หมายถึง -1 คือความรู้สึกเชิงลบที่สุด และ 1 คือความรู้สึกเชิงบวกที่สุด ความรู้สึกยังถูกวัดด้วยคะแนน 0 - 1 สำหรับความเป็นวัตถุ (0) และความเป็นอัตวิสัย (1)
ลองดูอีกครั้งที่ *Pride and Prejudice* ของ Jane Austen ข้อความมีอยู่ที่นี่ที่ [Project Gutenberg](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm) ตัวอย่างด้านล่างแสดงโปรแกรมสั้น ๆ ที่วิเคราะห์ความรู้สึกของประโยคแรกและประโยคสุดท้ายจากหนังสือและแสดงคะแนนความเป็นขั้วและคะแนนความเป็นวัตถุ/อัตวิสัย
คุณควรใช้ไลบรารี `TextBlob` (ที่อธิบายไว้ข้างต้น) เพื่อกำหนด `sentiment` (คุณไม่จำเป็นต้องเขียนเครื่องคำนวณความรู้สึกของคุณเอง) ในงานต่อไปนี้
```python
from textblob import TextBlob
quote1 = """It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife."""
quote2 = """Darcy, as well as Elizabeth, really loved them; and they were both ever sensible of the warmest gratitude towards the persons who, by bringing her into Derbyshire, had been the means of uniting them."""
sentiment1 = TextBlob(quote1).sentiment
sentiment2 = TextBlob(quote2).sentiment
print(quote1 + " has a sentiment of " + str(sentiment1))
print(quote2 + " has a sentiment of " + str(sentiment2))
```
คุณจะเห็นผลลัพธ์ดังนี้:
```output
It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want # of a wife. has a sentiment of Sentiment(polarity=0.20952380952380953, subjectivity=0.27142857142857146)
Darcy, as well as Elizabeth, really loved them; and they were
both ever sensible of the warmest gratitude towards the persons
who, by bringing her into Derbyshire, had been the means of
uniting them. has a sentiment of Sentiment(polarity=0.7, subjectivity=0.8)
```
## ความท้าทาย - ตรวจสอบความเป็นขั้วของความรู้สึก
งานของคุณคือการกำหนด โดยใช้ความเป็นขั้วของความรู้สึกว่า *Pride and Prejudice* มีประโยคที่เป็นบวกอย่างแน่นอนมากกว่าประโยคที่เป็นลบอย่างแน่นอนหรือไม่ สำหรับงานนี้ คุณสามารถสมมติว่าคะแนนความเป็นขั้ว 1 หรือ -1 เป็นบวกหรือเป็นลบอย่างแน่นอนตามลำดับ
**ขั้นตอน:**
1. ดาวน์โหลด [สำเนา Pride and Prejudice](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm) จาก Project Gutenberg เป็นไฟล์ .txt ลบข้อมูลเมตาที่จุดเริ่มต้นและจุดสิ้นสุดของไฟล์ เหลือเพียงข้อความต้นฉบับ
2. เปิดไฟล์ใน Python และดึงเนื้อหาเป็นสตริง
3. สร้าง TextBlob โดยใช้สตริงของหนังสือ
4. วิเคราะห์แต่ละประโยคในหนังสือในลูป
1. หากความเป็นขั้วคือ 1 หรือ -1 ให้เก็บประโยคไว้ในอาร์เรย์หรือรายการของข้อความบวกหรือลบ
5. ในตอนท้าย พิมพ์ประโยคบวกและประโยคลบทั้งหมด (แยกกัน) และจำนวนของแต่ละประเภท
นี่คือตัวอย่าง [วิธีแก้ปัญหา](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/3-Translation-Sentiment/solution/notebook.ipynb)
✅ ตรวจสอบความรู้
1. ความรู้สึกขึ้นอยู่กับคำที่ใช้ในประโยค แต่โค้ด *เข้าใจ* คำหรือไม่?
2. คุณคิดว่าความเป็นขั้วของความรู้สึกนั้นแม่นยำหรือไม่ หรือพูดอีกอย่าง คุณ *เห็นด้วย* กับคะแนนหรือไม่?
1. โดยเฉพาะ คุณเห็นด้วยหรือไม่เห็นด้วยกับความเป็นขั้ว **บวก** อย่างแน่นอนของประโยคต่อไปนี้:
* “What an excellent father you have, girls!” said she, when the door was shut.
* “Your examination of Mr. Darcy is over, I presume,” said Miss Bingley; “and pray what is the result?” “I am perfectly convinced by it that Mr. Darcy has no defect.
* How wonderfully these sort of things occur!
* I have the greatest dislike in the world to that sort of thing.
* Charlotte is an excellent manager, I dare say.
* “This is delightful indeed!
* I am so happy!
* Your idea of the ponies is delightful.
2. ประโยค 3 ประโยคถัดไปถูกให้คะแนนด้วยความเป็นขั้วบวกอย่างแน่นอน แต่เมื่ออ่านอย่างละเอียด พวกมันไม่ใช่ประโยคบวก ทำไมการวิเคราะห์ความรู้สึกถึงคิดว่าพวกมันเป็นประโยคบวก?
* Happy shall I be, when his stay at Netherfield is over!” “I wish I could say anything to comfort you,” replied Elizabeth; “but it is wholly out of my power.
* If I could but see you as happy!
* Our distress, my dear Lizzy, is very great.
3. คุณเห็นด้วยหรือไม่เห็นด้วยกับความเป็นขั้ว **ลบ** อย่างแน่นอนของประโยคต่อไปนี้?
- Everybody is disgusted with his pride.
- “I should like to know how he behaves among strangers.” “You shall hear then—but prepare yourself for something very dreadful.
- The pause was to Elizabeths feelings dreadful.
- It would be dreadful!
✅ ผู้ที่ชื่นชอบ Jane Austen จะเข้าใจว่าเธอมักใช้หนังสือของเธอเพื่อวิจารณ์แง่มุมที่ไร้สาระของสังคมยุครีเจนซี่ของอังกฤษ Elizabeth Bennett ตัวละครหลักใน *Pride and Prejudice* เป็นผู้สังเกตการณ์ทางสังคมที่เฉียบแหลม (เหมือนผู้เขียน) และภาษาของเธอมักมีความหมายที่ลึกซึ้ง แม้แต่ Mr. Darcy (ตัวละครที่เป็นคู่รักในเรื่อง) ยังสังเกตเห็นการใช้ภาษาที่ขี้เล่นและล้อเลียนของ Elizabeth: "I have had the pleasure of your acquaintance long enough to know that you find great enjoyment in occasionally professing opinions which in fact are not your own."
---
## 🚀ความท้าทาย
คุณสามารถทำให้ Marvin ดียิ่งขึ้นได้โดยการดึงคุณสมบัติอื่น ๆ จากข้อมูลที่ผู้ใช้ป้อนหรือไม่?
## [แบบทดสอบหลังเรียน](https://ff-quizzes.netlify.app/en/ml/)
## ทบทวนและศึกษาด้วยตนเอง
มีหลายวิธีในการวิเคราะห์อารมณ์จากข้อความ ลองคิดถึงการใช้งานในธุรกิจที่อาจนำเทคนิคนี้ไปใช้ และลองคิดถึงวิธีที่มันอาจผิดพลาดได้ อ่านเพิ่มเติมเกี่ยวกับระบบวิเคราะห์อารมณ์ที่ซับซ้อนและพร้อมใช้งานในองค์กร เช่น [Azure Text Analysis](https://docs.microsoft.com/azure/cognitive-services/Text-Analytics/how-tos/text-analytics-how-to-sentiment-analysis?tabs=version-3-1?WT.mc_id=academic-77952-leestott) ทดสอบประโยคจากเรื่อง Pride and Prejudice ด้านบนและดูว่ามันสามารถตรวจจับความละเอียดอ่อนของอารมณ์ได้หรือไม่
## งานที่ได้รับมอบหมาย
[Poetic license](assignment.md)
---
**ข้อจำกัดความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาต้นทางควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษาจากผู้เชี่ยวชาญ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้