ทำไมเครื่องมือนับคำทั่วไปนับภาษาไทยผิด
เครื่องมือนับคำเกือบทั้งหมดในอินเทอร์เน็ตนับคำด้วยวิธีเดียว คือ ดูช่องว่างระหว่างคำแล้วนับ ซึ่งใช้ได้ดีกับภาษาอังกฤษที่เขียนแยกคำ
แต่ ภาษาไทยเขียนติดกันไม่มีช่องว่างคั่นระหว่างคำ ประโยคอย่าง “ฉันไปโรงเรียนกับเพื่อน” มี 5 คำ แต่เครื่องมือพวกนั้นจะนับได้แค่ 1 คำ เพราะมองว่าทั้งประโยคคือก้อนเดียว
เครื่องมือนี้ใช้ Intl.Segmenter ซึ่งเป็นความสามารถมาตรฐานในเบราว์เซอร์ยุคใหม่ ที่มีพจนานุกรมตัดคำภาษาไทยอยู่ในตัว จึงแบ่งคำได้ตรงตามหลักภาษาไทยจริง
ลองเอง: วางข้อความไทยลงในช่องด้านบน แล้วดูกล่อง “เทียบกับวิธีนับแบบเก่า” จะเห็นเลยว่าตัวเลขต่างกันมากแค่ไหน
การตัดคำไทยไม่มีคำตอบเดียวที่ถูก
ตรงนี้ต้องพูดตรง ๆ ก่อน: ไม่มีเครื่องมือไหนตัดคำไทยได้ตรงใจทุกคน เพราะภาษาไทยเองก็ไม่ได้มีนิยามเดียวว่า “คำ” คืออะไร คำประสมอย่าง “คนไทย” หรือ “วันนี้” จะนับเป็นคำเดียวหรือสองคำก็เถียงกันได้ทั้งคู่ ตัวตัดคำจึงต้องเลือกฝั่งใดฝั่งหนึ่งเสมอ
นี่คือตัวอย่างที่เครื่องมือด้านบนตัดจริง ลองพิมพ์ตามดูได้เลย คอลัมน์ขวาคือจุดที่คนอาจไม่เห็นด้วย
| ประโยค | นับได้ | ตัดเป็น | จุดที่เถียงได้ |
|---|---|---|---|
| ฉันไปโรงเรียนกับเพื่อน | 5 | ฉัน · ไป · โรงเรียน · กับ · เพื่อน | ตรงตามที่คนส่วนใหญ่คิด |
| เขาชอบกินข้าวผัดกะเพราไก่ไข่ดาว | 9 | เขา · ชอบ · กิน · ข้าว · ผัด · กะเพรา · ไก่ · ไข่ · ดาว | “ข้าวผัดกะเพรา” และ “ไข่ดาว” น่าจะเป็นชื่ออาหารคำเดียว |
| วันนี้อากาศดีมาก | 5 | วัน · นี้ · อากาศ · ดี · มาก | “วันนี้” หลายคนนับเป็นคำเดียว จะได้ 4 คำ |
| คนไทยใจดี | 3 | คน · ไทย · ใจดี | “ใจดี” รวมเป็นคำเดียว แต่ “คนไทย” กลับแยก ไม่สม่ำเสมอกัน |
| กรุงเทพมหานครเป็นเมืองหลวงของประเทศไทย | 6 | กรุงเทพมหานคร · เป็น · เมือง · หลวง · ของ · ประเทศไทย | “กรุงเทพมหานคร” รวมทั้งก้อน แต่ “เมืองหลวง” แยกสองคำ |
แถวสองแถวสุดท้ายชี้ปัญหาได้ชัดที่สุด — พจนานุกรมในตัวเบราว์เซอร์รู้จัก “กรุงเทพมหานคร” และ “ประเทศไทย” เป็นคำเดียว แต่ไม่รู้จัก “เมืองหลวง” และ “คนไทย” ผลลัพธ์จึงขึ้นกับว่าคำนั้นอยู่ในพจนานุกรมหรือไม่ ไม่ใช่กฎไวยากรณ์
ตัวอักษรไทยที่ตาเห็น 1 ตัว คอมพิวเตอร์อาจนับเป็น 3
ช่อง “ตัวอักษร” นับตามที่คอมพิวเตอร์เก็บข้อมูลจริง ซึ่งไม่เท่ากับจำนวนตัวที่ตามองเห็น เพราะสระบน สระล่าง และวรรณยุกต์ของไทยถูกเก็บเป็นอักขระแยกต่างหาก ทั้งที่วางซ้อนอยู่บนพยัญชนะตัวเดียวกัน
| คำ | ที่ตาเห็น | ที่ระบบนับ | ประกอบด้วย |
|---|---|---|---|
| ที่ | 1 | 3 | ท + สระอี + ไม้เอก |
| น้ำ | 1 | 3 | น + ไม้โท + สระอำ |
| ผู้ | 1 | 3 | ผ + สระอู + ไม้โท |
| เสื้อ | 3 | 5 | เ + ส + สระอือ + ไม้โท + อ |
| เกี่ยว | 4 | 6 | เ + ก + สระอี + ไม้เอก + ย + ว |
| เปรี้ยว | 5 | 7 | เ + ป + ร + สระอี + ไม้โท + ย + ว |
| สวัสดีครับ | 7 | 10 | มีสระและวรรณยุกต์ลอยอยู่ 3 ตัว |
ความต่างนี้ไม่ใช่เรื่องวิชาการอย่างเดียว — มันกินโควตาจริงเวลาส่ง SMS หรือเขียนแคปชันที่มีขีดจำกัดตัวอักษร ข้อความไทยที่ดูสั้น ๆ อาจเต็มโควตาเร็วกว่าที่คิดหลายเท่า ระบบส่วนใหญ่รวมทั้ง SMS และช่องกรอกตามเว็บนับแบบเดียวกับช่อง “ตัวอักษร” ในหน้านี้ ดังนั้นตัวเลขที่เห็นตรงนี้คือตัวเลขที่ระบบปลายทางจะเห็นเช่นกัน
ใช้ตอนไหนบ้าง
- เขียนบทความ / คอนเทนต์ — ลูกค้ากำหนดความยาวเป็นจำนวนคำ
- งานแปล — ค่าจ้างแปลคิดตามจำนวนคำต้นฉบับ
- เรียงความ รายงาน วิทยานิพนธ์ — อาจารย์กำหนดจำนวนคำขั้นต่ำ
- เขียนแคปชัน / โฆษณา — แพลตฟอร์มจำกัดจำนวนตัวอักษร
- เขียน meta description — Google แสดงประมาณ 155–160 ตัวอักษร
ความยาวที่แพลตฟอร์มต่าง ๆ จำกัดไว้
| ที่ใช้ | จำกัด | หน่วย |
|---|---|---|
| Title tag (Google) | ~60 | ตัวอักษร |
| Meta description | ~155 | ตัวอักษร |
| X / Twitter | 280 | ตัวอักษร |
| SMS ภาษาไทย | 70 | ตัวอักษร ต่อ 1 ข้อความ |
| SMS ภาษาอังกฤษ | 160 | ตัวอักษร ต่อ 1 ข้อความ |
หมายเหตุเรื่อง SMS: ข้อความที่มีอักษรไทยจะถูกส่งแบบ Unicode ซึ่งจุได้เพียง 70 ตัวอักษรต่อหนึ่งข้อความ น้อยกว่าภาษาอังกฤษกว่าครึ่ง เป็นเหตุผลที่ SMS ภาษาไทยมักคิดค่าส่งหลายข้อความ
ที่มาของข้อมูล:
การตัดคำและการนับตัวอักษรใช้ Intl.Segmenter ที่ติดมากับเบราว์เซอร์
ซึ่งอิงมาตรฐาน Unicode Text Segmentation (UAX #29) ·
ตัวเลขทุกช่องในสองตารางด้านบนได้จากการพิมพ์ข้อความนั้นลงในเครื่องมือของหน้านี้เอง
ตรวจเมื่อ 16 สิงหาคม 2569 ·
ผลตัดคำอาจต่างกันเล็กน้อยตามเบราว์เซอร์และเวอร์ชัน
เพราะพจนานุกรมตัดคำเป็นของเบราว์เซอร์ ไม่ใช่ของเว็บนี้ ·
ขีดจำกัดตัวอักษรของแต่ละแพลตฟอร์มเปลี่ยนได้ ควรตรวจกับปลายทางอีกครั้งถ้าเป็นงานสำคัญ
คำถามที่พบบ่อย
ทำไมนับคำได้ไม่ตรงกับที่ฉันนับเอง
เพราะภาษาไทยไม่มีนิยามเดียวว่า “คำ” คืออะไร คำประสมอย่าง “วันนี้” หรือ “คนไทย” ตัดเป็นคำเดียวหรือสองคำก็ถูกทั้งคู่ ตัวตัดคำในเบราว์เซอร์เลือกตามพจนานุกรมที่มีอยู่ ให้ใช้ตัวเลขนี้เป็นค่าที่สม่ำเสมอสำหรับเทียบข้อความ มากกว่าเป็นคำตอบสุดท้าย
ทำไม “ที่” นับได้ 3 ตัวอักษร ทั้งที่เห็นตัวเดียว
เพราะสระและวรรณยุกต์ของไทยถูกเก็บเป็นอักขระแยกกัน “ที่” คือ ท + สระอี + ไม้เอก รวมเป็น 3 อักขระที่วางซ้อนกันจนดูเหมือนตัวเดียว ระบบส่วนใหญ่รวมทั้ง SMS และช่องกรอกตามเว็บก็นับแบบนี้เหมือนกัน ตัวเลขที่เห็นในหน้านี้จึงตรงกับที่ปลายทางจะเห็น
ทำไมบางเบราว์เซอร์ขึ้นว่า “ตัดคำแบบประมาณ”
แปลว่าเบราว์เซอร์นั้นยังไม่รองรับ Intl.Segmenter (มักเป็นเบราว์เซอร์รุ่นเก่า)
เครื่องมือจะเปลี่ยนไปใช้วิธีประมาณแทน ซึ่งตัวเลขจะไม่แม่นเท่า
แนะนำให้อัปเดตเบราว์เซอร์เป็นเวอร์ชันใหม่
นับคำภาษาอังกฤษปนไทยได้ไหม
ได้ครับ ตัวตัดคำจัดการทั้งสองภาษาในข้อความเดียวกันได้
เวลาที่ใช้อ่านคำนวณจากอะไร
ประมาณจากความเร็วอ่านเฉลี่ย 200 คำต่อนาที เป็นค่าคร่าว ๆ ไว้กะเวลาเท่านั้น
ข้อความยาวมาก ๆ ใช้ได้ไหม
ได้ครับ แต่ถ้ายาวมากจริง ๆ การตัดคำอาจใช้เวลาสักครู่ เพราะทำงานในเครื่องคุณเอง
เครื่องมืออื่นที่อาจได้ใช้
- แปลงตัวเลขเป็นตัวหนังสือ — เขียนจำนวนเงินเป็นภาษาไทย “บาทถ้วน”
- เครื่องนับเลขมีเสียง — นับเดินหน้า–ถอยหลัง ออกเสียงได้ 17 ภาษา
- เครื่องมือ PDF — รวมไฟล์ PDF แยกหน้า ลบหน้า และแปลงรูปเป็น PDF ในเบราว์เซอร์
- ดูเครื่องมือทั้งหมด