Tags:
Node Thumbnail

คุณรักพงษ์ กิตตินราดร และคุณกรกฎ เชาวะวณิช Data Scientist จาก True Corporation เปิดซอร์สโครงการ deepcut ระบบตัดคำแบบ deep learning โดยพัฒนาด้วย Keras

ข้อมูลที่ใช้เทรนเป็นชุดข้อมูล BEST ของ NECTEC โดยแบ่งข้อมูลสำหรับฝึก 90% และข้อมูลสำหรับทดสอบอีก 10% โมเดลพยายามระบุว่าแต่ละตัวอักษรเป็นจุดเริ่มต้นของคำหรือไม่ (ตามโค้ดคือค่ามากกว่า 0.5) โดยเมื่อทดสอบกับข้อมูลทดสอบได้ความแม่นยำ f1 score 98.8%, precision score 98.6%, และ recall score 99.1%

ผมทดสอบดูเทียบกับ libthai ที่ใช้งานกันในลินุกซ์ในภาพท้ายข่าว โดยใช้ประโยคตัวอย่าง "คุณบ็อตบอกว่าวันนี้พิมพ์ไม่ผิดแต่ตัดแบบนี้จะดีเหรอ คณะกรรมการการเลือกตั้งกรมวิทยาศาสตร์การแพทย์ เขานอนตากลมตากลมไปมา"

ที่มา - GitHub:rkcosmos/deepcut, Thailand Deep Learning

ผลจาก deepcut

alt="upic.me"

ผลจาก libthai

alt="upic.me"

Get latest news from Blognone

Comments

By: picharnan
iPhoneWindows PhoneAndroidRed Hat
on 26 June 2017 - 17:48 #995214
picharnan's picture

นอนตากลม อันนี้ hardcode ได้ไหม ไม่ต้อง learn ฮาาาา

By: fatpig2541
AndroidWindows
on 26 June 2017 - 17:51 #995216

สงสัย
ตา กลม หรือ ตาก ลม

By: sf_alpha on 26 June 2017 - 17:52 #995217

ภาษาอะไรฟระ ตัดคำยากอิ๊บอ๋ายยย

By: spiritstorm
iPhoneAndroidWindows
on 26 June 2017 - 17:54 #995218
spiritstorm's picture

"เขานอนตากลมตากลมไปมา" ผมอ่านได้ว่า เขานอน ตา กลม ตาก ลม ไปมา นี่ถูกไหมครับ

By: lew
FounderJusci's WriterMEconomicsAndroid
on 26 June 2017 - 21:23 #995260 Reply to:995218
lew's picture

ถูกครับ


lewcpe.com, @wasonliw

By: illuminator
ContributorAndroidUbuntuWindows
on 29 June 2017 - 09:26 #995708 Reply to:995218
illuminator's picture

ผมว่า "เขา นอน ตา กลม ตาก ลม ไป มา" ก็ได้นะ 555

By: mr_tawan
ContributoriPhoneAndroidWindows
on 26 June 2017 - 18:00 #995219
mr_tawan's picture

น่าจะพอร์ตกลับไปเป็น C นะครับ จะได้นำไปใช้ได้ง่ายขึ้น :)


  • 9tawan.net บล็อกส่วนตัวฮับ
By: lew
FounderJusci's WriterMEconomicsAndroid
on 26 June 2017 - 18:19 #995225 Reply to:995219
lew's picture

ผมว่า libthai ก็ดีพอใช้งานนะครับ


lewcpe.com, @wasonliw

By: Hadakung
iPhoneWindows PhoneAndroidWindows
on 26 June 2017 - 18:05 #995220

ก็แม่นระดับคนได้ละ ตา กลม กับ ตาก ลม คนยังงเลย แต่อยากได้พวกแชทบอท ML อะ

By: deaw on 26 June 2017 - 19:33 #995231
deaw's picture

ทำยังไงให้ pythai ใช้กับ python3 ได้ครับ

-- edit ผมไปลองกับ PyICU ได้แบบนี้
alt="upic.me"

ลองเทียบๆ กันดูครับ

By: lew
FounderJusci's WriterMEconomicsAndroid
on 26 June 2017 - 19:34 #995237 Reply to:995231
lew's picture

ผมก็ใช้ไม่ได้ครับ คงต้องแพตช์แก้ก่อน


lewcpe.com, @wasonliw

