Analizador de Texto
Analizar estadísticas y utilidades de texto
El analisis de texto cuenta caracteres, palabras, oraciones y parrafos. Esencial para limites de caracteres en redes sociales, meta tags SEO y SMS.
Que es el analisis de texto?
El analisis de texto (o metricas de texto) es el proceso de calcular propiedades estadisticas de un fragmento de texto: conteo de caracteres, conteo de palabras, conteo de oraciones, conteo de parrafos, y metricas derivadas como la longitud promedio de palabras y el tiempo estimado de lectura.
Estas metricas pueden parecer simples, pero son criticas en muchos contextos profesionales. Los community managers necesitan conocer el conteo de caracteres para mantenerse dentro de los limites de las plataformas. Los especialistas en SEO optimizan meta descripciones y etiquetas de titulo a longitudes especificas. Los traductores rastrean el conteo de palabras para facturacion. Los escritores usan estimaciones de tiempo de lectura para calibrar la extension de los articulos.
Los analizadores de texto modernos van mas alla del simple conteo. Manejan Unicode correctamente (donde un solo “caracter” puede ser multiples bytes), identifican oraciones por patrones de puntuacion en lugar de solo contar puntos, y distinguen entre palabras separadas por espacios, guiones o saltos de linea.
Conteo de caracteres vs palabras vs oraciones
Conteo de caracteres
Un conteo de caracteres parece sencillo, pero abundan los casos limite:
- Con o sin espacios? Las plataformas de redes sociales generalmente cuentan los espacios. La facturacion de SMS no siempre lo hace.
- Caracteres Unicode: Un emoji como una bandera puede ser 4+ bytes pero se muestra como 1 caracter. El
.lengthde un string en JavaScript devuelve unidades de codigo UTF-16, no caracteres visuales; use[...str].lengthoIntl.Segmenterpara clusters de grafemas. - Saltos de linea:
\ntipicamente se cuenta como 1 caracter, pero\r\n(saltos de linea de Windows) son 2 bytes.
Conteo de palabras
Las palabras se cuentan generalmente dividiendo por espacios en blanco y filtrando cadenas vacias. Pero lo que cuenta como “palabra” depende del contexto:
- Terminos con guion: es “bien conocido” una palabra o dos?
- Contracciones: “don’t” es una palabra
- Numeros: “42” y “3.14” generalmente se cuentan como palabras
- URLs: “https://example.com/path” tipicamente es una palabra
La mayoria de los analizadores de texto dividen por limites de espacios en blanco (/\s+/), lo cual maneja correctamente la mayoria de los casos para idiomas europeos. Los idiomas CJK (chino, japones, coreano) no usan espacios entre palabras, requiriendo algoritmos de segmentacion.
Conteo de oraciones
Las oraciones son mas dificiles de contar de lo que podria esperarse. El conteo simple por puntos falla con abreviaturas (“Dr. Smith”), numeros decimales (“3.14”) y puntos suspensivos (“Espera…”). La deteccion robusta de oraciones busca signos de puntuacion de fin de oracion (., !, ?) seguidos de un espacio y una letra mayuscula, mientras maneja las excepciones.
Consideraciones de Unicode
Unicode introduce complejidad que confunde a muchos analizadores de texto:
Clusters de grafemas — Un solo caracter visual puede consistir en multiples code points de Unicode. La secuencia emoji de “familia” puede ser 7+ code points pero se renderiza como un caracter. La letra “e con acento” puede ser un code point (e) o dos (e + marca de acento combinante), y se ven identicas.
Inconsistencia en la longitud de strings — El String.length de JavaScript cuenta unidades de codigo UTF-16. Los caracteres fuera del Plano Multilingue Basico (muchos emojis) usan pares sustitutos, por lo que "bandera".length puede devolver 4 en lugar de 1. Use Array.from(str).length o Intl.Segmenter para un conteo preciso de grafemas.
Conteo de bytes vs conteo de caracteres — UTF-8 usa 1-4 bytes por caracter. Los caracteres ASCII son 1 byte, los caracteres europeos acentuados son 2 bytes, los caracteres CJK son 3 bytes y los emojis son 4 bytes. Cuando importan los limites de bytes (SMS, columnas de base de datos), el conteo de caracteres por si solo es insuficiente.
Casos de uso comunes
- Optimizacion SEO: Crear meta descripciones (objetivo 150-155 caracteres) y etiquetas de titulo (objetivo 50-60 caracteres) dentro de los limites de visualizacion de Google
- Gestion de redes sociales: Asegurar que las publicaciones se ajusten a los limites de caracteres — Twitter/X (280), LinkedIn (3000 para publicaciones, 120 para titulares), captions de Instagram (2200)
- Segmentacion de SMS: Cada segmento SMS es de 160 caracteres (GSM-7) o 70 caracteres (Unicode). Exceder un segmento duplica el costo
- Planificacion de contenido: Estimar el tiempo de lectura (promedio de 200-250 palabras por minuto) para calibrar la extension del articulo segun la atencion de la audiencia
- Cotizacion de traducciones: Los traductores comunmente cobran por palabra. Los conteos precisos de palabras son esenciales para la estimacion de costos antes de que comience un proyecto
Prueba estos ejemplos
Resultados del analisis: 139 caracteres, 25 palabras, 3 oraciones, 1 parrafo. La longitud promedio de palabra es 4.2 caracteres. Este texto cabe en un tweet (280 caracteres) y un SMS (160 caracteres).
The quick brown fox jumps over the lazy dog. This sentence contains every letter of the English alphabet. It is commonly used for font testing. Una entrada vacia produce resultados en cero: 0 caracteres, 0 palabras, 0 oraciones, 0 parrafos. El analizador maneja la entrada vacia correctamente sin errores.