Ferramentas
Guias

Analisador de frequência de palavras

Texto

Conte a frequência de palavras e n-gramas de caracteres — CJK via Intl.Segmenter, palavras latinas por letras Unicode ou espaços — com tabela Top-N, parcela e exportação em CSV.

100% no cliente Sem backend

URLs remotas não são buscadas; cole seu JSON diretamente.

Entrada
Saída
Digite texto para analisar a frequência de palavras.
Nesta página

O que é um analisador de frequência de palavras?#

Um analisador de frequência de palavras lê um corpo de texto e conta quantas vezes cada token aparece, depois ordena-os. É a ferramenta por trás de verificações de densidade de palavras-chave para SEO, descoberta de stop-words para índices de pesquisa, estimativas de tamanho de vocabulário para aprendizagem de línguas e o painel “palavras mais comuns” em qualquer editor de texto sério. Contar palavras à mão sai errado; no momento em que maiúsculas, pontuação e segmentação CJK entram no quadro, a intuição falha.

O difícil é decidir o que conta como token. Esta ferramenta oferece quatro modos de tokenização, porque a resposta certa depende do texto:

  • Dividir por espaços — divide em qualquer espaço. Agnóstico a idioma; trata Hello, e hello como tokens diferentes por causa da vírgula e da maiúscula.
  • Palavras (letras) — sequências máximas de letras Unicode (\p{L}+). Descarta dígitos e pontuação, pelo que Hello, passa a Hello. O padrão certo para prosa latina.
  • CJK (Intl.Segmenter) — usa o Intl.Segmenter do navegador à granularidade de palavra para segmentação linguística adequada de texto chinês/japonês (我爱北京 divide nas verdadeiras fronteiras de palavras, não por caráter). Quando o navegador não tem o segmentador recorre à contagem por caráter Han e avisa-o.
  • N-grama de caracteres — n-gramas de carateres de tamanho 2–5 sobre o fluxo colapsado por espaços, para análise de padrões repetidos e aglomerados de erros tipográficos.

Toda a contagem corre localmente; para entradas acima de um megabyte passa para uma worker em segundo plano para que a página se mantenha responsiva.

Como usar#

  1. Escolha o modo na barra de ferramentas: Dividir por espaços, Palavras (letras), CJK ou N-grama de caracteres.
  2. Defina Top-N (padrão 20, máximo 1000). Só esse número de linhas ordenadas é mostrado, mas os totais por baixo da tabela refletem sempre todos os tokens.
  3. Se escolheu N-grama, aparece um seletor de tamanho (2, 3, 4 ou 5) — escolha o comprimento do grama.
  4. Marque ou desmarque Sem distinção de maiúsculas (ligado por padrão). Quando ligado, The e the fundem-se numa contagem.
  5. Cole o seu texto no painel esquerdo, ou clique em Exemplo para uma passagem interna.
  6. Leia o painel direito: um resumo (total de tokens, tokens distintos) e uma tabela ordenada de token / contagem / parcela. Use Copiar para a tabela ou Baixar CSV para um arquivo token,count,share que pode abrir em qualquer folha de cálculo.

Se o modo CJK teve de recorrer porque o seu navegador não tem Intl.Segmenter, aparece uma pequena nota por baixo da tabela para que se saiba que a segmentação é por caráter em vez de linguística.