By: zyzzyva
Blackberry
on 26 June 2017 - 19:11 #995233

'เกษตรกรอบกรอบ' จะตัดคำเป็นยังไง

By: hisoft
ContributorWindows PhoneWindows
on 26 June 2017 - 19:43 #995239 Reply to:995233
hisoft's picture

คนอ่านยังตัดไม่ถูกเลยครับ 5555

By: spicydog
ContributoriPhoneAndroidUbuntu
on 26 June 2017 - 20:52 #995255 Reply to:995233
spicydog's picture

เป็น​เคสที่ฮามาก ผมคิดว่าเคสนี้ยากสำหรับ​คนแต่ไม่ได้ยากสำหรับ​คอมครับ ถ้ามี training data สอนหน่อยก็จับ pattern ได้เลย คำว่า เกษตร|กรอบ| คงไม่มีโผล่มา​ เคสที่ยากสำหรับ​คอมคือพวกที่เป็​น​ไปได้มีใช้งานจริงทั้งสองแบบแล้วต้องดูบริบทประกอบด้วย


SPICYDOG's Blog

By: tekkasit
ContributorAndroidWindowsIn Love
on 27 June 2017 - 11:47 #995329 Reply to:995233
tekkasit's picture

อันนี้อยากรู้ตัดว่าไงครับ?

By: Simmycircus
Android
on 27 June 2017 - 11:51 #995331 Reply to:995329

เกษตรกร อบกรอบ

By: whitebigbird
Contributor
on 27 June 2017 - 12:26 #995339 Reply to:995329
whitebigbird's picture

เกษ ตร กรอบ กรอบ

By: Lightwave
iPhoneAndroidWindows
on 27 June 2017 - 19:11 #995401 Reply to:995329

เกษตร กรอบกรอบ

By: pd2002 on 28 June 2017 - 12:10 #995514 Reply to:995329

กะ เสด ตะ กอน อบ กอบ

By: tekkasit
ContributorAndroidWindowsIn Love
on 28 June 2017 - 13:08 #995519 Reply to:995329
tekkasit's picture

ผมว่ามันกำกวมครับ ตัดได้ทั้งสองแบบ

เกษตรกร-อบ-กรอบ คือเกษตรกร(อาชีพ)ไม่ใช่ของที่เอาไปอบกรอบได้จริงๆ แล้วก็ไม่ค่อยเห็นสำนวน <อาชีพ>อบกรอบ แต่จะพอให้อ่านว่า เกษตร-กรอบ-กรอบ มันก็ไม่เป็นจริงได้พอๆกับ เกษตรกร-อบ-กรอบ

By: zyzzyva
Blackberry
on 7 July 2017 - 01:03 #996973 Reply to:995519

เกษตรกร จากราชบัณฑิต(ถึงแม้ช่วงนี้จะดราม่าเรื่องความน่าเชื่อถือบ่อย) หมายถึง ผู้ทำงานในที่ดินหรือที่นา

แต่วลีนี้ผมไม่ได้คิดเองครับ เอามาจากขายหัวเราะหรือมหาสนุก มีตอนที่นางยักษ์ผีเสื้อสมุทรเอาเกษตรกรไปอบกรอบเพราะนึกว่าเป็นการทำผลิตภัณฑ์ OTOP ที่ถูกต้อง

By: whitebigbird
Contributor
on 7 July 2017 - 09:49 #997013 Reply to:995519
whitebigbird's picture

กรอบกรอบ แปลประมาณว่าจนกรอบก็ได้ครับ

By: shayennn on 3 July 2017 - 20:24 #996314 Reply to:995329
shayennn's picture

ตอบแบบนี้ครับ

deepcut.tokenize('เกษตรกรอบกรอบ')
['เกษตรกรอบ', 'กรอบ']

By: itpcc
ContributoriPhoneRed HatUbuntu
on 26 June 2017 - 19:50 #995240
itpcc's picture

ผมลองของ spicydog ได้
คุณ|บ็อต|บอก|ว่า|วันนี้|พิมพ์|ไม่|ผิด|แต่|ตัด|แบบ|นี้|จะ|ดี|เหรอ| |คณะกรรมการ|การ|เลือกตั้ง|กรมวิทยาศาสตร์การแพทย์| |เขา|นอน|ตาก|ลม|ตาก|ลม|ไปมา

