Contar palabras únicas
Un texto de 13 palabras sobre un zorro y un perro tiene solo 9 palabras únicas, porque The y the cuentan como una. También verá la proporción tipo-token y cuántas palabras aparecen una sola vez, útil para medir la riqueza del vocabulario. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Contar palabras únicas tras pasar a minúsculas responde a una pregunta distinta de un contador bruto de palabras: no cuán largo es el pasaje, sino cuán amplio es su vocabulario. Profesores, editores, redactores SEO e investigadores de legibilidad pegan un borrador y quieren el total de tokens distintos para juzgar la riqueza léxica, la repetición y si un texto es denso o está relleno. Este contador tokeniza letras y dígitos Unicode, convierte cada token a minúsculas e informa el tamaño del conjunto resultante junto con el ratio tipo-token y cuántas palabras aparecen solo una vez. La entrada vacía se rechaza con un error de validación claro para que las canalizaciones nunca almacenen una carga de longitud cero por accidente.
Qué significa el conteo de palabras únicas tras pasar a minúsculas
Un conteo de palabras únicas responde a una intención de búsqueda que la gente escribe cada día: contar palabras únicas, tamaño del vocabulario de un texto, cuántas palabras distintas tras unificar mayúsculas, o riqueza léxica de un borrador. No es la misma página que un contador de palabras totales, que informa cuántos tokens aparecen incluidas las repeticiones, ni la misma que una lista de palabras únicas, que devuelve los tokens mismos.
La promesa de producto aquí es un número: cuán grande es el vocabulario después de pasar cada token a minúsculas para que The y the compartan un solo tipo. Una palabra es una secuencia contigua de letras o dígitos Unicode, unida de forma opcional por un apóstrofo o un guion interno, de modo que contracciones como don't y compuestos como well-known sigan siendo un token. Todo lo demás —espacios, comas, puntos, separadores emoji y puntuación— es un límite.
Al recorrer de izquierda a derecha, cada token se pasa a minúsculas y se registra en un mapa de frecuencias; el conteo único es el número de claves distintas. El ratio tipo-token es palabras únicas divididas entre tokens totales, un estadístico clásico de riqueza léxica. El conteo hapax es cuántos tipos aparecen exactamente una vez; el conteo repetido es cuántos tipos aparecen más de una vez.
Prefiera esta herramienta de contar-palabras-únicas-total cuando desee el tamaño del vocabulario para analizar la legibilidad. No la use para palabras clave SEO clasificadas, stemming, eliminación de stopwords ni división de oraciones: esas páginas sirven a otras consultas.
Qué puede hacer con ella
Comprobaciones de legibilidad y copy SEO
Los editores comparan el tamaño del vocabulario entre borradores para que una página de aterrizaje no sea monótona ni esté atiborrada de frases casi duplicadas.
Preguntas frecuentes
¿Se tratan Hello y hello como la misma palabra?
Sí. Cada token se pliega a minúsculas antes de la unicidad, de modo que Hello y hello comparten un tipo. No hay modo sensible a mayúsculas.
¿Es gratuito el contador de palabras únicas?
La herramienta del navegador se ejecuta gratis en su dispositivo.
¿Qué es la proporción tipo-token?
Es el número de palabras únicas dividido entre el total de palabras. En la frase del zorro son 9 de 13, unos 0,692308. Cuanto más se acerca a 1, menos palabras se repiten.
¿Qué indica el número de palabras que aparecen una sola vez?
Cuántas palabras salen exactamente una vez, los llamados hápax. En la frase del zorro hay 6, como brown, lazy y dog, mientras que the, quick y fox son las 3 que se repiten.
¿Las contracciones y las palabras con guion cuentan como una?
Sí. Un apóstrofo o un guion dentro de una palabra la mantiene unida, así que don't y well-known cuentan como una sola palabra cada una. Los espacios, las comas, los puntos y demás signos separan palabras.
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/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)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.count_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.
Límites
max_chars | 100000 |
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 del 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 conteo único de cero, forma de éxito válida para entrada solo de puntuación o de relleno. No hay interruptor de sensibilidad a mayúsculas: pasar a minúsculas es la promesa del producto, de modo que Hello y hello siempre comparten un tipo. 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 fijado a la muestra no vacía que desee medir. Se aceptan los alias input, value, s, content y body cuando clientes antiguos o generadores de formularios usan esos nombres. Un text ausente, un valor que no sea 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. En caso de éxito la respuesta incluye count, unique_words y unique_count como el mismo tamaño de vocabulario por comodidad del SDK, total_words como cuántos tokens de palabra se vieron antes de la unicidad, type_token_ratio como palabras únicas divididas entre palabras totales redondeado a seis decimales (cero cuando no hay tokens), hapax_count como tipos que aparecen exactamente una vez, repeated_count como tipos que aparecen más de una vez, character_count como la longitud UTF-16 de la cadena original, original que repite la entrada exacta para tablas de interfaz, y method siempre count_unique_words para que el código posterior ramifique sin olfatear formas. Use count solo cuando una insignia necesite únicamente el tamaño del vocabulario; use type_token_ratio junto a total_words cuando desee una idea rápida de riqueza léxica frente a repetición. 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 para contar palabras únicas en deberes, auditorías de estilo, puntuación de legibilidad y revisión de borradores, sin escribir un one-liner de split y Set en cada lenguaje. No espere detección de idioma, lematización ni stemming multilingüe: son problemas distintos con términos SEO distintos. Use la API prepago KIT cuando un CMS, una canalización de contenido, un arnés de QA, una app de tutoría o un cliente móvil necesiten el mismo contrato con saldo a $0.002 por elemento correcto; los fallos de validación nunca consumen saldo tras el rechazo del motor. Un flujo típico pega un párrafo, lee unique_words y type_token_ratio, y compara con un objetivo de nivel de lectura o con un borrador anterior. Combine este endpoint con una herramienta de frecuencia de palabras o de densidad de palabras clave cuando el siguiente paso sea clasificar términos, pero mantenga contar palabras únicas como página propia para no mezclar la intención de tamaño de vocabulario con listar tokens o ranquear palabras clave SEO. Quien publique SDK puede documentar text como único campo obligatorio, mostrar un ejemplo de éxito con repeticiones de mayúsculas mixtas y un ejemplo de error de cadena vacía para que los integradores vean ambos lados del contrato.
Casos de integración
Riqueza léxica de borradores escolares
El profesorado pega un ensayo y lee unique_words más type_token_ratio para ver si el vocabulario es variado o está relleno de repeticiones.
Fixtures de CI para tuberías de tokens
Los scripts de compilación fijan salidas golden de palabras únicas para que las regresiones de plegado de mayúsculas y apóstrofos fallen de inmediato en la integración continua.
Preguntas técnicas
¿Cómo se cuentan las palabras únicas de un texto?
Envíe JSON con text fijado a una cadena no vacía. Los campos count, unique_words y unique_count de la respuesta son el tamaño del vocabulario tras pasar a minúsculas.
¿Qué ocurre si el texto está vacío?
La solicitud falla con invalid_input. La entrada vacía no se admite; los fallos de validación no se cobran en la API prepago.
¿Qué es type_token_ratio?
Es el número de palabras únicas dividido entre el total de tokens de palabra, redondeado a seis decimales. Valores más altos significan menos repetición. Vale cero cuando el texto no tiene tokens de palabra.