ใกล้จะปีใหม่แล้ว มาเล่าอะไรที่มันสบาย ๆ ดีกว่า วันนี้เอาเรื่องความก้าวหน้าของแขนงวิชาการประมวลผลภาษาธรรมชาติ หรือ Natural Language Processing หรือ NLP ของไทยกันดีกว่าเน้อะ

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

การจะให้คอมพิวเตอร์เข้าใจประโยคข้อความภาษาไทยของเราได้ ก็มีความจำเป็นที่จะต้องตัดประโยคภาษาไทยออกเป็นคำ ๆ แล้วจึงส่งให้ระบบ NLP ไปประมวลผลต่อไป

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

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

ผมคิดว่านักพัฒนาซอฟต์แวร์ของไทย ซึ่งเน้นหนักในการวิจัยพัฒนาในด้าน NLP น่าจะรับทราบเรื่องนี้ดี ดังนั้นหลาย ๆ ท่านจึงต้องถอยตัวเองไปหนึ่งลำดับ โดยแทนที่จะไปเน้นทางด้าน NLP ภาษาไทยเพียงอย่างเดียว เหมือนที่นักวิจัย NLP ภาษาอังกฤษทำกัน ก็กลายเป็นว่าต้องมาแก้ปัญหาในเรื่องการตัดคำภาษาไทยกันก่อน

เป็นลักษณะห่วงหน้าพะวงหลัง!!!

พื้นฐานแห่ง NLPไม่ว่าจะเป็น Compiler, Text To Speech และ Natural Language Processing ถ้าหากว่าผลลัพท์ของการประมวลผลเป็นภาษาไทยแล้ว คงหลีกเลี่ยงไม่พ้นที่จะต้องไปเน้นทางด้านการตัดคำซะก่อนทั้งสิ้น

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

เท่าที่ทราบ ปัจจุบันกลไกในการตัดคำแบ่งออกเป็นสองวิธีใหญ่ ๆ คือวิธีการเปรียบเทียบคำจากพจนานุกรมภาษาไทยที่มี กับอีกวิธีหนึ่ง คือการให้ระบบวิเคราะห์ไวยากรณ์ที่เป็นไปได้ในภาษาไทยแทน

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

อย่างที่เรารู้กันว่า การตัดคำไทยยังไม่ใช่ระบบเปิด นั่นคือ ใครคิดอัลกอริทึมอะไรได้ ก็เขียนเอาไว้ในโค้ด เขียนเพิ่มขึ้น เพิ่มขึ้นเรื่อย ๆ อีกทั้งโค้ดที่เขียนไว้ ก็เขียนด้วยภาษาเฉพาะภาษาใดภาษาหนึ่ง เช่น อาจจะเขียนด้วย Java, PHP หรือ Visual Studio.NET เป็นต้น

ดังนั้นโดยลึก ๆ ของนักพัฒนาซอฟต์แวร์แล้วก็คงรู้สึกคล้าย ๆ กัน คือรู้สึก “กลัว” กลัวว่าโค้ดที่ตนเองเขียนเอาไว้จะหมดอายุลง ด้วยเหตุเพราะโดนภัยคุกคามจากสินค้าทดแทน อันได้แก่

  • การเปลี่ยนแปลงของระบบเข้ารหัสภาษา ซึ่งเรื่องแบบนี้สมัยก่อนก็มีมาแล้วผมเข้าวงการมาทันพอดี ก็คือการเปลี่ยนการเข้ารหัสจาก รหัสเกษตร มาเป็น รหัส สมอ. แล้วก็จาก Windows-874 มาเป็น TIS-620 แล้วก็ตามด้วย UTF-8, UTF-16 และ UTF-32 ตามลำดับ
  • ความนิยมของภาษาคอมพิวเตอร์ที่สร้างโค้ดต้นแบบเอาไว้ตกต่ำลง อันเนื่องมาจากมีภาษาคอมพิวเตอร์ใหม่ ๆ เกิดขึ้น เหมือนอย่างที่คนเขียน Java Servlet เจอมาแล้ว เมื่อตอนที่ความนิยมของภาษา PHP เติบโตก้าวกระโดด
  • การเขียนโค้ดแทรกไว้เป็น Add Ons ของ Core Application เช่นเขียนเชื่อมไว้กับ Browser อย่าง IE แล้วภายหลังก็พบว่าใคร ๆ ก็หันไปใช้ FireFox กันแทน