Principais recursos#

  • Quatro modos de tokenização. Dividir por espaços para contagens em bruto, Palavras (letras) para contagens limpas de palavras, CJK para segmentação adequada de chinês/japonês, N-grama para descoberta de padrões — em vez de um modo que erra para três em cada quatro textos.
  • Segmentação CJK real. Usa Intl.Segmenter com granularity: "word", o segmentador linguístico embutido no navegador, pelo que 我爱北京天安门 é dividido em fronteiras de palavras, não cortado caráter a caráter.
  • Fallback honesto. Quando o segmentador não está disponível, a ferramenta degrada para contagem por caráter Han e diz-lhe que o fez, em vez de produzir silenciosamente números diferentes.
  • Parcela, não apenas contagem. Cada linha mostra a sua percentagem de todos os tokens, calculada sobre o texto completo — pelo que mesmo uma fatia Top-20 de um documento de 10 000 palavras reporta percentagens com significado.
  • Exportação CSV. Um clique descarrega um arquivo token,count,share, pronto para uma folha de cálculo ou um gráfico.
  • Ordenação determinística. Empates são desfeitos alfabeticamente (token ascendente), pelo que reexecutar sobre entrada idêntica produz saída idêntica entre navegadores e motores.
  • Worker para entradas pesadas. Entradas acima de ~1 MB passam para uma worker em segundo plano, pelo que a thread principal e o resto da página se mantêm responsivos.
  • Local e seguro. Os tokens são renderizados apenas com textContent — texto controlado pelo usuário nunca consegue sair de uma célula de tabela.

Exemplo detalhado#

Cole esta linha curta na entrada, com modo = Dividir por espaços e Sem distinção de maiúsculas ligado:

the quick brown fox the fox

O resumo reporta 6 tokens totais e 4 distintos. A tabela ordenada é:

TokenContagemParcela
fox233,33%
the233,33%
brown116,67%
quick116,67%

Duais coisas a notar. Primeiro, fox fica à frente de the apesar da mesma contagem, porque os empates se desempatam alfabeticamente. Segundo, as parcelas somam 100% entre os quatro tokens — as percentagens são calculadas sobre o total completo de tokens, não apenas sobre as linhas mostradas, pelo que se mantêm com significado mesmo quando o Top-N esconde a cauda longa.

Agora mude o modo para N-grama de caracteres com tamanho 2 sobre o mesmo texto (espaços colapsados): o analisador produz bigramas como th, he, e , q … deixando ver quais os pares de letras que se repetem, que é como se caçariam prefixos duplicados ou um teclado encravado.

Perguntas frequentes#

Que modo devo usar para texto inglês normal?#

Palavras (letras) é o padrão certo para prosa latina: retira pontuação e dígitos, pelo que word, word. e word contam todos como o mesmo token, e obtém-se uma contagem limpa de vocabulário. Use Dividir por espaços apenas quando a própria pontuação é significativa (por exemplo, contar campos brutos separados por espaços num registro).

Como é que o modo CJK divide efetivamente o chinês?#

Chama o Intl.Segmenter do navegador com granularity: "word", que é um verdadeiro segmentador linguístico que sabe onde as palavras chinesas começam e acabam. Por isso 我爱北京天安门 divide-se em palavras reais em vez de cinco carateres separados. Se o seu navegador não suporta Intl.Segmenter, a ferramenta recorre à contagem por caráter e mostra uma nota — os números ainda são usáveis para comparação de densidade, apenas menos precisos linguisticamente.

Para que serve o modo n-grama?#

N-gramas revelam substrings que se repetem. Uma passagem de 2-gramas sobre um texto longo mostra quais os pares de letras ou carateres que dominam; uma passagem de 3 ou 4-gramas revela prefixos repetidos, morfemas comuns ou aglomerados de erros tipográficos. É a técnica padrão por trás de auditorias de keyword-stuffing, análise de cifras e ordenação de autocomplete.

Porque é que as minhas percentagens se baseiam em todos os tokens, não apenas no Top-N mostrado?#

Porque uma percentagem só tem significado face ao total real. Se pede as 10 palavras mais frequentes num ensaio de 5 000 palavras, a parcela de cada palavra deve refletir a sua fatia do ensaio todo, não a sua fatia das 10 palavras mostradas. Calcular a razão sobre o total completo de tokens mantém os números honestos mesmo quando a tabela está truncada.

O meu texto é enviado para algum lado?#

Não. Tokenização, contagem e geração de CSV tudo corre no seu navegador. Entradas grandes passam para uma thread worker em segundo plano, mas essa thread ainda é parte desta página — nada é enviado para um servidor.