การตัดคำไทย ด้วย Python
ก่อนอื่น บอกก่อนว่า ตอนนี้กำลังเรียนวิชา Data science ได้มีการทำ การวิเคราะห์ รีวิว ซึ่ง จำเป็น ต้องตัดคำเพื่อ เข้าสู่กระบวนการ Machine Learning นำมาวิเคราห์ Positive และ Negative ดังนั้นจึงขอ นำการตัดคำภาษา ไทยแบบง่ายมา แชร์ ครับ
โดยเราจะใช้ Lib PyThaiNLP นะครับ
— https://github.com/PyThaiNLP/pythainlp
การติดตั้ง
— pip install pythainlp
รายละเอียด ของ LIB
- ตัดคำภาษาไทย
- ถอดเสียงภาษาไทยเป็น Latin
- Postaggers ภาษาไทย
- อ่านตัวเลขเป็นข้อความภาษาไทย
- เรียงจำนวนคำของประโยค
- แก้ไขปัญหาการพิมพ์ลืมเปลี่ยนภาษา
- เช็คคำผิดในภาษาไทย
- รองรับ Thai Character Clusters (TCC) และ ETCC
- Thai WordNet
- Stop Word ภาษาไทย
- Meta Sound ภาษาไทย
- Thai Soundex
- และอื่น ๆ
มาเริ่มลองใช้กันเลย
เริ่มที่การตัดคำ
สำหรับ method การตัดคำ คือฃ
word_tokenize
โดย parameter มีใส่ 2 ตัว word_tokenize(text,engine=’ระบบตัดคำ’)
text คือ ข้อความที่ต้องการตัด
engine คือ ระบบตัดคำ มีดังนี้
- icu — engine ตัวดั้งเดิมของ PyThaiNLP (ความแม่นยำต่ำ) และเป็นค่าเริ่มต้น
- dict — เป็นการตัดคำโดยใช้พจานุกรมจาก thaiword.txt ใน corpus (ความแม่นยำปานกลาง) จะคืนค่า False หากข้อความนั้นไม่สามารถตัดคำได้
- longest-matching ใช้ Longest matching ในการตัดคำ
- mm — ใช้ Maximum Matching algorithm ในการตัดคำภาษาไทย — API ชุดเก่า
- newmm — ใช้ Maximum Matching algorithm ในการตัดคำภาษาไทย
- pylexto ใช้ LexTo ในการตัดคำ โดยเป็น Longest matching
- deepcut ใช้ deepcut จาก https://github.com/rkcosmos/deepcut ในการตัดคำภาษาไทย
- wordcutpy ใช้ wordcutpy (https://github.com/veer66/wordcutpy) ในการตัดคำ
อ่านเพิ่มเติมได้ที่: LINK
ตัวอย่างโค๊ดดิ้ง
from pythainlp import word_tokenize
text = "ทดสอบการตัดตำภาษาไทย"
proc = word_tokenize(text, engine='newmm')
print(proc)
ผลลัพท์ที่ได้
['ทดสอบ', 'การ', 'ตัด', 'ตำ', 'ภาษาไทย']
ง่ายๆใช่มั้ยครับ
มาดู stopwords ในภาษาไทยกัน ปล. คือคำที่เอาออกแล้วไม่มีผลต่อประโยค
from pythainlp.corpus import stopwords
words = stopwords.words('thai')
print(words)
ผลลัพท์ที่ได้
Credit
ขอบคุณ LIBRARY ดีๆจาก คุณวรรณพงษ์ ภัททิยไพบูลย