Analisador de Frequência de Caracteres
Conte a frequência de cada caractere no seu texto
Opções
排序
O que é análise de frequência de caracteres?
A análise de frequência de caracteres conta quantas vezes cada caractere aparece em um texto e qual participação ele representa. Ela pode considerar letras, números, pontuação, espaços, caracteres CJK, símbolos e caracteres de controle pouco visíveis, dependendo da entrada. Isso é útil em exercícios de criptografia, análise simples de substituição, extração de características textuais, limpeza de dados, verificação de codificação, pesquisa de compressão e controle de qualidade de conteúdo importado. Frequências estranhas podem revelar caracteres ocultos, texto mal decodificado, separadores repetidos, idiomas inesperados ou resíduos de copiar e colar. A ferramenta não explica a causa sozinha, mas torna a distribuição mensurável.
Como Usar
Como usar
- Digite ou cole seu texto na área de entrada
- O sistema conta automaticamente a ocorrência e a frequência de cada caractere
- Use as opções de ordenação para organizar os resultados por caractere ou contagem
- Ajuste as opções (diferenciar maiúsculas de minúsculas, espaços, quebras de linha)
Escopo da Contagem
- Decida se espaços, pontuação, maiúsculas/minúsculas e quebras de linha devem ser contados antes de comparar textos.
- Em textos multilíngues, lembre-se de que emoji, caracteres compostos e caracteres CJK podem não se comportar como letras latinas simples.
Casos de uso
Princípio técnico
A análise de frequência de caracteres conta as ocorrências de cada caractere em um texto. A implementação usa uma tabela hash (tipicamente um Map em JavaScript): 1) percorrer o texto caractere por caractere, 2) para cada caractere, incrementar a contagem no mapa, 3) ordenar as entradas por contagem decrescente, 4) renderizar o histograma (10-20 caracteres principais, com os restantes em um bucket de cauda). O algoritmo é O(N) no comprimento do texto, onde N é o número de caracteres, e o custo dominante é a busca e incremento no mapa (essencialmente gratuito no V8 e SpiderMonkey para o caso comum). Uma sutileza útil: o que conta como um caractere? Em JavaScript, .length retorna o número de code units UTF-16, não code points Unicode. Um caractere fora do Basic Multilingual Plane (emoji, ideogramas CJK raros) é codificado como um surrogate pair (dois code units), e uma contagem ingênua por code unit vai contar demais ao tratar cada metade do surrogate como um caractere separado. A página usa Array.from(text) ou Intl.Segmenter para iterar code points (ou clusters de grafemas), que é a definição correta de caractere para a maioria dos casos de uso. Uma aplicação útil: a análise de frequência é a técnica clássica para quebrar cifras de substituição (Caesar, Vigenère, substituição simples). A distribuição de frequência de letras em inglês é bem conhecida (E, T, A, O, I, N, S, H, R são as mais comuns, nessa ordem aproximada), e uma cifra de substituição preserva a distribuição de frequência, então a letra mais comum no texto cifrado provavelmente corresponde a E, a segunda a T, e assim por diante. A página é uma ferramenta didática, não uma ferramenta de criptoanálise, mas a técnica é a mesma. Uma ressalva sobre Unicode: para idiomas CJK, a distribuição de frequência de caracteres depende do corpus (romance moderno, poesia clássica, texto técnico) e do nível de análise (caractere, palavra, bigrama, trigrama). Uma análise de frequência de um romance chinês moderno dá uma distribuição; uma análise de frequência dos Analectos dá outra diferente. A página é agnóstica ao corpus, então o usuário pode executá-la em qualquer texto.
- Tabela hash (Map em JS): percorrer texto, incrementar contagem, ordenar por contagem decrescente, renderizar histograma; O(N) no comprimento do texto com custo muito baixo por caractere.
- Surrogate pairs: um caractere fora do BMP (emoji, CJK raro) são dois code units UTF-16; contagem ingênua por code unit conta demais; usar Array.from ou Intl.Segmenter.
- Criptoanálise de cifras de substituição: frequência de letras em inglês E, T, A, O, I, N, S, H, R (mais comuns nessa ordem); uma cifra de substituição preserva a distribuição.
- Frequência CJK: depende do corpus (romance moderno, poesia clássica, texto técnico) e do nível de análise (caractere, palavra, bigrama); a página é agnóstica ao corpus.
- Top-N e cauda: a página renderiza os 10-20 caracteres principais por padrão, com um bucket de cauda para os restantes; útil para identificar padrões em textos densos.
- Diferenciação de maiúsculas: a página expõe um alternador sensível/insensível a maiúsculas; inglês é tipicamente insensível (E e e são a mesma letra, apenas formas diferentes), CJK é sempre insensível (não conceito de maiúsculas).
- Desempenho: O(N) para contagem, O(K log K) para ordenar K caracteres distintos; a página processa textos de 1 milhão de caracteres bem menos de um segundo, que é o padrão de produção.
Exemplos
Análise de texto em inglês
Entrada "hello world" → Resultado: 'l' aparece 3 vezes (27,3%), 'o' aparece 2 vezes (18,2%)Análise de texto em chinês
Entrada "我爱中国我爱北京" → Resultado: '我' e '爱' aparecem 2 vezes cada (25%)Comparação de distribuição de frequência
Texto em inglês: 'e' mais alto em ~12,7%; chinês: '的' mais alto em ~4%Perguntas frequentes
O que o analisador conta?
Cada caractere único e quantas vezes ele aparece, ordenado por frequência. Útil para análise de cifras (texto em inglês tem frequências de letras previsíveis começando por E, T, A, O), perfilamento de texto e para encontrar caracteres inesperados em um documento copiado e colado.
Os espaços em branco são contados?
Sim, por padrão — espaços, tabulações e quebras de linha aparecem em linhas próprias. Ative 'ignorar espaços em branco' se você quiser apenas caracteres imprimíveis. O espaço em branco costuma ser o 'caractere' mais comum em texto natural (~20%).
A contagem diferencia maiúsculas e minúsculas?
Por padrão, sim — 'A' e 'a' são contados separadamente. Ative 'ignorar caixa' para juntá-los, o que é comum em análise de linguagem natural. Para inspeção de código ou de hash, a diferença entre maiúsculas e minúsculas importa.
Funciona para chinês, japonês e coreano?
Sim. Cada caractere CJK é contado individualmente. A tabela de frequência de um parágrafo em chinês naturalmente mostra centenas de caracteres distintos, já que o chinês não tem alfabeto compartilhado. A ferramenta lida com Unicode corretamente via contagem por grafema.
Posso ver a frequência em porcentagem?
Sim, a página geralmente mostra a contagem e a porcentagem do total. Útil para comparar distribuições de letras com distribuições de referência conhecidas ao quebrar cifras de substituição simples.
Por que a porcentagem não soma 100?
Arredondamento. Cada célula é arredondada para um número fixo de decimais; a soma das porcentagens arredondadas pode se desviar de 100% por alguns décimos. Some as contagens brutas para um total exato.
Meu texto é enviado para algum servidor?
Não. A análise de frequência é feita no seu navegador. O texto colado não é transmitido.