Estudio reproducible · 31 jul 2026

Contador de palabras en un texto: comparación de reglas Unicode

La misma cadena puede producir cifras distintas según dónde se corten las palabras. Comparamos tres reglas sobre un corpus abierto y publicamos cada entrada, cada resultado y el script que los genera.

casos publicados
160
mismo resultado
60%
casos con diferencias
64
Fin del resumen

Método

Tres reglas, una entrada

Los tres conteos reciben el mismo texto después de convertir saltos CRLF/CR a LF y aplicar NFC. Las métricas de caracteres conservan la cadena literal.

  1. 01

    Regla del sitio

    Intl.Segmenter en español y ajuste explícito para unir palabras conectadas por guiones Unicode o apóstrofos.

  2. 02

    Segmentación Unicode del runtime

    Intl.Segmenter con locale es, granularidad word y filtro isWordLike, sin el ajuste de conectores.

  3. 03

    Separación por espacios

    Texto normalizado, trim y split(/\s+/u). Es una base simple, no una referencia de corrección.

Resultados por grupo

Dónde cambian los conteos

Cada grupo contiene 20 casos. El porcentaje indica cuántas entradas discrepan dentro de ese grupo; no mide precisión.

Puntuación española

17 de 20 coinciden

Sitio ≠ Unicode1 · 5%
Espacios ≠ Unicode3 · 15%
Sitio ≠ espacios2 · 10%

Apóstrofos, guiones y abreviaturas

11 de 20 coinciden

Sitio ≠ Unicode9 · 45%
Espacios ≠ Unicode9 · 45%
Sitio ≠ espacios0 · 0%

Números, fechas y unidades

12 de 20 coinciden

Sitio ≠ Unicode2 · 10%
Espacios ≠ Unicode8 · 40%
Sitio ≠ espacios6 · 30%

URL, correos y hashtags

5 de 20 coinciden

Sitio ≠ Unicode1 · 5%
Espacios ≠ Unicode15 · 75%
Sitio ≠ espacios15 · 75%

Espacios, saltos y NBSP

18 de 20 coinciden

Sitio ≠ Unicode0 · 0%
Espacios ≠ Unicode2 · 10%
Sitio ≠ espacios2 · 10%

Acentos precompuestos y combinantes

17 de 20 coinciden

Sitio ≠ Unicode2 · 10%
Espacios ≠ Unicode3 · 15%
Sitio ≠ espacios1 · 5%

Emoji y secuencias ZWJ

3 de 20 coinciden

Sitio ≠ Unicode0 · 0%
Espacios ≠ Unicode17 · 85%
Sitio ≠ espacios17 · 85%

Mezcla de español, inglés y CJK

13 de 20 coinciden

Sitio ≠ Unicode2 · 10%
Espacios ≠ Unicode7 · 35%
Sitio ≠ espacios5 · 25%

Datos abiertos

Revisa el corpus completo

Los ejemplos y resultados están publicados con licencia CC0-1.0. Puedes auditar una fila, rehacer toda la comparación o probar el script en otro runtime y registrar sus versiones.

Reproducción
node reproduce.js > results.csv

Qué significa «carácter»

Unidad UTF-16
La unidad que usa String.length en JavaScript.
Punto de código
Un valor asignado por Unicode; un emoji puede usar varios.
Grafema
Una aproximación programática a un carácter percibido.
Byte UTF-8
El espacio de codificación, no una letra ni una palabra.

Fuentes y límites

Consulta el archivo limitations.md para el alcance completo. Si detectas un caso incorrecto, escribe a support@contadordepalabras.app con el ID del caso y una reproducción.