Listar palavras únicas
Uma frase de 13 palavras como «The quick brown fox jumps over the lazy dog. The fox is quick!» deixa 9 palavras diferentes, na ordem em que aparecem pela primeira vez e sem repetições para limpar à mão. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Listar palavras únicas é uma utilidade de texto pequena com uma promessa de produto clara: pegar texto não vazio, dividir em palavras, remover duplicatas e devolver os tokens restantes na ordem em que apareceram pela primeira vez. Redatores usam para auditar vocabulário, professores para montar bancos de palavras e pipelines para construir conjuntos estáveis de testes sem reimplementar tokenização em cada linguagem. Esta capacidade oferece modo opcional sem distinção de maiúsculas para que Hello e hello contem como uma entrada, preservando a primeira forma superficial que você digitou.
O que palavras únicas significam e como a ordem de aparição é preservada
Uma lista de palavras únicas responde a uma intenção de busca que as pessoas digitam todos os dias: listar palavras únicas de um texto, extrair lista de palavras sem duplicatas ou obter vocabulário em ordem de leitura. Esta capacidade define uma palavra como uma sequência contígua de letras ou dígitos Unicode, opcionalmente unida por apóstrofo ou hífen interno para que contrações e compostos hifenizados permaneçam 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 é mantido só na primeira vez que sua chave de unicidade é vista; repetições posteriores são descartadas. Quando o modo sem maiúsculas está ativo, a chave de unicidade é a forma em minúsculas, mas a lista guarda a primeira grafia superficial para que uma primeira menção em title case continue legível nas UIs. Quando o modo está desligado, Hello e hello são duas entradas separadas se ambas aparecerem.
A ordem é sempre de primeira aparição, nunca alfabética, porque tabelas de frequência e dumps ordenados são outra intenção de produto. Prefira esta ferramenta de listar-palavras-únicas quando quiser um instantâneo de vocabulário ordenado e estável. 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
Bancos de vocabulário e flashcards
Professores e alunos colam um parágrafo e obtêm uma lista ordenada limpa de palavras para flashcards, sem limpeza manual de duplicatas.
Auditorias de vocabulário em rascunhos
Redatores verificam quais palavras únicas aparecem em um rascunho e se variantes de maiúsculas foram misturadas por acidente entre títulos e corpo.
Perguntas frequentes
Como listo palavras únicas de um texto?
O array words da resposta lista cada palavra única na ordem de primeira aparição, com count igual ao comprimento do array.
A ferramenta de listar palavras únicas é grátis?
A ferramenta do navegador roda grátis no seu dispositivo.
Ela remove stopwords ou faz stemming?
Não. Apenas tokeniza e remove duplicatas exatas (ou com case fold) preservando a ordem de primeira aparição. Ranking, stemming e listas de stopwords estão fora do escopo.
Olá e olá contam como a mesma palavra?
Sim, por padrão. Ao detectar repetições, maiúsculas e minúsculas são ignoradas, mas a lista mantém a forma que você escreveu primeiro. Se desativar essa opção, Olá e olá aparecem como duas entradas diferentes.
Por que a lista não sai em ordem alfabética?
Porque ela segue o seu texto: cada palavra fica onde foi usada pela primeira vez e nunca é ordenada. Assim a ordem de leitura se mantém para cartões de estudo e revisões; ordenar ou classificar por frequência é outra tarefa.
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/extract-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/extract-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/extract-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/extract-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/extract-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.extract_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.
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 falha com entrada inválida para que chamadores nunca armazenem payloads de comprimento zero por acidente.
Contrato de entrada, rejeição de vazio e leitura dos campos de resposta
Texto só de espaços é permitido quando não está vazio: pode render zero tokens e um array words vazio, que é uma forma de sucesso válida. 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 analisar. Aliases input, value, s, content e body são aceitos quando clientes antigos ou geradores de formulário usam esses nomes. Text ausente, valor 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. O opcional case_insensitive tem padrão true; aliases ignore_case, ci e casefold são aceitos. Em sucesso a resposta inclui words como a lista única ordenada, count e unique_count como a mesma cardinalidade para conveniência do SDK, total_tokens como quantos tokens de palavra foram vistos antes da unicidade, case_insensitive ecoando o modo usado, original ecoando a entrada exata para tabelas de UI, e method sempre extract_unique_words para que o código a jusante possa ramificar sem cheirar formas. Use words sozinho quando um baralho de flashcards só precisa do conjunto de vocabulário; use total_tokens ao lado de count quando quiser uma noção rápida de quanta repetição a fonte tinha. 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 de listar palavras únicas para bancos de palavras de dever de casa, auditorias de estilo e checagens rápidas de vocabulário sem escrever um one-liner de split-e-Set em cada linguagem. Um fluxo típico cola um parágrafo, lista palavras únicas com modo sem maiúsculas e compara com uma lista de nível de leitura. 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 exemplo de sucesso com palavras repetidas e 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. Combine este endpoint com ferramentas de densidade de palavras-chave ou diff quando o próximo passo for ranquear ou comparar dois rascunhos, mas mantenha listar palavras únicas como landing própria para não misturar a intenção de extrair-lista-de-palavras com extração de palavras-chave SEO ou estatísticas de PDF.
Casos de integração
Fixtures de CI para pipelines de tokens
Scripts de build fixam saídas golden de palavras únicas para que regressões de tokenização e case-fold falhem imediatamente na integração contínua.
Perguntas técnicas
Hello e hello são tratados como a mesma palavra?
Por padrão sim: case_insensitive é true, compartilham uma entrada e a primeira forma superficial é mantida. Defina case_insensitive como false para listar tokens distintos por maiúsculas separadamente.
O que acontece se text 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.