Contar palavras únicas
Um texto de 13 palavras sobre uma raposa e um cachorro tem só 9 palavras únicas, porque The e the contam como uma. Você também vê a razão tipo-token e quantas palavras aparecem uma só vez, útil para medir a riqueza do vocabulário. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Contar palavras únicas após unificar maiúsculas responde a uma pergunta diferente de um contador bruto de palavras: não quão longo é o trecho, e sim quão amplo é o vocabulário. Professores, editores, redatores SEO e pesquisadores de legibilidade colam um rascunho e querem o total de tokens distintos para julgar riqueza lexical, repetição e se um texto é denso ou está inflado. Este contador tokeniza letras e dígitos Unicode, converte cada token para minúsculas e informa o tamanho do conjunto resultante junto com o ratio tipo-token e quantas palavras aparecem só uma vez.
O que o total de palavras únicas significa após unificar maiúsculas
Uma contagem de palavras únicas responde a uma intenção de busca que as pessoas digitam todos os dias: contar palavras únicas, tamanho do vocabulário de um texto, quantas palavras distintas após unificar maiúsculas, ou riqueza lexical de um rascunho. Não é a mesma landing de um contador de palavras totais, que informa quantos tokens aparecem incluindo repetições, nem a mesma de uma lista de palavras únicas, que devolve os tokens em si.
A promessa de produto aqui é um número: quão grande é o vocabulário depois que cada token é convertido para minúsculas para que The e the compartilhem um só tipo. Uma palavra é uma sequência contígua de letras ou dígitos Unicode, opcionalmente unida por apóstrofo ou hífen interno, de modo que contrações como don't e compostos como well-known continuem um token. Todo o resto — espaços, vírgulas, pontos, separadores emoji e pontuação — é um limite.
Varrendo da esquerda para a direita, cada token vai para minúsculas e entra num mapa de frequências; a contagem única é o número de chaves distintas. O ratio tipo-token é palavras únicas divididas pelos tokens totais, estatística clássica de riqueza lexical. A contagem hapax é quantos tipos aparecem exatamente uma vez; a contagem repetida é quantos tipos aparecem mais de uma vez.
Prefira esta ferramenta de contar-palavras-únicas-total quando quiser o tamanho do vocabulário para analisar legibilidade. Não use para palavras-chave SEO ranqueadas, stemming, remoção de stopwords ou divisão de frases — essas landings atendem outras consultas.
Casos de uso
Checagens de legibilidade e copy SEO
Editores comparam o tamanho do vocabulário entre rascunhos para que uma landing não fique monótona nem recheada de frases quase duplicadas.
Perguntas frequentes
Hello e hello são tratados como a mesma palavra?
Sim. Cada token é convertido para minúsculas antes da unicidade, então Hello e hello compartilham um tipo. Não há modo sensível a maiúsculas.
O contador de palavras únicas é grátis?
A ferramenta do navegador roda grátis no seu dispositivo.
O que é a razão tipo-token?
É o número de palavras únicas dividido pelo total de palavras. Na frase da raposa são 9 de 13, cerca de 0,692308. Quanto mais perto de 1, menos palavras se repetem.
O que mostra o número de palavras que aparecem uma só vez?
Quantas palavras saem exatamente uma vez, os chamados hápax. Na frase da raposa são 6, como brown, lazy e dog, enquanto the, quick e fox são as 3 que se repetem.
Contrações e palavras com hífen contam como uma só?
Sim. Um apóstrofo ou hífen dentro da palavra a mantém unida, então don't e well-known contam como uma palavra cada. Espaços, vírgulas, pontos e outros sinais separam as palavras.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/str/count-unique-words \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The quick brown fox jumps over the lazy dog. The fox is quick!"}'const res = await fetch("https://api.kit.forhosting.com/str/count-unique-words", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "The quick brown fox jumps over the lazy dog. The fox is quick!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/count-unique-words",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The quick brown fox jumps over the lazy dog. The fox is quick!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/count-unique-words", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"The quick brown fox jumps over the lazy dog. The fox is quick!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The quick brown fox jumps over the lazy dog. The fox is quick!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/count-unique-words", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "The quick brown fox jumps over the lazy dog. The fox is quick!"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.count_unique_words",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_chars | 100000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Entrada vazia é rejeitada com erro de validação claro para que pipelines nunca armazenem payload de comprimento zero por acidente.
Contrato de entrada, rejeição do vazio e leitura dos campos de resposta
Texto só de espaços é permitido quando não está vazio: pode render zero tokens e uma contagem única de zero, forma de sucesso válida para entrada só de pontuação ou de preenchimento. Não há chave de sensibilidade a maiúsculas: unificar maiúsculas é a promessa do produto, então Hello e hello sempre compartilham um tipo. Como o algoritmo é lógica pura de string, testes de integração contínua podem fixar o objeto completo. O texto de origem segue as mesmas regras de retenção de outros itens de parse do KIT. Envie um corpo JSON com o campo de string obrigatório text definido com a amostra não vazia que deseja medir. Aliases input, value, s, content e body são aceitos quando clientes antigos ou geradores de formulário usam esses nomes. Text ausente, valor que não é string ou string de comprimento zero elevam invalid_input com mensagem que nomeia o problema, e essas falhas não são cobradas na API pré-paga. Em sucesso a resposta inclui count, unique_words e unique_count como o mesmo tamanho de vocabulário para conveniência do SDK, total_words como quantos tokens de palavra foram vistos antes da unicidade, type_token_ratio como palavras únicas divididas por palavras totais arredondado a seis casas (zero quando não há tokens), hapax_count como tipos que aparecem exatamente uma vez, repeated_count como tipos que aparecem mais de uma vez, character_count como o comprimento UTF-16 da string original, original ecoando a entrada exata para tabelas de UI, e method sempre count_unique_words para que o código a jusante ramifique sem cheirar formas. Use count sozinho quando um distintivo precisa só do tamanho do vocabulário; use type_token_ratio ao lado de total_words quando quiser uma noção rápida de riqueza lexical versus repetição. Mantenha payloads em tamanhos de documento ordinários adequados a um isolado Worker, não dumps de vários megabytes; este produto é utilidade de texto, não armazém em massa.
Uso da API, preços, fluxos de trabalho e limites práticos
Chame a ferramenta gratuita no navegador para contar palavras únicas em dever de casa, auditorias de estilo, pontuação de legibilidade e revisão de rascunhos, sem escrever um one-liner de split e Set em cada linguagem. Não espere detecção de idioma, lematização ou stemming multilíngue — são problemas distintos com termos SEO distintos. Autores de SDKs podem documentar text como único campo obrigatório, mostrar um exemplo de sucesso com repetições de maiúsculas mistas e um exemplo de erro de string vazia para que integradores vejam ambos os lados do contrato. Use a API pré-paga KIT quando um CMS, pipeline de conteúdo, harness de QA, app de tutoria ou cliente móvel precisar do mesmo contrato sob saldo a US$ 0,002 por item bem-sucedido; falhas de validação nunca consomem saldo após o motor rejeitar a requisição. Um fluxo típico cola um parágrafo, lê unique_words e type_token_ratio e compara com um alvo de nível de leitura ou com um rascunho anterior. Combine este endpoint com uma ferramenta de frequência de palavras ou de densidade de palavras-chave quando o próximo passo for ranquear termos, mas mantenha contar palavras únicas como landing própria para não misturar a intenção de tamanho de vocabulário com listar tokens ou ranquear palavras-chave SEO.
Casos de integração
Riqueza lexical de rascunhos escolares
Professores colam uma redação e leem unique_words mais type_token_ratio para ver se o vocabulário é variado ou está inflado com repetições.
Fixtures de CI para pipelines de tokens
Scripts de build fixam saídas golden de palavras únicas para que regressões de unificação de maiúsculas e apóstrofos falhem de imediato na integração contínua.
Perguntas técnicas
Como contar palavras únicas em um texto?
Envie JSON com text definido como uma string não vazia. Os campos count, unique_words e unique_count da resposta são o tamanho do vocabulário após unificar maiúsculas.
O que acontece se o texto estiver vazio?
A requisição falha com invalid_input. Entrada vazia não é permitida; falhas de validação não são cobradas na API pré-paga.
O que é type_token_ratio?
É o número de palavras únicas dividido pelo total de tokens de palavra, arredondado a seis casas. Valores mais altos significam menos repetição. Vale zero quando o texto não tem tokens de palavra.