นับคำและตัวอักษร
นับคำ ตัวอักษร ประโยค และเวลาอ่านทันทีขณะพิมพ์ รวมถึงภาษาไทยที่เครื่องมือส่วนใหญ่นับผิด
- คำ
- 0
- ตัวอักษร
- 0
- ตัวอักษร (ไม่นับช่องว่าง)
- 0
- ประโยค
- 0
- ย่อหน้า
- 0
- บรรทัด
- 0
- เวลาอ่าน
- 0
- เวลาพูด
- 0
สำหรับนักพัฒนา
- Unicode code points
- 0
- UTF-16 code units
- 0
ข้อความของคุณอยู่ในแท็บนี้เท่านั้น ไม่ถูกอัปโหลดไปที่ใด
ทำไมเครื่องมือนับคำส่วนใหญ่นับภาษาไทยไม่ได้
ภาษาไทยเขียนติดกันโดยไม่เว้นวรรคระหว่างคำ ประโยคอย่าง “สวัสดีครับผมชื่อโทลอร่า” จึงเป็นตัวอักษรชุดเดียวยาวติดกัน ทั้งที่คนอ่านเห็นเป็นหกหรือเจ็ดคำ
เครื่องมือนับคำเกือบทั้งหมดบนอินเทอร์เน็ตใช้วิธีตัดคำที่ช่องว่าง พอเจอประโยคข้างต้นจึงรายงานว่ามี หนึ่งคำ และสำหรับเอกสารภาษาไทยที่ยาวขึ้น ตัวเลขที่ได้ไม่ใช่แค่คลาดเคลื่อนเล็กน้อย แต่ไม่มีความหมายเลย เพราะจริง ๆ แล้วมันกำลังนับช่องว่างที่ผู้เขียนบังเอิญเว้นระหว่างวลีเท่านั้น
เครื่องมือนี้ใช้ระบบตัดคำตามมาตรฐาน Unicode ที่มีอยู่ในเบราว์เซอร์ ซึ่งมีพจนานุกรมภาษาไทยอยู่ภายในและหาขอบเขตคำที่แท้จริงได้ กลไกเดียวกันนี้ยังรองรับภาษาญี่ปุ่น จีน และเขมร ที่มีปัญหาแบบเดียวกัน
แต่ก็ไม่ได้สมบูรณ์แบบ คำที่ไม่มีในพจนานุกรม เช่น ชื่อแบรนด์ คำสแลง หรือคำทับศัพท์ จะถูกตัดในตำแหน่งที่ดูสมเหตุสมผลแต่ผิด ตัวอย่างชัดเจนคือ “โทลอร่า” ซึ่งคนอ่านเห็นเป็นคำเดียวแต่ระบบตัดเป็นสามคำ ข้อความที่เต็มไปด้วยชื่อเฉพาะจึงควรถือว่าตัวเลขใกล้เคียง ไม่ใช่แม่นยำ
ทำไมเครื่องมือแต่ละตัวนับจำนวนตัวอักษรไม่ตรงกัน
คำถามว่า “ข้อความนี้มีกี่ตัวอักษร” มีคำตอบที่ถูกต้องได้สามแบบ และเครื่องมือแต่ละตัวก็เลือกคนละแบบโดยไม่บอกคุณ
ลองดูอิโมจิครอบครัว 👨👩👧👦 คนอ่านเห็นเป็น หนึ่ง ตัวอักษร แต่มันประกอบขึ้นจากรหัส Unicode เจ็ด ตัวที่เชื่อมกันด้วยอักขระที่มองไม่เห็น และเมื่อเก็บเป็น UTF-16 จะกินพื้นที่ สิบเอ็ด หน่วย ซึ่งเป็นเหตุผลที่ `"👨👩👧👦".length` ใน JavaScript คืนค่า 11
เครื่องมือนี้แสดงหนึ่งตัวอักษร เพราะนั่นคือสิ่งที่คนหมายถึง ส่วนอีกสองค่าอยู่ในหัวข้อ “สำหรับนักพัฒนา” เพราะเวลาคุณตรวจว่าข้อมูลจะใส่ลงคอลัมน์ฐานข้อมูลหรือผ่านขีดจำกัดของ API ได้ไหม ค่าที่ต้องดูคือจำนวน code unit
ภาษาไทยก็มีปัญหาแบบเดียวกันในรูปแบบที่เงียบกว่า สระและวรรณยุกต์เป็นรหัสแยกที่ซ้อนอยู่บนพยัญชนะ คำว่า “กิ” จึงเป็นหนึ่งตัวอักษรเวลาอ่าน แต่เป็นสองหน่วยเวลาเก็บ
ขีดจำกัดที่ควรรู้
- โพสต์บน X / Twitter
- 280 ตัวอักษร
- SMS ภาษาอังกฤษ (GSM-7)
- 160 ตัวอักษร
- SMS ภาษาไทยหรือมีอิโมจิ (UCS-2)
- 70 ตัวอักษร
- Meta description
- ประมาณ 155 ตัวอักษรก่อนถูกตัด
- ชื่อหน้าเว็บ (title)
- ประมาณ 60 ตัวอักษรก่อนถูกตัด
คำถามที่พบบ่อย
- ทำไม SMS ภาษาไทยส่งได้แค่ 70 ตัวอักษร
- ระบบ SMS ใช้ชุดอักขระแบบ 7 บิตชื่อ GSM-7 ซึ่งครอบคลุมเฉพาะตัวอักษรละติน จึงใส่ได้ 160 ตัวต่อหนึ่งข้อความ แต่ทันทีที่ข้อความมีภาษาไทย อิโมจิ หรือแม้แต่เครื่องหมายคำพูดแบบโค้ง ทั้งข้อความจะเปลี่ยนไปใช้การเข้ารหัส UCS-2 และขีดจำกัดจะลดเหลือ 70 ตัวอักษรสำหรับทั้งข้อความ ไม่ใช่เฉพาะส่วนที่เป็นภาษาไทย อิโมจิเพียงตัวเดียวในข้อความภาษาอังกฤษจึงทำให้เสียพื้นที่ไป 90 ตัวอักษร
- เวลาอ่านที่แสดงแม่นยำแค่ไหน
- ควรถือเป็นค่าประมาณคร่าว ๆ ระบบคำนวณจากความเร็วราว 200 คำต่อนาทีสำหรับข้อความภาษาละติน ซึ่งเป็นค่าที่วงการสิ่งพิมพ์ใช้กันมานาน และปรับให้สูงขึ้นสำหรับภาษาไทยเพราะคำภาษาไทยสั้นกว่าคำภาษาอังกฤษ ความเร็วในการอ่านจริงต่างกันได้ถึงสามเท่าระหว่างแต่ละคนและขึ้นกับเนื้อหาอย่างมาก จึงเหมาะใช้แยกว่าเป็นบทความสองนาทีหรือยี่สิบนาที ไม่ใช่ใช้วางแผนเวลาแบบละเอียด
- ทำไมจำนวนประโยคภาษาไทยถึงระบุว่าเป็นค่าประมาณ
- ภาษาไทยจบประโยคด้วยการเว้นวรรคแทนการใส่จุด แต่ก็ใช้การเว้นวรรคคั่นวลี ตัวเลข และคำเชื่อมด้วยเช่นกัน ไม่มีอะไรในตัวข้อความที่แยกสองกรณีนี้ออกจากกัน การนับทุกช่องว่างจึงนับเกิน ส่วนการนับเฉพาะจุดก็นับขาด เราจึงแสดงค่าที่อนุรักษ์นิยมกว่าพร้อมกำกับไว้ แทนที่จะเสนอการเดาเป็นข้อเท็จจริง
- คำที่มีขีดกลางอย่าง “well-known” นับเป็นหนึ่งคำหรือสองคำ
- สองคำ ระบบยึดตามมาตรฐาน Unicode เรื่องขอบเขตคำ ซึ่งถือว่าขีดกลางเป็นจุดตัด “well-known” จึงเป็นสองคำ ขณะที่ “don’t” ยังเป็นคำเดียว โปรแกรมประมวลผลคำส่วนใหญ่ใช้กฎเดียวกัน ตัวเลขที่ได้จึงควรตรงกับที่คุณเห็นในโปรแกรมอื่น
- ข้อความของฉันถูกส่งไปที่ไหนหรือไม่
- ไม่ การนับทั้งหมดทำงานในเบราว์เซอร์ของคุณด้วย JavaScript ที่มาพร้อมหน้าเว็บ ไม่มีเซิร์ฟเวอร์เข้ามาเกี่ยวข้อง ซึ่งคุณตรวจสอบได้โดยตัดการเชื่อมต่ออินเทอร์เน็ตหลังโหลดหน้าเว็บแล้ว เครื่องมือจะยังทำงานได้ตามปกติ และเนื่องจากไม่มีการจัดเก็บข้อมูล จึงไม่มีอะไรให้กู้คืนภายหลังเช่นกัน
- มีขีดจำกัดความยาวหรือไม่
- เครื่องมือจะนับ 500,000 ตัวอักษรแรกและแจ้งให้ทราบเมื่อมีการตัดข้อความ ปริมาณนี้เทียบเท่าหนังสือราว 300 หน้า ซึ่งมากเกินกว่าการวางข้อความตามปกติอยู่แล้ว ขีดจำกัดนี้มีไว้เพื่อไม่ให้การเผลอวางไฟล์ขนาดใหญ่ทำให้แท็บเบราว์เซอร์ค้าง