ToolActToolAct

Analizador de Frecuencia de Caracteres

Cuenta la frecuencia de cada carácter en tu texto

Texto de entrada

Opciones

Total de caracteres
0
Caracteres únicos
0

排序

Opciones

频率分布
Sin datos. Ingresa texto.

¿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

  1. Introduce o pega tu texto en el área de entrada
  2. El sistema cuenta automáticamente las apariciones y la frecuencia de cada carácter
  3. Usa las opciones de ordenación para organizar los resultados por carácter o por cantidad
  4. 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

Perfilar logs, salida de OCR y listas de palabras clavePega logs copiados, salida de OCR, listas de palabras clave o cadenas codificadas y observa caracteres totales, caracteres únicos, recuentos, porcentajes y barras visuales ordenados por frecuencia. Ordena por cantidad para detectar símbolos dominantes y ordena por carácter para recorrer el alfabeto. Esta instantánea de distribución es el paso previo antes de decidir si limpiar, clasificar o descartar la entrada.
Descubrir espacios en blanco invisibles y problemas de mayúsculasAlterna la distinción de mayúsculas, ignorar espacios e ignorar saltos de línea para comprobar si los duplicados, fallos de analizador o problemas de maquetación están causados por separadores invisibles o diferencias de mayúsculas y minúsculas. Comparar un par contado como distinto frente a un tramo contado como igual revela qué caracteres están duplicando silenciosamente el tamaño del texto. Un solo espacio sin ruptura en miles de filas aparecerá como un porcentaje pequeño pero real en la tabla.
Preparar evidencia para reglas de limpieza y validadoresOrdena por carácter o cantidad antes de escribir reglas de reemplazo, lógica de validación, material de aprendizaje de idiomas, comprobaciones de acertijos o notas de limpieza de corpus que dependan de la distribución exacta de caracteres. La tabla de frecuencias ofrece a las discusiones de limpieza una base medible en lugar de depender solo de la inspección visual. Comparte la tabla con los revisores para que las reglas y los datos a los que se aplican se mantengan alineados.
Detectar mojibake, comillas tipográficas y marcadores BOM sueltosEjecuta el análisis sobre cadenas sospechosas y busca agrupaciones inusuales de caracteres de reemplazo, marcas combinantes o bytes no imprimibles que suelen indicar codificación errónea, sustitución de comillas tipográficas o marcadores BOM sueltos en texto copiado. Un pico repentino de U+FFFD o un solo carácter con frecuencia extraña en una muestra corta suele significar un desajuste de juego de caracteres aguas arriba.
Distinguir puntos de código, pares sustitutos y emoji ZWJMás allá de los recuentos brutos, el analizador expone la diferencia entre puntos de código y clústeres de grafemas: un emoji de bandera como 🏳️‍🌈 se renderiza como varios puntos de código unidos por un ZWJ, y un símbolo matemático puede ser un solo punto de código o un par sustituto. Trata los totales como totales de puntos de código para que las secuencias ZWJ y los pares sustitutos sean visibles en la tabla en lugar de colapsarse en el texto circundante.

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.