สิ่งเหล่านี้ล้วนเป็นสิ่งบั่นทอนกำลังใจของนักพัฒนาซอฟต์แวร์ทั้งสิ้น ซึ่งมันจะทำให้การวิจัยพัฒนา NLP หยุดชะงักเป็นระยะ ๆ ไม่ต่อเนื่องเท่าที่ควร อีกอย่าง นักพัฒนาซอฟต์แวร์ก็เชี่ยวชาญแต่การพัฒนาซอฟต์แวร์ จะให้มาเป็นนักอนาคตศาสตร์เพื่อวิเคราะห์แนวโน้ม, ความเปลี่ยนแปลงของโลกไอทีในอนาคตก็ใช่ที่

ดังนั้นจุดสำคัญเพื่อให้การวิจัยพัฒนา NLP รวมถึงการตัดคำไทยเป็นไปอย่างต่อเนื่อง คงจะอยู่ที่การเปลี่ยนแนวความคิดซักเล็กน้อย โดยแนวความคิดดังกล่าวก็คือ การให้ความสำคัญกับการทำเอกสารครับ

โมเดลการสร้างซอฟต์แวร์

นักพัฒนาซอฟต์แวร์ไทยส่วนใหญ่ ไม่ชอบการทำเอกสาร เพราะรู้สึกว่าจะเป็นการง่ายกว่า หากบรรจุความคิดของตนเองเข้าไปตรง ๆ ในรูปของโค้ดโปรแกรม แต่จากภัยคุกคามจากสินค้าทดแทนในย่อหน้าก่อน ๆ ที่ผมบอกเอาไว้ ชี้ให้เราเห็นว่า หากเราทำเอกสารเอาไว้อย่างดี การที่ผู้อื่นจะโอนย้ายโค้ดของเราไปยัง IDE อื่น, ภาษาคอมพิวเตอร์อื่น, Platform อื่น จึงน่าจะเป็นสิ่งที่ง่ายกว่า หากเป็นการทำโดยมีเอกสาร Functional Specification, Technical Specification และ Component Test Plan ซึ่งเราสร้างเอาไว้แล้วอย่างละเอียดประกอบไปด้วย

โดยสรุปแล้วผมมองว่า ระบบ NLP ของไทยเราจะเติบโตได้ ก็คงต้องอาศัยพิธีกรรม, กลไก และมาตรฐานอะไรหลาย ๆ อย่าง ประกอบเข้าด้วยกัน เพื่อให้การพัฒนาซอฟต์แวร์ซึ่งต่อยอดจากการวิจัยพัฒนาระบบ NLP ภาษาไทย เติบโตต่อไปด้วยความราบรื่นครับ

[tags]natural language processing, nlp, functional specification, technical specification, component test plan, การประมวลผลภาษาธรรมชาติ[/tags]

Related Posts

4 thoughts on “Natural Language Processing

  1. เป็นเรื่องที่น่าสนใจมาก ๆ อีกเรื่องครับพี่ไท้

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

  2. หากมองแบบวิกฤติเป็นโอกาส จะเห็นว่า ภาษาไทย ทำให้เราได้อัลกอริทึมและทฤษฎีใหม่เป็นจำนวนมาก ปัจจุบันก็ได้มีการจัดการประชุมวิชาการทางด้าน NLP โดยเป็นการประชุม NLP ในเทอมของภาษาเอเชีย ซึ่งมีความน่าสนใจและสร้างแนวคิดใหม่ๆ ได้อย่างหลากหลาย สามารถประยุกตฺ์การประมวลผลอื่นที่ไม่ใช่ NLP ได้อีกด้วย

  3. สวัสดีครับ ผมจะหา Paper NLP ที่เกี่ยวกับภาษาไทยได้ที่ไหนบ้างครับ กำลังสนใจเรื่องนี้ ว่าจะเอามาทำ thesis

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *