ToolActToolAct

Analisador de Frequência de Caracteres

Conte a frequência de cada caractere no seu texto

Texto de entrada

Opções

Total de caracteres
0
Caracteres únicos
0

排序

Opções

频率分布
Sem dados. Insira texto.

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

  1. Digite ou cole seu texto na área de entrada
  2. O sistema conta automaticamente a ocorrência e a frequência de cada caractere
  3. Use as opções de ordenação para organizar os resultados por caractere ou contagem
  4. 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

Perfilhar logs confusos, saídas de OCR e listas de palavras-chaveCole logs copiados, saídas de OCR, listas de palavras-chave ou strings codificadas e veja caracteres totais, caracteres únicos, contagens, porcentagens e barras visuais ordenadas por frequência. Ordene por contagem para identificar símbolos dominantes e por caractere para varrer o alfabeto em ordem. Esse tipo de instantâneo de distribuição é o primeiro passo antes de decidir se deve limpar, classificar ou descartar a entrada.
Expor espaços em branco invisíveis e problemas de maiúsculasAlterne diferenciação de maiúsculas, ignorar espaços e ignorar quebras de linha para verificar se duplicatas, falhas de parser ou problemas de layout são causados por separadores invisíveis ou diferenças de maiúsculas/minúsculas. Comparar um par contado como distinto contra uma execução contado como igual revela quais caracteres estão dobrando silenciosamente o tamanho do texto. Um único espaço sem quebra em milhares de linhas aparecerá como uma porcentagem pequena mas real na tabela.
Preparar evidências para regras de limpeza e validadoresOrdene por caractere ou contagem antes de escrever regras de substituição, lógica de validação, material de aprendizado de idiomas, verificações de quebra-cabeça ou anotações de limpeza de corpus que dependem da distribuição exata de caracteres. A tabela de frequência dá às discussões de limpeza uma base mensurável em vez de depender apenas de inspeção visual. Compartilhe a tabela com revisores para que as regras e os dados que elas visam permaneçam alinhados.
Detectar mojibake, aspas inteligentes e marcadores BOM espúriosExecute a análise em strings suspeitas e procure por agrupamentos incomuns de caracteres de substituição, marcas combinatórias ou bytes não imprimíveis que frequentemente sinalizam codificação errada, substituição de aspas inteligentes ou marcadores BOM espúrios em texto copiado. Um pico súbito em U+FFFD ou um único caractere com frequência estranha em uma amostra curta geralmente significa uma incompatibilidade de charset a montante.
Distinguir code points, surrogate pairs e emojis ZWJAlém das contagens brutas, o analisador expõe a diferença entre code points e clusters de grafemas: um emoji de bandeira como a renderizado como vários code points unidos por um ZWJ, e um símbolo matemático pode ser um único code point ou um surrogate pair. Trate os totais como totais de code points para que sequências ZWJ e surrogate pairs sejam visíveis na tabela em vez de colapsar no texto ao redor.

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.