ดูแล้วสาย M/C learning คงต้องมีฐานข้อมูลเยอะพอตัวถึงจะตัดคำได้เป๊ะๆ


บล็อกส่วนตัวที่อัพเดตตามอารมณ์และความขยัน :P

By: hisoft
ContributorWindows PhoneWindows
on 26 June 2017 - 20:18 #995246 Reply to:995240
hisoft's picture

M/C learning ก็เหมือนคนครับ ต้องใช้เวลาในการเรียนรู้ แต่สามารถเรียนต่อไปเรื่อยๆ ได้ ก็เก่งขึ้นเรื่อยๆ ได้
M/C learning ไม่เหมือนคนครับ ทำสำเนาได้ จากรุ่นสู่รุ่นไม่ต้องมาเริ่มต้นเรียนใหม่ ถ่ายทอดกันได้แปบบเป๊ะๆ

By: spicydog
ContributoriPhoneAndroidUbuntu
on 26 June 2017 - 20:59 #995256 Reply to:995240
spicydog's picture

ผมมองว่า deep learning น่าจะเพิ่มความยืดหยุ่น​ได้มากกว่า​การทำแบบ statistics ทั่วไปครับ ดังนั้นถ้ามีกฎการตัดคำที่ตายตัว + สามารถเข้าไปร่วมกันสร้าง corpus ที่ดีได้ + ประกอบคำที่ไม่รู้จักจากไวยากรณ์​ได้บ้าง ถึงจุดนั้นเราก็คงมีตัวตัดคำรุ่น ultimate ให้ใช้กัน ผมว่ามันใกล้เข้ามาละ เป็น​กำลัง​ใจให้ทุกทีม :)​


SPICYDOG's Blog

By: lew
FounderJusci&#039;s WriterMEconomicsAndroid
on 26 June 2017 - 21:27 #995261 Reply to:995240
lew's picture

แต่ผลอันนี้ดีมากนะครับ ดีกว่า libthai ใน Ubuntu 16.04 ที่ผมใช้


lewcpe.com, @wasonliw

By: สมเจตน์ on 26 June 2017 - 20:33 #995250

เมืองไทยก็ยังอยู่กับตัดคำไทย 555

By: Hadakung
iPhoneWindows PhoneAndroidWindows
on 26 June 2017 - 20:49 #995254 Reply to:995250

แค่ตัดคำได้ทุกต้องทุกพยางค์ในภาษาไทยคุณก็อาจได้โนเบิลแล้วนะครับ เพราะหมายความว่า ML ุณเข้าใจความหมายของคำแล้วสามารถเข้าในบรบทของทำทุกอย่าง คุยภาษาคนรู้เรื่องได้เลยแหละ

By: spicydog
ContributoriPhoneAndroidUbuntu
on 26 June 2017 - 21:21 #995259 Reply to:995250
spicydog's picture

ขอแนะนำให้อ่านความยากลำบากจากโพสของคุณปรัชญาครับ NLP ไทย ไม่ไปไหนจริงหรือ?


SPICYDOG's Blog

By: lew
FounderJusci&#039;s WriterMEconomicsAndroid
on 26 June 2017 - 22:54 #995267 Reply to:995250
lew's picture

เพราะภาษาไทยต้องรู้โครงสร้างประโยคก่อนจึงตัดได้ครับ

ภาษาอังกฤษเองทุกวันนี้เรื่องโครงสร้างประโยคเขายังทำ 100% ไม่ได้เลย

ในแง่ของการ "ไปไหน" ทุกวันนี้ตัดถูกเกิน 95% นี่เรื่องปกติแล้ว ก็ถือว่าไกลพอสมควรแล้วนะครับ ถ้านับพวกท้ายบรรทัดนี่จะตัดผิดอาจจะต้องมองหลายๆ หน้าเจอทีนึง


lewcpe.com, @wasonliw

By: shiretoko
ContributoriPhoneAndroidRed Hat
on 26 June 2017 - 21:19 #995258
shiretoko's picture

