Cuente la frecuencia de palabras
En una frase de 10 palabras, the encabeza la lista con 3 apariciones, el 30 %, y cat la sigue con 2, el 20 %. Cada palabra recibe puesto, recuento y porcentaje, y los empates se ordenan alfabéticamente. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- the cat sat on the mat and the cat ran
- Total de palabras
- 10
- Palabras únicas
- 7
Esta herramienta de frecuencia de palabras toma cualquier texto no vacío, lo divide en palabras, cuenta cuántas veces aparece cada una y devuelve una lista clasificada de la más frecuente a la menos frecuente. Escritores, editores, docentes, profesionales de SEO, analistas de datos y desarrolladores usan conteos de palabras clasificados para auditorías de palabras clave, comprobaciones de rango léxico, rasgos simples de bolsa de palabras, demostraciones de aula y revisiones de borradores antes de publicar. El motor es totalmente determinista: los tokens de letras y dígitos Unicode se extraen con una sola expresión regular, el plegado opcional de mayúsculas pone las claves en minúscula por defecto, los conteos viven en un mapa hash y las filas se ordenan por conteo descendente y luego por palabra ascendente para que los empates no cambien entre ejecuciones. No hay llamadas de red, ni muestreo, ni atajos dependientes de la fecha.
Qué significa el ranking de frecuencia de palabras y qué contiene la respuesta
El ranking de frecuencia de palabras responde a una pregunta práctica de producto: qué palabras dominan este pasaje, con qué frecuencia aparece cada una y qué proporción de todos los tokens representa cada palabra. Una lista de frecuencia clasificada no es lo mismo que el conteo de caracteres, que mide la longitud, ni que la puntuación de densidad de palabras clave SEO frente a una sola frase objetivo.
Aquí cada palabra distinta se convierte en una fila con un rango, un conteo, una proporción igual al conteo dividido por el total de palabras redondeada a seis decimales, y un campo percent para gráficos y hojas de cálculo. Los tokens son secuencias de letras o dígitos Unicode, con segmentos internos opcionales de apóstrofo para que contracciones como don't y nombres como O'Brien permanezcan enteros cuando la fuente usa apóstrofos rectos. La puntuación, los símbolos y el espacio en blanco puro actúan como separadores y nunca reciben filas propias.
Por defecto la coincidencia no distingue mayúsculas: Hello, HELLO y hello se fusionan en una sola clave en minúscula para que el ruido de redacción no infle los conteos únicos. No hay stemming, ni lista de stop-words, ni detección de idioma, ni modelo de aprendizaje automático que pueda divergir entre hosts.
Dónde encajan las frecuencias de palabras clasificadas en la redacción, la enseñanza y el software
Los estudiantes se encuentran con el trabajo de frecuencia de palabras cuando un enunciado de lengua pide qué términos dominan un discurso, cuando un laboratorio de corpus construye una tabla simple de bolsa de palabras o cuando un ejercicio de programación exige conteos deterministas de tokens antes de graficar. Los docentes pueden pregenerar claves de respuesta con rangos, conteos, proporciones y porcentajes esperados sin confiar en fórmulas opacas de hoja de cálculo que dividen palabras con guion de forma distinta según el locale.
Editores y equipos de contenido pegan borradores en un ranking de frecuencia para detectar repetición accidental, clichés demasiado frecuentes o nombres de marca que apenas aparecen. Los estrategas de SEO y de contenido usan la lista clasificada como auditoría rápida de vocabulario antes de abrir un flujo completo de densidad de palabras clave: aquí el objetivo es la distribución completa de palabras de la más a la menos frecuente, no la puntuación de una sola frase.
Los equipos de soporte y operaciones miden asuntos ruidosos de tickets y líneas de registro para que los paneles muestren las palabras de fallo más comunes sin analizadores a medida. Combínela con contadores de caracteres, herramientas de slug o ayudantes de densidad de palabras clave cuando construya un pequeño laboratorio de utilidades de texto gratuitas y deterministas para formularios, preparación CMS e higiene de datos.
Qué puede hacer con ella
Detecte palabras sobreusadas en un borrador
Pegue un artículo o un correo y clasifique cada palabra por frecuencia para reducir la repetición y afinar el vocabulario antes de publicar.
Claves de respuesta para aula y laboratorio
Genere rangos, conteos, proporciones y porcentajes reproducibles para ejercicios de lengua, laboratorios de corpus y prácticas de programación que exigen tablas exactas.
Preguntas frecuentes
¿Cuánto cuesta contar la frecuencia de palabras?
Es gratis en su navegador en esta página.
¿Cómo se separan las palabras de la puntuación?
Los tokens son secuencias de letras o dígitos Unicode, con apóstrofos internos opcionales. Las comas, los puntos, los símbolos y el espacio en blanco separan palabras y nunca se convierten en filas.
¿La coincidencia distingue mayúsculas de minúsculas?
Por defecto no: Hello y hello cuentan como la misma palabra en minúscula.
¿Qué ocurre si el texto está vacío?
Proporcione texto no vacío que contenga al menos un token de letra o dígito.
¿Cómo se decide el rango cuando dos palabras comparten el mismo conteo?
Las filas se ordenan por conteo descendente y luego por palabra ascendente, de modo que los empates se resuelven alfabéticamente y se mantienen estables entre ejecuciones.
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/word-frequency \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"the cat sat on the mat and the cat ran"}'const res = await fetch("https://api.kit.forhosting.com/str/word-frequency", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "the cat sat on the mat and the cat ran"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/word-frequency",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "the cat sat on the mat and the cat ran"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/word-frequency", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"the cat sat on the mat and the cat ran"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"the cat sat on the mat and the cat ran"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/word-frequency", 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 cat sat on the mat and the cat ran"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.word_frequency",
"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
La entrada vacía, el pegado solo con espacios y el texto sin tokens de letra o dígito se rechazan con un error claro invalid_input para que un formulario en blanco no se convierta en un éxito vacío silencioso.
Qué significa el ranking de frecuencia de palabras y qué contiene la respuesta
Cuando necesite conservar el caso para muestras de código o estudios de nombres propios, fije case_sensitive en true y las claves mantienen la ortografía exacta de cada token. La respuesta repite el texto de origen, informa total_words como el número de tokens hallados, unique_words como el número de claves distintas antes de cualquier corte top, repite el indicador case_sensitive y el límite top opcional, lista words en orden de rango de la más a la menos frecuente, y etiqueta method como count_word_frequency para canalizaciones multi-herramienta. El motor construye una tabla clasificada exacta dentro de la longitud admitida o rechaza la solicitud con invalid_input. Los casos rechazados incluyen un campo text ausente, un valor null, una cadena vacía, contenido solo con espacios, objetos y arrays que no son texto plano, cargas más largas que el máximo documentado de caracteres y cadenas que solo contienen puntuación con cero tokens de letra o dígito.
Cómo se lee el campo text y cómo los rankings se mantienen reproducibles
El valor debe ser una cadena no vacía tras una comprobación de contenido significativo; los números finitos y los bigints se convierten primero a cadena para que un código de producto tecleado como número siga produciendo un token de dígitos estable. Los espacios exteriores alrededor de palabras reales solo son separadores; no crean tokens fantasma. El campo opcional top acepta un entero de uno a diez mil y conserva solo las primeras filas clasificadas tras el ordenamiento completo, útil cuando desea la cabeza de una distribución larga sin enviar miles de términos raros. El conteo usa un solo pase de tokenización con Unicode, un Map para los totales y una ordenación por comparación pura—sin diccionario de red, sin tabla de locale que reordene letras de forma distinta entre hosts y sin muestreo aleatorio. El campo preferido es text, pero se aceptan los alias input, string, value, content y s para que cadenas de consulta, hojas de cálculo y formularios tipados reutilicen el mismo contrato sin renombrar columnas. Los booleanos, objetos planos y arrays se rechazan con un mensaje claro para que un cuerpo JSON equivocado no se convierta en la palabra true ni en un volcado de objeto inútil. La cadena vacía y el pegado solo con espacios son siempre invalid_input: la promesa del producto es contar cuántas veces aparece cada palabra, no inventar un éxito de cero para un envío en blanco. La longitud se limita a cien mil caracteres para que un pegado descontrolado no monopolice un Worker; las cargas más largas fallan con un mensaje de límite explícito en lugar de un recorte silencioso. El campo opcional case_sensitive vale false por defecto para que los borradores cotidianos colapsen el caso; fíjelo en true cuando distinga intencionalmente Hello de hello. Combine la ejecución gratuita en el navegador de esta página con la API de pago cuando necesite el mismo ranking de frecuencia dentro de una canalización automatizada sin enviar sus propios contadores de palabras.
Dónde encajan las frecuencias de palabras clasificadas en la redacción, la enseñanza y el software
En esta página el trabajo se ejecuta por completo en su navegador; a través de la API cada análisis correcto cuesta $0.002, la validación fallida no se cobra y no se almacena nada tras devolver la respuesta. Esa división—exploración interactiva gratuita y API idéntica de pago—coincide con el resto del catálogo KIT de nivel A y le permite pasar de una demo de aula a una canalización automatizada sin cambiar el resultado numérico.
Casos de integración
Fixtures de prueba bag-of-words
Construya rankings de frecuencia deterministas para CI, pruebas de índice de búsqueda y canalizaciones de datos sin enviar un tokenizador propio.