บันทึกการสร้างแป้นพิมพ์ไทย Manoonchai (1) : หนทางสู่ Layout ที่ดีกว่า
[ณ เวลาที่โพส ตัว Manoonchai Layout เป็น Version 0.3 และอยู่ในขั้นตอนการทดลองพิมพ์ โค้ดทั้งหมดจะอยู่ที่ Github]
แป้นพิมพ์ภาษาไทยที่มีอยู่ตอนนี้คือ Kedmanee (เกษมณี) และ Pattachote (ปัตตะโชติ) ซึ่งทั้งสองแป้นพิมพ์นั้นถูกสร้างมาตั้งแต่สมัยเครื่องพิมพ์ดีด (Typewriters) เมื่อกว่า 50 ปีมาแล้ว
ถึงแม้ว่าจะมีการวิจัยด้วยข้อมูลออกมาแล้วว่าแป้นพิมพ์ Kedmanee นั้นมีความไม่สมดุลย์สูง โดยจะหนักไปทางมือขวาอยู่ 70% [อ้างอิง] และได้ทำการคิดค้นแป้นพิมพ์ Pattachote ขึ้นมาและทำการเกลี่ยตัวอักษรให้สมดุลย์มากขึ้นแล้วเป็น 47% มือซ้ายต่อ 53% มือขวา แต่ด้วยความนิยม หรือความเคยชินก็แล้วแต่ คนไทยแทบทั้งหมดยังใช้ Kedmanee กันอยู่ถึงทุกวันนี้
ก่อนหน้านี้ผมได้ทดลองใช้ Pattachote มาก็พบว่าพิมพ์ง่ายกว่า Kedmanee จริง แต่คิดว่ามันยังไม่ถึงที่สุดเท่าไหร่
ความเปลี่ยนแปลงของสภาพสังคม ความก้าวหน้าของเทคโนโลยี หรือด้วยตัวภาษาไทยเองที่ได้เปลี่ยนแปลงไปมาก จึงเป็นเหตุผลที่ผมอยากลองสร้างแป้นพิมพ์ไทยตัวใหม่ที่ทันยุคทันสมัยขึ้นมา
คุณลักษณะของแป้นพิมพ์ใหม่ที่ตั้งใจไว้ มีดังนี้
ใช้เลขอารบิก (0–9) แทนเลขไทย (๐-๙)
ต้องยอมรับว่ามีแต่เอกสารทางการ หรือราชการเท่านั้นแหละที่ยังใช้เลขไทยอยู่ แถมเลขยังต้องกด Shift และไม่ตรงกับเลขอารบิกอีกด้วย
การใช้เลขอารบิกแทนจะทำให้ลดการเปลี่ยนภาษาสลับไปมาในการพิมพ์แชท หรือบทความทั่วไปได้มากโดยไม่ต้องใช้ Numpad (Keyboard ยุคใหม่และ Laptop มี Form factor ที่ไม่มี Numpad อยู่มาก)
ไม่มีตัวอักษรไทยบนแถวตัวเลข
ในแป้น Kedmanee จะมีตัว ภ
, ถ
, สระอุ, สระอู, ค
, ต
, จ
, ข
, ช
บนแถวตัวเลข ซึ่งทำให้ต้องขยับมือไปไกล มี Vertical Traveling Distance มากขึ้นและมีโอกาสทำให้พิมพ์ผิดได้มากกว่า
ข้อนี้มีส่วนทำให้แป้นพิมพ์ขนาด 40% เช่น Planck พิมพ์ได้ง่ายขึ้นด้วย
เอาตัวอักษรที่ไม่ใช้แล้วออก เอาตัวที่ไม่ใช้บ่อยไปไว้ไกลๆ
เนื่องจากข้อที่แล้ว การนำตัวอักษรลงมาจากแถวตัวเลข ทำให้เราต้องนำตัวที่ไม่ใช้แล้วออกไป เช่น ฃ
, ฅ
, ฦ
, ๏
และนำตัวที่ใช้ไม่บ่อยไปไว้ในตำแหน่งขวามือสุดเหนือ Enter เช่น ฑ
, ฬ
, ฌ
, ฯ
ใช้ Dataset ที่ทันสมัยจำนวนมาก
แป้นพิมพ์ Pattachote นั้นจากแหล่งข้อมูลอ้างอิง ได้ใช้บทความจำนวน 50 บทความ บทความละ 1000 ตัวอักษร
แต่ในปัจจุบันเราสามารถหาแหล่งข้อมูลได้จากเว็บไซต์ต่างๆ หรือจากคลังภาษาไทยต่างๆ (มีคนรวบรวมไว้บน GitHub) หรือแม้กระทั่งข้อความใน Twitter
การที่เราใช้ข้อมูลจำนวนมากจะทำให้ลดความเอนเอียง (Bias) ได้ ทำให้แป้นพิมพ์นี้เหมาะกับการใช้ทั่วไป มากกว่าการพิมพ์แค่บทความหรือนิยายโดยเฉพาะ
ใช้โค้ดในการจัดวางแป้นพิมพ์
ด้วยการที่เราจะใช้ข้อมูลที่มากเกินกว่าที่มนุษย์จะประมวลผลได้ เราจะให้ใช้โค้ดและ Algorithm ประมวลผลออกมาเป็นแป้นพิมพ์ที่ Optimized แล้ว (Keywords : AI, Machine Learning, Data Analytic)
Algorithm ที่ใช้จะดัดแปลงจากโปรเจกต์ Carpalx เพื่อให้เข้ากับบริบทของแป้นพิมพ์ภาษาไทยได้
ข้อดีอีกข้อของการใช้ Algorithm คือลด Bias ส่วนตัวได้ เช่นคนทั่วไปอาจพิมพ์สรรพนามเรียกตัวเองในแชทต่างกัน (ผม, เรา, นี่, ชั้น, ตู, กรู) เป็นต้น
ชื่อ?
ที่ตั้งชื่อเป็น Manoonchai เพราะเป็นนามสกุลผมเอง 555 ทำตาม Kedmanee และ Pattachote ที่เป็นนามสกุลเหมือนกัน
สามารถติดตามตอนต่อไปได้ด้วยการกด Follow ผมไว้ และกดปรบมือ 👏 เยอะๆ เป็นกำลังใจด้วยครับ 🤗
และดู Dev Log ได้ใน Twitter Thread นี้ ทำล่วงหน้าบทความนี้ไปแล้วพอสมควร 💨
Edit : ตอนที่ 2