Tag Archives: deepcut

ทางเลือกในการตัดคำภาษาไทย ด้วย Python

ประโยคในภาษาไทยไม่ได้มีการเว้นวรรคระหว่างคำ การจะตัดคำในประโยคจึงต้องใช้ algorithm มาหาว่าตรงไหนเป็นคำ แล้วจึงตัด ก็ไปเจออยากน้อยสองที่ซึ่งใช้ได้ กับภาษา Python คือ PyThaiNLP และ deepcut ท่าทาง machine learning ได้ประโยชน์ในงานนี้ล่ะครับ

PyThaiNLP
https://python3.wannaphong.com/2017/05/pythainlp-%e0%b9%82%e0%b8%a1%e0%b8%94%e0%b8%b9%e0%b8%a5-nlp-%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b9%84%e0%b8%97%e0%b8%a2%e0%b9%83%e0%b8%99-python.html
https://github.com/wannaphongcom/pythainlp

ผมใช้กับ Python 3 นะครับ ติดตั้งโดยสั่ง

pip3 install pythainlp

ทดลองสคริป Python (จริงๆ ก็ทำคล้ายๆ ของเจ้าของผลงานครับ)

from pythainlp.segment import segment
s=segment('ฉันรักภาษาไทยเพราะฉันเป็นคนไทย')
print(s)

ได้ออกมาว่า

['ฉัน', 'รัก', 'ภาษา', 'ไทย', 'เพราะ', 'ฉัน', 'เป็น', 'คน', 'ไทย']

ถ้าเป็น Python 2 ก็ใช้ได้เหมือนกันครับ แต่ต้องระบุสตริงเป็น Unicode ด้วย ใส่ u ข้างหน้าสตริง (u’ฉันรักภาษาไทยเพราะฉันเป็นคนไทย’) ส่วนผลลัพธ์เมื่อพิมพ์อาจจะออกมาเป็นโค้ดนะครับ เช่น u’\u0e09\u0e31\u0e19′ คือ ‘ฉัน’

deepcut
https://www.facebook.com/groups/988867541235062/permalink/1258831837571963/
https://github.com/rkcosmos/deepcut

ติดตั้งบน Python 3 บ้าง

pip3 install deepcut

ซึ่งรอนานเอาเรื่องเลยครับ จากนั้นก็ทดลองใช้งาน

from deepcut import tokenize 
tokenize('ฉันรักภาษาไทยเพราะฉันเป็นคนไทย')

ก็ได้ผลลัพธ์เหมือนกัน เลยลองใช้ทั้งสอบแบบในสคริปเดียวกันดู
(พึ่งเห็นว่ายังไม่ได้คอมไพล์ TensorFlow ให้ไปใช้ความสามารถของชุดคำสั่ง SSE 4.1, SSE 4.2 และ AVX อันที่จริง GPU ค่ายเขียวในเครื่องก็มีนะครับ แต่ต้องสมัครลงทะเบียน cuDNN)

แล้วก็ รวมตัวเลือก https://github.com/kobkrit/nlp_thai_resources/blob/master/README.md