Ferramenta de Análise e Visualização de Frequência de Caracteres
Ferramenta gratuita de análise de frequência de caracteres. Visualize padrões de distribuição de letras instantaneamente. Perfeita para criptografia, compressão de dados, detecção de codificação de texto e análise linguística.
Análise de Frequência de Caracteres
Documentação
O que é análise de frequência de caracteres?
A análise de frequência de caracteres é o processo de contar quantas vezes cada caractere aparece em um trecho de texto. Ela abrange letras, dígitos, espaços, sinais de pontuação e qualquer outro símbolo presente no texto. O resultado é uma tabela ou um gráfico simples: um caractere, uma contagem.
Esta ferramenta recebe qualquer texto colado ou digitado nela e conta todos os caracteres automaticamente. Ela lista cada caractere único ao lado de sua contagem e desenha um gráfico de barras, de modo que os caracteres mais comuns se destacam à primeira vista.
A técnica é antiga. O estudioso árabe Al-Kindi a descreveu por volta do ano 850 d.C. como uma forma de quebrar cifras simples. Hoje ela também é usada em compressão de dados, em verificações de ortografia e de codificação e na identificação básica de idiomas.
Como calcular a frequência de caracteres
Calcular a frequência de caracteres manualmente envolve três etapas:
- Percorra o texto um caractere por vez, incluindo espaços e sinais de pontuação.
- Mantenha uma contagem acumulada para cada caractere distinto. Um caractere novo começa em 1; um caractere repetido acrescenta 1 à contagem existente.
- Liste cada caractere com sua contagem final.
Esta ferramenta faz a mesma coisa automaticamente, usando uma estrutura de dados chamada tabela hash (uma tabela de consulta que armazena um valor associado a uma chave). Para cada caractere do texto, ela verifica se já existe uma entrada para esse caractere na tabela. Se tiver, a ferramenta acrescenta 1 à contagem armazenada. Caso contrário, cria uma nova entrada com uma contagem de 1. Esse método percorre cada caractere exatamente uma vez, portanto o tempo necessário cresce em proporção direta ao comprimento do texto, e não mais rapidamente.
Depois de contar, a ferramenta lista os resultados em ordem alfabética por caractere. Atualmente, ela não oferece uma opção para ordenar pela contagem.
Frequência de caracteres como porcentagem
As contagens, por si só, podem ser difíceis de comparar entre textos de comprimentos diferentes. Por isso, a frequência costuma ser expressa como uma porcentagem do número total de caracteres:
Aqui, é o número de vezes que o caractere aparece, e é o número total de caracteres do texto. Esta ferramenta informa as contagens brutas e o número total de caracteres, não uma coluna de porcentagens, mas a porcentagem de qualquer caractere pode ser calculada dividindo sua contagem pelo total e multiplicando por 100.
Exemplo resolvido
Considere a palavra "mississippi", que tem 11 caracteres e nenhum espaço ou sinal de pontuação.
A contagem de cada letra resulta em:
| Caractere | Contagem | Porcentagem |
|---|---|---|
| i | 4 | 36,4% |
| m | 1 | 9,1% |
| p | 2 | 18,2% |
| s | 4 | 36,4% |
A tabela está ordenada alfabeticamente (i, m, p, s), de acordo com a forma como esta ferramenta organiza seus resultados. As contagens somam 11, o comprimento total da palavra. Para obter a coluna de porcentagens, cada contagem foi dividida por 11 e multiplicada por 100; por exemplo, 4 ÷ 11 × 100 ≈ 36,4%.
Como usar esta ferramenta
Digite ou cole o texto na caixa de entrada. A ferramenta o analisa imediatamente, sem exigir o pressionamento de nenhum botão. Conforme o texto muda, a lista de caracteres e o gráfico de barras são atualizados.
A seção de resultados mostra:
- Um gráfico de barras com uma barra para cada caractere. Barras mais altas significam que o caractere aparece com mais frequência.
- A contagem total de caracteres do texto, incluindo espaços e sinais de pontuação.
- Uma lista de cada caractere e de sua contagem exata.
O botão "Copiar" formata os resultados como texto simples, com um caractere e sua contagem por linha, pronto para ser colado em uma planilha ou documento. Neste resultado, os espaços são identificados como "espaço", para não serem confundidos com linhas em branco.
Em textos comuns em inglês, E, T, A, O e I são as cinco letras mais frequentes. Um texto em que letras raras, como Q ou Z, aparecem com frequência incomum pode estar codificado, criptografado ou escrito em outro idioma.
Usos da análise de frequência de caracteres
Quebra de cifras de substituição
Uma cifra de substituição troca cada letra de uma mensagem por outra letra ou símbolo, usando a mesma substituição do começo ao fim. Como a substituição é consistente, o padrão de frequência do idioma original sobrevive no texto cifrado. Em inglês, a letra E representa cerca de 12% de todas as letras. Se um símbolo de um texto cifrado aparece mais ou menos nessa proporção, ele é um forte candidato a representar o E. Esse foi o principal método usado por séculos para quebrar cifras de substituição, até que a criptografia moderna o tornou obsoleto, exceto para quebra-cabeças e documentos históricos.
Compressão de dados
O formato de compressão DEFLATE, usado pelo utilitário gzip, combina o método LZ77 com a codificação de Huffman. Um código de Huffman é construído a partir das frequências dos símbolos. Os caracteres que ocorrem com frequência recebem códigos binários curtos, e os raros recebem códigos mais longos. Como os caracteres comuns ocupam menos espaço por ocorrência, o arquivo inteiro diminui, sem perder nenhuma informação.
Identificação de problemas de codificação
Textos que exibem caracteres estranhos e inesperados (como "é" no lugar de "é") geralmente indicam uma incompatibilidade entre a codificação de caracteres usada para salvar um arquivo e a usada para lê-lo. Um gráfico de frequência que mostre um pico incomum de símbolos estranhos, em vez de letras comuns, pode ajudar a confirmar um problema de codificação.
Identificação de idiomas
Idiomas diferentes têm distribuições de caracteres típicas diferentes. O inglês favorece E, T e A. O alemão também usa letras como ä, ö e ü, que não aparecem de forma alguma no inglês. Comparar as frequências de caracteres de um texto com perfis de idiomas conhecidos é uma forma rápida e aproximada de adivinhar o idioma.
Estilo de escrita e autoria
Como os escritores tendem a ter hábitos consistentes no uso de pontuação e letras, padrões no nível dos caracteres podem servir como uma pequena evidência na identificação da autoria. Sozinha, a frequência de caracteres raramente prova quem escreveu algo; ela funciona melhor combinada com a escolha de palavras, o comprimento das frases e outros marcadores estilísticos.
Outros métodos de análise de texto
A frequência de caracteres não é a única forma de analisar um texto.
- Frequência de palavras conta palavras inteiras em vez de caracteres. Ela se aproxima mais do significado de um texto e é comum em pesquisas de palavras-chave e análise de tópicos.
- Análise de n-gramas examina sequências curtas de caracteres ou palavras, como pares ou trios. Teclados preditivos e recursos de preenchimento automático usam esse método para tentar adivinhar a próxima letra ou palavra.
- Análise de sentimentos avalia se um texto parece positivo, negativo ou neutro, usando métodos muito mais abrangentes do que uma simples contagem.
- Análise de legibilidade, como a pontuação de Flesch-Kincaid, estima a dificuldade de leitura de um texto com base no comprimento das frases e das palavras.
Perguntas frequentes
O que a análise de frequência de caracteres revela?
Ela mostra com que frequência cada caractere aparece em um texto. A leitura do resultado pode revelar padrões úteis para criptografia, compressão, identificação de erros de codificação ou estimativa do idioma de um texto.
Como esta ferramenta ordena os resultados?
Ela ordena os caracteres em ordem alfabética. Não há opção para ordenar por contagem; os caracteres mais e menos comuns precisam ser encontrados examinando as contagens ou lendo o gráfico de barras.
A ferramenta mostra porcentagens?
Não. Ela informa a contagem bruta de cada caractere e a contagem total de caracteres. Uma porcentagem pode ser calculada dividindo a contagem de um caractere pelo total e multiplicando por 100.
A análise de frequência de caracteres consegue quebrar a criptografia moderna?
Não. Ela só funciona contra cifras de substituição simples, nas quais um caractere sempre representa o mesmo caractere substituto. A criptografia moderna, como o AES, produz uma saída sem esse padrão consistente, portanto as contagens de frequência não revelam nada sobre a mensagem original.
A ferramenta conta espaços e sinais de pontuação?
Sim. Todos os caracteres da entrada são contados, incluindo espaços, tabulações, quebras de linha e sinais de pontuação. Os espaços costumam ser o caractere isolado mais comum em textos comuns.
Quanto texto é necessário para obter padrões confiáveis?
Não há um mínimo fixo. Um texto muito curto pode apresentar frequências que diferem bastante do padrão esperado apenas por acaso. Amostras mais longas tendem a corresponder mais de perto aos padrões conhecidos dos idiomas.
Referências
- Naskręcki, B., Adam Mickiewicz University. Elements of Cryptanalysis, Chapter 3: Frequency Analysis. Análise de frequência — tratado de Al-Kindi sobre análise de frequência, escrito por volta do ano 850 d.C.
- Cornell University, Department of Mathematics. English Letter Frequency. Tabela de frequência das letras do inglês — E com 12,02%, seguido de T, A, O e I, em uma amostra de 40.000 palavras.
- IETF. RFC 1951: DEFLATE Compressed Data Format Specification version 1.3. RFC 1951 — o DEFLATE combina LZ77 e a codificação de Huffman; os códigos de Huffman são construídos a partir das frequências dos símbolos.