Toolora

นับคำและตัวอักษร

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

คำ
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 หน้า ซึ่งมากเกินกว่าการวางข้อความตามปกติอยู่แล้ว ขีดจำกัดนี้มีไว้เพื่อไม่ให้การเผลอวางไฟล์ขนาดใหญ่ทำให้แท็บเบราว์เซอร์ค้าง