เป็นไปได้หรือเปล่า ที่เราจะพัฒนาภาษาไทยให้เข้ากับยุค (เหมือนที่จีนแผ่นดินใหญ่ ปรับภาษาจีนดั้งเดิมเป็นตัวย่อเพื่อให้พัฒนาในด้านต่างๆได้ง่าย) เช่น เขียนคำเว้นวรรคแบบประโยคภาษาอังกฤษ(หรือที่เคยเรียนในสมัย มานี ชูใจ) "วันนี้ ฉัน กิน ข้าว กับ คุณตา" เป็นต้นครับ มันน่าจะง่ายขึ้นสำหรับชาวต่างชาติที่จะเรียนรู้ และการพัฒนาโปรแกรม ถ้าจำไม่ผิดภาษาอังกฤษก็เคยเขียนติดกันมาก่อนก่อนจะพัฒนาเป็นแยกแบบนี้

By: Lightwave
iPhoneAndroidWindows
on 27 June 2017 - 04:47 #995271 Reply to:995258

ก็ไม่เห็นจำเป็นจะต้องเว้นวรรคแบบนี้เลยครับ จีน ญี่ปุ่นยังไม่เว้นเลย

By: TheOrbital
iPhoneWindows PhoneAndroidSymbian
on 27 June 2017 - 12:08 #995293 Reply to:995258
TheOrbital's picture

ภาษาไทยมีรูปสระเป็นตัวแยกคำอยู่แล้ว ถ้าไม่นับกรณีสระลดรูป หนึ่งคำหนึ่งรูปสระอยู่แล้ว ดังนั้นไม่จำเป็นต้องเขียนเว้นก็ได้ครับ แต่ในกรณีภาษาอังกฤษใช้ตัวอักษรมาเป็นสระด้วยจึงต้องเว้นคำ ตัวอย่างเช่น "จีนแผ่นดินใหญ่" คุณไม่สามารถแยกเป็น (จี นแ ผ่ดิ นใ หญ่)ได้ เป็นต้น

By: comdevx
AndroidUbuntu
on 26 June 2017 - 22:48 #995265
comdevx's picture

ผมเคยพัฒนาไว้ สามารถกรองประโยค คำหยาบ หรือคำวิบัติได้ และแยกแยะประโยค ว่าเป็น ปฏิเสธ บอกเล่า คำถาม หรืออื่นๆ เป็น php ทำเมื่อสองปีก่อน เดี๋ยวว่างๆ ผมจะนั่งทำเล่นๆต่อยอดจากของเดิม จะได้พัฒนาระบบของคนไทยให้มันดีขึ้น

By: xbird007
iPhoneWindows PhoneAndroidUbuntu
on 26 June 2017 - 22:52 #995266

อันนี้อีกอัน
cutkum https://github.com/pucktada/cutkum

ความแม่นยำต่ำกว่านิดหน่อย RNN บน tensorflow

By: whitebigbird
Contributor
on 27 June 2017 - 11:11 #995320
whitebigbird's picture

น่าจะส่งเข้าไปเป็นส่วนนึงของระบบตัดคำบน browser นะครับ ตัดคำกันเหนื่อยใจมากๆ

By: LazarusSP1
ContributoriPhone
on 27 June 2017 - 11:16 #995321

ได้ข่าวว่ามีคนเคยขอข้อมูลพจนานุกรมจากเว็บราชบัณฑิตย์ เพื่อใช้ในงานพัฒนาระบบตัดคำ และเดาคำ แต่ราชบัณฑิตย์ บอกว่าไม่สามารถให้ข้อมูลพจนานุกรมได้เพราะกลัวเอาข้อมูลไปทำอะไรมิดีมิร้าย แต่ราชบัณฑิตย์เองที่มีข้อมูลอยู่กลับไม่สามารถทำประโยชน์จากข้อมูลที่มีได้เลย เฮ้ออออออ

By: spicydog
ContributoriPhoneAndroidUbuntu
on 27 June 2017 - 17:32 #995389 Reply to:995321
spicydog's picture

การเมืองเยอะครับ เราคงต้องอาศัยแกนนำสักคนทำ crowdsourcing ใช้ร่วมกัน


SPICYDOG's Blog

By: phakphumi
AndroidWindows
on 27 June 2017 - 11:34 #995326

เอาประโยคนั้นมาให้คนตัด คนยังงงเลยคับ 555

By: gth2011 on 28 June 2017 - 19:36 #995635

สุดยอดครับ
แต่จะให้ดีกว่านี้ True ควรใช้ data scientist มาแก้ปัญหาในเชิง operation ที่สำคัญๆด้วยครับ
อย่างใช้ DL ทำ CRM ให้ดีเท่าคู่แข่ง หรือปัญหาอื่นๆที่หลายๆคนชอบบ่นกัน