Por qué distintas aplicaciones cuentan letras y palabras de forma diferente
El mismo texto pegado en 2 formularios puede dar recuentos distintos. Antes de recortar palabras para cumplir un límite, pregunta qué se mide: caracteres visibles, unidades de almacenamiento o palabras. No son lo mismo.
Un carácter visible puede tener varias partes
Unicode puede representar lo que el lector percibe como un carácter mediante una letra y una marca combinante. Los clústeres de grafemas aproximan esas unidades visibles; contar puntos de código o unidades de almacenamiento puede dar otro resultado. Algunas secuencias de emojis presentan una diferencia similar.
Referencias: Unicode Standard Annex #29 — Text Segmentation
Un espacio no define una palabra en todos los idiomas
La segmentación de palabras depende del idioma y la puntuación. Algunas lenguas no separan palabras con espacios como el inglés y pueden necesitar reglas o diccionarios adicionales. Dividir por espacios no es una definición universal suficiente.
Referencias: Unicode Standard Annex #29 — Text Segmentation
Limpia solo lo que quieres cambiar
Eliminar espacios sobrantes puede mejorar una frase, pero estropear tablas alineadas o código. Quitar signos diacríticos cambia detalles lingüísticos; no lo hagas automáticamente en una cita o un nombre que deba conservarse.
Convertir mayúsculas y minúsculas tiene sentido en escrituras que las distinguen. No corrige la ortografía árabe. Trabaja sobre una copia y compara las líneas modificadas.
- Si necesitas cumplir el límite de otra plataforma, su contador es la referencia final.
- Distingue palabras de caracteres con espacios y sin ellos.
- El número de palabras no determina un tiempo de lectura exacto; importan la dificultad y el lector.
Un ejemplo pequeño de recuentos diferentes
El carácter visible é puede guardarse como 1 punto de código o como e seguida de un acento agudo combinante. La segunda representación tiene 2 puntos de código aunque se vea casi igual.
El árabe بَ también contiene una letra y una marca vocálica. Contar las unidades que percibe el lector es distinto de contar las almacenadas. No elimines una marca solo para que coincidan los contadores.