Tags:

อยากทราบการนับคำไทย (Word count) เช่นพวก microsoft word ว่าเค้าทำกันยังไงครับ

Get latest news from Blognone
By: anu
Contributor
on 2 July 2013 - 22:46 #592937

ตัดคำก่อนครับ แล้วก็นับ โครงการโอเพนซอร์สที่เกี่ยวข้องลองดู SWATH ครับ

คีย์เวิร์ดที่เกี่ยวข้องคือ thai word breaking

By: m3rlinez on 3 July 2013 - 09:31 #593041

ตาม comment บนครับ ถ้าไม่อยากเขียนอัลกอริทึมตัดคำเอง ก็หยิบ library มาใช้ได้ เช่นใช้ class BreakIterator ใน IBM ICU (http://icu-project.org/apiref/icu4j/com/ibm/icu/text/BreakIterator.html) ถ้าใช้ Java ก็ reference class BreakIterator ได้เลย (ไม่ต้อง reference ICU เพิ่มเพราะมันรวมมาแล้ว) ถ้าเป็น C#/.NET ผมเคยเขียนตัวหุ้มให้เรียกใช้ BreakIterator จาก C# ได้ แต่ไม่ได้ทำต่อแล้ว (https://code.google.com/p/icu4net/) หรือถ้าเป็น Javascript ก็เคยเห็นตัวหุ้มอันนี้ https://github.com/chakrit/node-icu-wordsplit ตัวเลือกอื่นที่เห็นบ่อยก็มี libthai (http://linux.thai.net/projects/libthai) ที่ผมเข้าใจว่า Firefox ใช้อยู่ ส่วน Chrome ใช้ ICU

เกือบจะทั้งหมดของ library ตัดคำใช้ dictionary ตัด ดังนั้นถ้ามีคำใหม่ที่ไม่มีใน dictionary มาก่อนมันก็จะตัดคำผิดๆถูกๆ

By: tearfire on 5 July 2013 - 16:21 #594042 Reply to:593041
tearfire's picture

เพราะตัวนี้แหละคับ ทำให้ชีวิตผมดีขึ้น ><

By: iStyle
ContributoriPhoneAndroidSymbian
on 5 July 2013 - 16:48 #594052 Reply to:593041
iStyle's picture

สงสัยมานานแล้วว่ามีวิธีการที่ใช้อัลกอริทึมเพียวๆ โดยไม่ต้องมีฐานข้อมูลคำศัพท์ไหมครับ


May the Force Close be with you. || @nuttyi

By: neizod
ContributorTraineeIn Love
on 6 July 2013 - 10:41 #594216 Reply to:594052
neizod's picture

ถ้าเป็นภาษาอังกฤษ (หรือภาษาอื่นที่มีตัวแบ่งคำชัดเจน) ก็ดูที่ whitespace / punctuation ได้เลยครับ

ถ้าเป็นภาษาไทย (จีน, ญี่ปุ่น) คงยากหน่อยที่จะกำหนดว่าตรงไหนเป็นจุดหมดคำ เช่นสระ อา สามารถมีตัวอักษรตามหลังหรือไม่ก็ได้ นอกจากนี้ยังมีพวกที่ต้องแบ่งคำตาม context อีกด้วย เช่น ตากลม ตามหา

รอท่านอื่นมาตอบครับ

By: m3rlinez on 6 July 2013 - 14:10 #594266 Reply to:594052

ผมเห็นงานวิจัยสายภาษาเค้าก็พยายามเอาพวก machine learning มาช่วยเรื่องการตัดคำนะครับ (อย่างเช่นอันนี้ที่ผมเคยอ่าน http://www.cs.cmu.edu/~paisarn/papers/thesis99.pdf) ซึ่งมันก็คงลดการพึ่ง dictionary ไปได้ แต่ว่า library ตัดคำไทยที่เราดาวน์โหลดมาใช้ได้เลยตอนนี้ใช้ dictionary ทั้งหมด (หรือถ้ามีตัวไหนไม่ใช้ dict ผมก็อยากทราบด้วย จะเอาไปลองใช้บ้าง)

ถ้่าเปลี่ยนโจทย์จากตัดคำเป็นตัดพยางค์อาจจะดูเป็นอะไรที่สร้างกฎได้ง่ายกว่า เช่นใน PDF ที่ลิงค์ไปก็มีกฎตัดพยางค์อยู่หน้า 63

By: iStyle
ContributoriPhoneAndroidSymbian
on 6 July 2013 - 14:41 #594267 Reply to:594266
iStyle's picture

ขอบคุณครับ อันตีดพยางค์นี่น่าสนใจ


May the Force Close be with you. || @nuttyi

By: lancaster
Contributor
on 9 July 2013 - 02:45 #594866 Reply to:594052

เท่าที่ทราบในภาพรวม การตัดโดยใช้อัลกอเพียวๆ ความแม่นยำยังแพ้ dictionary ในกรณีส่วนใหญ่อยู่ แถมเปลือง cpu มากกว่าเยอะเลยครับ

ส่วนมากจะเป็นการพัฒนา on top ตัวอัลกอ dictionary กันมากกว่า อย่างเช่นเอาสถิติคำที่อยู่ในบทความทั่วๆไปมาช่วยในการตัดอะไรแบบนี้ครับ

ย้ำอีกทีว่าทราบแค่ในภาพรวมครับ ไม่ได้ลงลึกอะไร

By: ComSci-MFU
Windows PhoneAndroidWindows
on 3 July 2013 - 16:23 #593188
ComSci-MFU's picture

สำหรับผมเอาง่ายๆ คือ นับ 4ตัวอักษร เป็น 1 คำครับ ฮ่าๆ

By: chollathee
AndroidSymbianWindows
on 8 July 2013 - 23:26 #594818 Reply to:593188

อันนั้นพิมพ์ดีด ฟิ้วววว...