Cómo contar palabras y caracteres (y por qué no coinciden)
Dos herramientas pueden contar el mismo párrafo y no coincidir porque “palabra” y “carácter” son definiciones, no una ley única. Un acento, un emoji o un espacio final mueven el total. El contador de palabras declara su método: Intl.Segmenter con el idioma activo cuando existe, normalización Unicode NFC, caracteres por grafema y marcas de ancho cero fuera del total. Pega el ejemplo de abajo y deberías ver 12 palabras, 66 caracteres con espacios, 55 sin espacios, 2 oraciones, 1 párrafo y 1 línea.
Primero el acento: por qué el español tropieza con malos contadores
En español las tildes importan. La palabra café cuenta como 4 caracteres grafema tras NFC, aunque en memoria a veces viaje como e más una marca combinada. Si un editor cuenta puntos de código sin normalizar, el mismo “café” puede verse más largo. Antes de recortar un título por “un carácter”, pregunta qué modelo usa el límite.
Los espacios entre palabras también cambian el relato. “Con espacios” incluye esos huecos; “sin espacios” los quita. Ninguno de los dos debería sumar un ZWSP pegado al copiar desde un chat. Eso pasa a menudo al traer texto de WhatsApp o de un documento con formato oculto.
Qué es una palabra aquí
Con Segmenter, una palabra es un segmento léxico del idioma, no “todo lo que hay entre espacios.” Eso ayuda con contracciones y con textos mezclados. Si Segmenter falta, el respaldo usa patrones Unicode que siguen omitiendo puntuación pura y espacios.
Ejemplo trabajado: muestra en español
Hola mundo. Este es un ejemplo breve para el contador de palabras.
Con locale es la biblioteca del sitio reporta 12 palabras, 66 caracteres con espacios, 55 sin espacios, 2 oraciones, 1 párrafo y 1 línea. A 200 PPM de lectura el tiempo es 4 segundos. A 130 PPM de habla son 6 segundos. La fórmula es ceil(palabras ÷ PPM × 60). Doce palabras a 200 PPM piden menos de un décimo de minuto; el redondeo hacia arriba explica esos pocos segundos en pantalla.
Oraciones, párrafos y líneas
Las oraciones siguen la segmentación oracional cuando hay Segmenter. Los párrafos son bloques no vacíos separados por líneas en blanco. Las líneas siguen los Enter del cuadro: un ajuste blando en pantalla sigue siendo una sola línea hasta que pulsas Enter.
Ejemplo: dos párrafos
Primer párrafo.
El segundo párrafo trae más palabras aquí.
Resultado: 9 palabras, 2 oraciones, 2 párrafos y 3 líneas (la línea en blanco intermedia cuenta). La palabra párrafo aparece 2 veces en la lista de repetidas. Si otra herramienta ignora líneas vacías, su total de líneas bajará aunque las palabras coincidan.
Por qué no coinciden: lista corta
- Reglas de frontera de palabra: solo espacios frente a segmentación lingüística.
- Modelo de carácter: grafemas, puntos de código o unidades UTF-16.
- Caracteres ocultos: ancho cero, guiones suaves, controles de dirección.
- Normalización: NFC frente a dejar acentos descompuestos.
- Límites y codificación: un segmento SMS GSM de 160 no es el mismo presupuesto que UCS-2 de 70.
Si dos contadores discrepan, cambia una variable a la vez: quita marcas de ancho cero, normaliza, vuelve a comparar palabras. Ese orden evita pelear por un número que nació de basura invisible en el portapapeles.
Palabras repetidas sin lista de vacías
La lista de más repetidas unifica mayúsculas según el idioma y ordena por frecuencia bruta. No elimina “el” ni “de”. Sirve para borradores y revisiones, no para SEO de relleno.
Ejemplo de frecuencia
Gato gato GATO perro perro ave
gato sale 3 veces, perro 2 veces, y ave no entra en repetidas porque aparece una sola vez.
Cómo usar el contador
- Abre el contador de palabras.
- Escribe o pega el texto (
dir="auto"sigue guiones mixtos y RTL si aparece). - Ajusta PPM de lectura y habla si tu audiencia no es la media.
- Opcional: pon un límite de caracteres (presets SMS o uno propio).
- Copia las estadísticas cuando necesites un resumen.
Los pegados grandes se retardan un poco para no congelar la página. Nada se envía a un servidor.
Errores frecuentes
Comparar totales sin comparar métodos. Un número “raro” suele ser otra definición.
Recortar con el modelo equivocado. Borrar grafemas cuando la plataforma cuenta puntos de código (o al revés) malgasta ediciones.
Creer que el tiempo de lectura es una promesa. Las PPM son una hipótesis. Cámbialas si el texto se leerá en voz alta.
Ignorar líneas en blanco. Párrafos y líneas se mueven al pulsar Enter dos veces.
Asumir que todo límite de app está documentado. Prefiere fuentes públicas.
Prueba el ejemplo
Pega la muestra de “Hola mundo”, confirma 12 / 66 / 55, luego la línea de gatos y perros para ver repetidas. Baja las PPM de habla y mira cómo crece el tiempo hablado sin cambiar el total de palabras.
Preguntas frecuentes
¿Por qué dos contadores dan totales distintos para el mismo texto?
Suelen diferir en qué es una palabra (guiones, contracciones, emoji) y en si un carácter es un grafema o un punto de código. Compara el método, no solo el número grande.
¿Un emoji cuenta como un carácter aquí?
Sí cuando hay Intl.Segmenter. Los caracteres usan agrupaciones grafema, así que un emoji o una letra acentuada cuentan como un símbolo percibido. Las marcas de ancho cero no entran en el total.
¿Qué diferencia hay entre caracteres con espacios y sin espacios?
Con espacios incluye grafemas de espacio en blanco. Sin espacios los omite. Ambos excluyen caracteres de formato de ancho cero.
¿Cómo se estiman los tiempos de lectura y habla?
Segundos = ceil(palabras ÷ PPM × 60). Por defecto 200 PPM de lectura y 130 de habla. Puedes cambiar ambas velocidades en la herramienta.
¿Se sube mi texto a un servidor?
No. El contador corre en tu navegador y no guarda lo que escribes.
¿Debo confiar en el límite de una red social?
Solo si el producto lo documenta. Aquí hay presets verificados de SMS (160 GSM y 70 UCS-2) y puedes escribir un límite personalizado.