Analizador de Frecuencia de Caracteres
Cuenta la frecuencia de cada carácter en tu texto
Opciones
排序
¿Qué es el análisis de frecuencia de caracteres?
El análisis de frecuencia de caracteres cuenta cuántas veces aparece cada carácter en un texto y qué proporción representa. Puede incluir letras, números, puntuación, espacios, caracteres CJK, símbolos y caracteres de control poco visibles según la entrada. Es útil en ejercicios de criptografía, análisis de sustitución simple, extracción de rasgos de texto, limpieza de datos, revisión de codificación, investigación de compresión y control de calidad de contenido importado. Frecuencias extrañas pueden revelar caracteres de formato ocultos, texto mal decodificado, separadores repetidos, idiomas inesperados o restos de copiar y pegar. La herramienta no explica la causa por sí sola, pero ofrece una vista medible de la distribución real.
Cómo usar
Cómo usar
- Introduce o pega tu texto en el área de entrada
- El sistema cuenta automáticamente las apariciones y la frecuencia de cada carácter
- Usa las opciones de ordenación para organizar los resultados por carácter o por cantidad
- Ajusta las opciones (distinguir mayúsculas y minúsculas, espacios, saltos de línea)
Alcance del recuento
- Antes de comparar textos, decide si los espacios, la puntuación, las mayúsculas y los saltos de línea deben contarse.
- En textos multilingües, ten en cuenta que los emoji, los caracteres compuestos y los caracteres CJK pueden no comportarse como una sola letra latina.
Casos de uso
Principio técnico
El análisis de frecuencia de caracteres cuenta las apariciones de cada carácter en un texto. La implementación utiliza una tabla hash (típicamente un Map en JavaScript): 1) recorrer el texto carácter a carácter, 2) para cada carácter, incrementar el contador en el mapa, 3) ordenar las entradas por frecuencia descendente, 4) renderizar el histograma (los 10-20 caracteres principales, con el resto en un grupo residual). El algoritmo es O(N) en la longitud del texto, donde N es el número de caracteres, y el coste dominante es la búsqueda e incremento en el mapa (esencialmente gratuito en V8 y SpiderMonkey para el caso común). Un detalle útil: ¿qué cuenta como un carácter? En JavaScript, .length devuelve el número de unidades de código UTF-16, no puntos de código Unicode. Un carácter fuera del Plano Multilingüe Básico (emoji, ideogramas CJK poco frecuentes) se codifica como un par sustituto (dos unidades de código), y un recuento ingenuo por unidad de código sobrecuenta al tratar cada mitad del sustituto como un carácter separado. La página usa Array.from(text) o Intl.Segmenter para iterar puntos de código (o clústeres de grafemas), que es la definición correcta de carácter para la mayoría de los casos de uso. Una aplicación útil: el análisis de frecuencia es la técnica clásica para descifrar cifrados de sustitución (César, Vigenère, sustitución simple). La distribución de frecuencia de letras en inglés es bien conocida (E, T, A, O, I, N, S, H, R son las más comunes, en ese orden aproximado), y un cifrado de sustitución preserva la distribución de frecuencia, por lo que la letra más común del texto cifrado probablemente corresponde a E, la segunda a T, y así sucesivamente. La página es una herramienta didáctica, no una herramienta de criptoanálisis, pero la técnica es la misma. Una advertencia sobre Unicode: para los idiomas CJK, la distribución de frecuencia de caracteres depende del corpus (novela moderna, poesía clásica, texto técnico) y del nivel de análisis (carácter, palabra, bigrama, trigrama). Un análisis de frecuencia de una novela china moderna da una distribución; un análisis de frecuencia de los Analectas da otra diferente. La página es agnóstica al corpus, por lo que el usuario puede ejecutarla sobre cualquier texto.
- Tabla hash (Map en JS): recorrer el texto, incrementar contador, ordenar por frecuencia descendente, renderizar histograma; O(N) en longitud del texto con coste por carácter muy rápido.
- Pares sustitutos: un carácter fuera del BMP (emoji, CJK poco frecuente) son dos unidades de código UTF-16; el recuento ingenuo por unidad de código sobrecuenta; usar Array.from o Intl.Segmenter.
- Criptoanálisis de cifrado de sustitución: frecuencia de letras en inglés E, T, A, O, I, N, S, H, R (las más comunes en ese orden); un cifrado de sustitución preserva la distribución.
- Frecuencia CJK: depende del corpus (novela moderna, poesía clásica, texto técnico) y del nivel de análisis (carácter, palabra, bigrama); la página es agnóstica al corpus.
- Top-N y grupo residual: la página muestra por defecto los 10-20 caracteres principales, con un grupo residual para el resto; útil para detectar patrones en textos densos.
- Sensibilidad a mayúsculas: la página ofrece un interruptor de sensible/insensible a mayúsculas; el inglés típicamente es insensible a mayúsculas (E y e son la misma letra, solo formas distintas), el CJK siempre es insensible a mayúsculas (no existe el concepto de mayúscula).
- Rendimiento: O(N) para el conteo, O(K log K) para ordenar K caracteres distintos; la página maneja textos de 1 millón de caracteres en mucho menos de un segundo, que es el patrón de producción.
Ejemplos
Análisis de texto en inglés
Entrada "hello world" → Resultado: 'l' aparece 3 veces (27.3%), 'o' aparece 2 veces (18.2%)Análisis de texto en chino
Entrada "我爱中国我爱北京" → Resultado: '我' y '爱' aparecen 2 veces cada uno (25%)Comparación de distribución de frecuencias
Texto en inglés: 'e' es la más alta con ~12.7%; chino: '的' es la más alta con ~4%Preguntas frecuentes
¿Qué cuenta el analizador?
Cada carácter único y la frecuencia con la que aparece, ordenado por frecuencia. Útil para análisis de cifrados (el inglés tiene frecuencias de letras predecibles, empezando por E, T, A, O), perfilado de texto y detección de caracteres inesperados en un documento copiado y pegado.
¿Se cuentan los espacios en blanco?
Sí, por defecto: espacios, tabulaciones y saltos de línea tienen su propia fila. Activa «ignorar espacios» si solo quieres caracteres imprimibles. El espacio en blanco suele ser el «carácter» más común en texto en lenguaje natural (~20 %).
¿El conteo distingue mayúsculas y minúsculas?
Por defecto, sí: 'A' y 'a' van separadas. Activa «ignorar mayúsculas» para fundirlas, lo cual es habitual en análisis de lenguaje natural. Para inspección de código o hashes, distinguirlas es importante.
¿Funciona con chino, japonés y coreano?
Sí. Cada carácter CJK se cuenta individualmente. La tabla de frecuencias de un párrafo en chino mostrará de forma natural cientos de caracteres distintos, ya que el chino no comparte un alfabeto. La herramienta gestiona Unicode correctamente mediante conteo por clústeres de grafemas.
¿Puedo ver la frecuencia en porcentaje?
Sí, la página normalmente muestra el conteo y el porcentaje del total. Es útil para comparar distribuciones de letras con distribuciones de referencia conocidas al romper cifrados de sustitución simple.
¿Por qué los porcentajes no suman 100?
Por redondeo. Cada celda se redondea a un número fijo de decimales; la suma de los porcentajes redondeados puede desviarse del 100 % en unas décimas. Suma los conteos brutos para obtener el total exacto.
¿Se sube mi texto a algún servidor?
No. El análisis de frecuencias se ejecuta en tu navegador. El texto pegado no se transmite.