ฟังก์ชันเหล่านั้นมาจากไหน? ไม่มีในแผนการพัฒนา PyThaiNLP ที่เปิดเผย?

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

ฟังก์ชันพวกนั้นมาจากไหน? ขอย้อนกลับไปช่วงที่เริ่มพัฒนา PyThaiNLP เมื่อ 10 ปีก่อน (PyThaiNLP ครบ 10 ปี ปีนี้!) สมัยนั้นผมยังเขียนบล็อก Python 3 (python3.wannaphong.com) ผมพัฒนา pythainlp ฟังก์ชันแรกตัดคำที่มาจาก pyicu ที่มีคนทำแจกอยู่แล้วมารวบรวมและทำ pos-tag ต่อมา
ช่วงนั้นทำไปเรื่อย ๆ แก้ไขปัญหาที่มีอยู่ว่า ณ ตอนนั้นมีแนวทางแก้ไขอะไรทำได้บ้าง แล้วทำไปเลย ช่วงนั้น ม.5-ม.6 อยู่บ้านเสาร์-อาทิตย์ หรือเย็นวันปกติที่ไม่มีอะไรทำ นั่งเขียนไปเรื่อย ๆ กับเรียนรู้ NLP ไปด้วย เขียนบล็อกไปด้วย นี่คือที่มาของฟังก์ชันเริ่มแรกของ PyThaiNLP เหล่านั้น
หลังจากนั้น ขึ้นป.ตรี ฟังก์ชันส่วนหนึ่งยังคงใช้ลักษณะแบบเดียวกัน นึกอะไรออกเขียนเลย พร้อมกับเรียนรู้ว่าภาษาอื่น ๆ เขาไปถึงไหนกันแล้วในโลก AI ที่ตอนนั้น chatbot rule-base กำลังมาแรง ภาษาอื่นทำอะไรได้ เราก็อยากทำได้แบบนั้นกับภาษาไทยเรา จนมาถึงช่วงนั้น NSC ปีหนึ่งที่ทำ เอา chatbot มาทำด้วยก็เอาฟังก์ชันในงานเหล่านั้นเข้ามาใน pythainlp คือ ฟังก์ชันแปลงวันเดือนปี เวลา ไปเป็น datetime/time ใน python เช่น วันนี้ พรุ่งนี้ บ่ายโมง นี่คือฟังก์ชันที่ได้
พอหลังป.ตรี หลายฟังก์ชันที่ผมเขียนขึ้น คือ แก้ไขปัญหาที่เคยเจอบางส่วน ในการทำ NLP ภาษาไทย (pythainlp.benchmarks ที่ใช้ AI ช่วย เพิ่มฟังก์ชันวัดค่า Bleu/Rouge/WER ภาษาไทยเพิ่มเขียนไป)
แต่หลาย ๆ ฟังก์ชันยังคงมาจากนึกอะไรออกก็เขียน เช่น ฟังก์ชันเช็กคำควบกล้ำว่าคำไหนเป็นคำควบแท้/ไม่แท้, spelling สำหรับบอกวิธีออกเสียงแบบมานะ มานี เป็นต้น รวมถึงงานเก่าที่ทำแค่เป็นตัวต้นแบบแล้วดองไว้ใน git เอามาทำให้สมบูรณ์แล้วถึงเอามาลง pythainlp เช่นฟังก์ชันเข้ารหัส/ถอดรหัส รหัส morse ภาษาไทย อันนี้เอามาจากบล็อก python ที่เคยเขียน เป็นต้น และยังคงมีหลายฟังก์ชันที่ดองไว้ใน issue...
ดังนั้น ไม่ใช่ว่าผมไม่เปิดเผย แต่หลายฟังก์ชันมาจากวิธีดังกล่าวจริง ๆ คือ นึกอะไรออกก็เขียน