Listar palabras únicas
Una frase de 13 palabras como «The quick brown fox jumps over the lazy dog. The fox is quick!» deja 9 palabras distintas, en el orden en que aparecen por primera vez y sin repetidos que limpiar a mano. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Listar palabras únicas es una utilidad de texto pequeña con una promesa de producto clara: tomar texto no vacío, dividirlo en palabras, eliminar duplicados y devolver los tokens restantes en el orden en que aparecieron por primera vez. Los redactores la usan para auditar vocabulario, los profesores para construir bancos de palabras y las pipelines para construir conjuntos estables de pruebas sin reimplementar la tokenización en cada lenguaje. Esta capacidad admite un modo opcional sin distinción de mayúsculas para que Hello y hello cuenten como una sola entrada conservando la primera forma superficial que escribió. La entrada vacía falla con entrada no válida para que los llamadores nunca almacenen cargas de longitud cero por accidente.
Qué significan las palabras únicas y cómo se preserva el orden de aparición
Una lista de palabras únicas responde a una intención de búsqueda que la gente escribe cada día: listar palabras únicas de un texto, extraer la lista de palabras sin duplicados u obtener vocabulario en orden de lectura. Esta capacidad define una palabra como una secuencia contigua de letras o dígitos Unicode, opcionalmente unida por un apóstrofo o guion interno para que contracciones y compuestos con guion sigan siendo un solo token. Todo lo demás —espacios, comas, puntos, separadores emoji y puntuación— es un límite.
Al escanear de izquierda a derecha, cada token se conserva solo la primera vez que se ve su clave de unicidad; las repeticiones posteriores se descartan. Cuando el modo sin mayúsculas está activo, la clave de unicidad es la forma en minúsculas, pero la lista almacena la primera ortografía superficial para que una primera mención con mayúscula de título siga siendo legible en las interfaces. Cuando el modo está desactivado, Hello y hello son dos entradas separadas si ambas aparecen.
El orden es siempre de primera aparición, nunca alfabético, porque las tablas de frecuencia y los volcados ordenados son otra intención de producto. Prefiera esta herramienta de listar-palabras-únicas cuando desee una instantánea de vocabulario ordenada y estable. No la use para palabras clave SEO clasificadas, stemming, eliminación de stopwords o división de oraciones: esas páginas sirven a otras consultas.
Qué puede hacer con ella
Bancos de vocabulario y tarjetas
Profesores y alumnos pegan un párrafo y obtienen una lista ordenada limpia de palabras para tarjetas, sin limpieza manual de duplicados.
Auditorías de vocabulario en borradores
Los redactores comprueban qué palabras únicas aparecen en un borrador y si se mezclaron variantes de mayúsculas entre títulos y cuerpo.
Preguntas frecuentes
¿Cómo listo palabras únicas de un texto?
El array words de la respuesta lista cada palabra única en orden de primera aparición, con count igual a la longitud del array.
¿Es gratuita la herramienta de listar palabras únicas?
La herramienta del navegador se ejecuta gratis en su dispositivo.
¿Elimina stopwords o hace stemming?
No. Solo tokeniza y elimina duplicados exactos (o plegados por mayúsculas) preservando el orden de primera aparición. Clasificación, stemming y listas de stopwords quedan fuera del alcance.
¿Hola y hola cuentan como la misma palabra?
Sí, por defecto. Al detectar repeticiones se ignoran mayúsculas y minúsculas, pero la lista conserva la forma que usted escribió primero. Si desactiva esa opción, Hola y hola aparecen como dos entradas distintas.
¿Por qué la lista no sale en orden alfabético?
Porque sigue su texto: cada palabra queda donde se usó por primera vez y nunca se ordena. Así se mantiene el orden de lectura para tarjetas de estudio o revisiones; ordenar o clasificar por frecuencia es otra tarea.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"text": "The quick brown fox jumps over the lazy dog. The fox is quick!"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.extract_unique_words",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Contrato de entrada, rechazo de vacío y lectura de los campos de respuesta
El texto solo de espacios se permite cuando no está vacío: puede producir cero tokens y un array words vacío, que es una forma de éxito válida. Como el algoritmo es lógica pura de cadenas, las pruebas de integración continua pueden fijar el objeto completo. El texto de origen sigue las mismas reglas de retención que otros elementos de parse de KIT. Envíe un cuerpo JSON con el campo de cadena obligatorio text con la muestra no vacía que desee analizar. Se aceptan alias input, value, s, content y body cuando clientes antiguos o generadores de formularios usan esos nombres. Un text ausente, un valor no cadena o una cadena de longitud cero elevan invalid_input con un mensaje que nombra el problema, y esos fallos no se cobran en la API prepago. El opcional case_insensitive tiene valor predeterminado true; se aceptan alias ignore_case, ci y casefold. En caso de éxito la respuesta incluye words como la lista única ordenada, count y unique_count como la misma cardinalidad por comodidad del SDK, total_tokens como cuántos tokens de palabra se vieron antes de la unicidad, case_insensitive repitiendo el modo usado, original repitiendo la entrada exacta para tablas de interfaz, y method siempre extract_unique_words para que el código posterior pueda ramificar sin oler formas. Use words solo cuando un mazo de tarjetas solo necesite el conjunto de vocabulario; use total_tokens junto a count cuando quiera una idea rápida de cuánta repetición tenía la fuente. Mantenga las cargas en tamaños de documento ordinarios adecuados para un aislado Worker, no volcados de varios megabytes; este producto es una utilidad de texto, no un almacén masivo.
Uso de la API, precios, flujos de trabajo y límites prácticos
Llame a la herramienta gratuita en el navegador de listar palabras únicas para bancos de palabras de deberes, auditorías de estilo y comprobaciones rápidas de vocabulario sin escribir un one-liner de split-y-Set en cada lenguaje. Un flujo típico pega un párrafo, lista palabras únicas con modo sin mayúsculas y compara con una lista de nivel de lectura. No espere detección de idioma, lematización o stemming multilingüe: son problemas distintos con términos SEO distintos. Use la API prepago KIT cuando un CMS, pipeline de contenido, arnés de QA, app de tutoría o cliente móvil necesite el mismo contrato con saldo a $0.002 por elemento correcto; los fallos de validación nunca consumen saldo tras el rechazo del motor. Combine este endpoint con herramientas de densidad de palabras clave o diff cuando el siguiente paso sea clasificar o comparar dos borradores, pero mantenga listar palabras únicas como su propia página para no mezclar la intención de extraer-lista-de-palabras con extracción de palabras clave SEO o estadísticas de PDF. Los autores de SDK pueden documentar text como único campo obligatorio, mostrar un ejemplo de éxito con palabras repetidas y un ejemplo de error de cadena vacía para que los integradores vean ambos lados del contrato.
Casos de integración
Fixtures de CI para pipelines de tokens
Los scripts de build fijan salidas golden de palabras únicas para que las regresiones de tokenización y plegado de mayúsculas fallen de inmediato en integración continua.
Preguntas técnicas
¿Hello y hello se tratan como la misma palabra?
Por defecto sí: case_insensitive es true, comparten una entrada y se conserva la primera forma superficial. Ponga case_insensitive en false para listar tokens distintos por mayúsculas por separado.
¿Qué ocurre si text está vacío?
La solicitud falla con invalid_input. No se permite entrada vacía; los fallos de validación no se cobran en la API prepago.