Frecuencia de palabras y ley de Zipf: contamos seis libros en seis lenguas y ajustamos la pendiente
Publicado el 26/6/2025 · 14 min de lectura · Herramientas de texto e idioma
Daniel Okonkwo — Desarrollador front-end y redactor de Tecnología en Allin
Rendimiento web · Formatos de archivo
Verificado con 4 fuentes
La ley de Zipf dice que en un texto largo en lengua natural la palabra de rango n aparece unas 1/n veces respecto a la más frecuente. La comprobamos en vez de citarla. El recuento de Don Quijote da 383 633 palabras de texto corrido formadas por 23 058 palabras distintas; «que» aparece 20 769 veces, el 5,41 % del libro. El rango 20 es «como» con 2 270 apariciones y el rango 1 000 es «obligado» con 36, de modo que rango × frecuencia vale 45 400 en el rango 20, 38 800 en el 100, 39 000 en el 500 y 36 000 en el 1 000 — casi constante a lo largo de dos órdenes de magnitud, que es lo que predice la ley. El ajuste de log frecuencia contra log rango sobre los rangos 10 a 1 000 da una pendiente de -1,054 con R² 0,999. El mismo ajuste sobre otras cinco novelas en otras cinco lenguas da -1,083 en inglés, -1,068 en francés, -1,021 en portugués, -1,079 en alemán y -1,031 en italiano, todos con R² de al menos 0,996. La consecuencia práctica: 59 palabras cubren la mitad del Quijote, así que la frecuencia bruta dice poquísimo del tema de un documento. La ley ajusta el centro de la distribución, no los extremos, y en textos cortos no aparece.
La palabra de rango n aparece unas 1/n veces respecto a la primera. Contamos seis libros de dominio público, imprimimos rango × frecuencia, ajustamos log frecuencia contra log rango y obtuvimos pendientes entre -1,02 y -1,08 en las seis lenguas — y los dos sitios donde la ley falla.
La afirmación, y cómo la comprobamos
La afirmación es fácil de enunciar: ordena todas las palabras distintas de un texto largo por frecuencia y la palabra en la posición n aparecerá unas 1/n veces respecto a la de la posición 1. La segunda palabra más frecuente aparece la mitad de veces que la primera, la décima una décima parte, la centésima una centésima. Suele afirmarse; nosotros contamos. Seis novelas vienen del Proyecto Gutenberg, una por lengua del sitio, con la cabecera y el pie de licencia eliminados. Cada texto pasó por el mismo tokenizador — minúsculas y luego series de letras y marcas Unicode más el apóstrofo — para que ninguna lengua recibiera mejor trato que otra.
Tokenizar ya es una decisión, no un acto neutro. Cortar por letras Unicode solo une «Don't» y «dont» si dejas fuera el apóstrofo, trata «co-operar» como dos palabras y cuenta aparte las formas flexionadas: el alemán y el italiano, que reparten su gramática en muchas formas, acaban con más palabras distintas para la misma cantidad de texto. Buddenbrooks tiene 25 071 palabras distintas en 230 086 corridas; Quincas Borba tiene 10 329 en 78 361. Eso es tanto una propiedad de nuestro tokenizador como de las lenguas, y la advertencia vale para cualquier contador de frecuencias, incluido el nuestro. Lo que importa aquí es que la elección fue la misma en las seis.
Rango × frecuencia se mantiene casi constante
Si la frecuencia sigue de verdad 1/rango, entonces rango por frecuencia debería dar el mismo número en todas partes. En el Quijote casi lo hace. El rango 20 es «como» con 2 270 apariciones: 20 × 2 270 = 45 400. El rango 50 es «esto» con 886: 44 300. El rango 100 es «mis» con 388: 38 800. El rango 500 es «doña» con 78: 39 000. El rango 1 000 es «obligado» con 36: 36 000. El rango 5 000 es «llaves» con 5: 25 000. En rangos que difieren por un factor de 250, el producto varía cerca de un tercio — así se ve «casi constante» en datos reales, y es un resultado fuerte para una afirmación de un solo parámetro sobre una novela que nadie escribió para ser contada.
La forma más limpia de verlo es en ejes log-log. Tomar logaritmos decimales del rango y de la frecuencia convierte f = C / rango^s en una recta de pendiente -s, y un ajuste por mínimos cuadrados recupera s. Sobre los rangos 10 a 1 000 del Quijote el ajuste da una pendiente de -1,054 y un R² de 0,999 en 991 puntos — una recta excelente. Los otros cinco libros dan -1,083, -1,068, -1,021, -1,079 y -1,031, todos con R² entre 0,996 y 0,999. La ley de Zipf en su forma desnuda predice exactamente -1; cada uno de nuestros seis textos queda algo más inclinado, entre un 2 % y un 8 % por debajo. Ese exceso sistemático está bien documentado y es una razón por la que la forma generalizada escribe el exponente como parámetro libre en vez de fijarlo en uno.
La misma forma en seis lenguas y a lo largo de dos siglos
Los seis libros abarcan de 1605 a 1901 y seis lenguas de gramáticas muy distintas, y sus pendientes caben en una banda de 0,06 de ancho. Ahí está lo interesante: la forma no viene del inglés, ni de la novela, ni del siglo XIX. Para comprobar que sobrevive en prosa contemporánea aplicamos el mismo recuento a los artículos ingleses de este sitio — 533 artículos, 513 756 palabras corridas escritas en 2026 sobre tipos de IVA, conversiones de unidades y formatos de archivo. La pendiente sobre los rangos 10 a 1 000 es -0,915 con R² 0,997. Más plana que la de las novelas, pero la misma recta sobre los mismos ejes, 175 años y un género después.
Las listas de cabeza difieren de forma evidente y coinciden en lo profundo. El inglés da the, of, and, a, to; el francés de, la, et, il, le; el español que, de, y, la, a; el portugués a, que, o, de, e; el alemán und, die, der, er, in; el italiano e, che, di, a, il. Ni un sustantivo. Todas son artículos, preposiciones, conjunciones o pronombres — pegamento gramatical, no contenido. Sobre esa observación se apoya el resto del artículo.
Dónde falla la ley: los dos extremos y cualquier texto corto
Ajusta solo las diez primeras palabras del Quijote y la pendiente sale -0,693 en vez de -1,054; la cabeza de la distribución es más plana de lo que predice la ley. Lo es también en las demás: -0,793 en inglés, -0,541 en francés, -0,595 en portugués, -0,545 en alemán, -0,485 en italiano. La palabra más frecuente nunca domina tanto como exigiría una regla estricta en 1/n, y por eso la forma de Zipf–Mandelbrot suma una constante al rango antes de elevarlo a una potencia. En el otro extremo el ajuste se degrada de otro modo: sobre los rangos 1 000 hasta el final, el R² cae de 0,999 a 0,960 en español y a 0,895 en portugués, porque la cola es una escalera de palabras que aparecen cuatro, tres, dos y por fin una vez, y una recta a través de una escalera es una recta mala.
El fallo más útil es el de la longitud. Toma las primeras 200 palabras de Moby-Dick y cuéntalas: 100 palabras distintas, de las cuales 86 aparecen una sola vez, y el token más frecuente es «chapter» con 56 apariciones porque el pasaje es sobre todo un índice. El ajuste da una pendiente de -0,614 con R² 0,685 — ninguna ley visible. Con 1 000 palabras el ajuste es -0,751 y R² 0,920; con 5 000 palabras -0,897 y 0,969; con 20 000 palabras -0,991 y 0,991. La distribución solo se hace reconocible hacia las decenas de miles de palabras. Una entrada de blog, una ficha de producto o un correo están muy por debajo. Contar frecuencias sobre 300 palabras te dice qué repite ese texto; no te dice nada de la lengua.
Por qué existen las palabras vacías y por qué funciona la compresión
Si cien palabras son la mitad de tu texto, entonces cien entradas en una lista quitarán la mitad de los tokens de un índice. Eso es todo lo que ha sido siempre una lista de palabras vacías: una medida de ahorro que la ley de Zipf vuelve enorme. En el Quijote las diez palabras más frecuentes son el 28,7 % del texto corrido y las cien primeras el 55,5 %; 59 palabras distintas cubren la mitad del libro. Las otras lenguas coinciden en la forma y difieren en la cuenta: 96 formas para la mitad de la novela inglesa, 90 para la francesa, 97 para la portuguesa, 132 para la alemana, 141 para la italiana. Nótese que por eso mismo el enfoque de palabras vacías está hoy en desuso en búsqueda: esas palabras llevan algo de información, y «ser o no ser» está hecho solo de ellas.
La conexión con la compresión es medible. Moby-Dick usa 17 422 palabras distintas; si todas fueran igual de probables, nombrar una costaría log2(17 422) = 14,09 bits. La distribución unigrama real tiene una entropía de 10,00 bits por palabra, un 29,1 % menos, y ese ahorro es la asimetría — el hecho de que «the» aparezca cada quince palabras mientras «gunwale» aparece veintiuna veces en toda la novela. Los compresores generalistas explotan la misma asimetría a nivel de bytes: gzip -9 reduce el libro de 1 206 KiB a 486 KiB. Barajar las 216 603 palabras en orden aleatorio y volver a comprimir da 459 KiB de 1 152 KiB, esencialmente la misma proporción, lo que indica qué parte de la ganancia de gzip viene aquí de la distribución de frecuencias y no del orden de las palabras.
La frecuencia bruta es una mala señal de relevancia — un ejemplo resuelto
Divide Moby-Dick en capítulos, trata cada uno como un documento y pregunta al contador de frecuencias de qué trata un capítulo. Usamos los 134 capítulos lo bastante largos para contarlos y elegimos el titulado «Queen Mab», de 863 palabras. Ordenados por frecuencia bruta, sus términos de cabeza son a (39), i (36), the (26), he (22), of (20) — una descripción perfecta del inglés y una descripción inútil del capítulo. Pondera los mismos recuentos por la frecuencia inversa de documento y los términos de cabeza pasan a ser kicked (8), kick (7), wise (9), pyramid (5), says (10), flask (10), que resume con justicia un capítulo en el que a Stubb le han dado una patada y se lo cuenta a Flask.
La aritmética del cambio cabe en un logaritmo. «The» aparece en 134 de los 134 capítulos, así que su frecuencia inversa de documento es ln(134/134) = 0,000 y su peso se hunde a cero por muchas veces que salga. «Cetology» aparece en 3 capítulos, así que su idf es ln(134/3) = 3,799 y tres apariciones ganan a veintiséis de «the». Es el mismo razonamiento de tf-idf y de BM25, la función de ranking de la que parten la mayoría de los motores, y es la razón por la que la densidad de palabras clave que informan las herramientas de marketing no tiene contrapartida dentro de un sistema de recuperación moderno. La densidad mide el eje equivocado: lo que cuenta es lo insólito de un término en la colección, no cuánto se repite en la página.
Para qué sirve de verdad un recuento de frecuencias
En cuanto dejas de leer la cabeza de la lista, el recuento se vuelve realmente útil. Compara un documento con una lista de frecuencias de referencia y las palabras anormalmente frecuentes en él son su tema — es el cálculo tf-idf de arriba con un corpus que ya tienes. Busca repeticiones no intencionadas: un tic de autor, un término repetido once veces en una ficha de producto de 400 palabras, un nombre escrito de dos maneras. Cuenta los hápax, las palabras que aparecen una sola vez, que son el 48,9 % de las palabras distintas del Quijote y el 55,9 % de Quincas Borba; una caída brusca de esa proporción entre borradores es un buen indicio de empobrecimiento léxico. Y comprueba la cobertura: si 59 palabras llevan la mitad de tu texto, la otra mitad es donde está el significado.
Un hábito merece conservarse de todo esto: informa del denominador. «Aparece 12 veces» no significa nada sin «en 400 palabras», y 12 de 400 son el 3 %, altísimo para una palabra léxica y bajísimo para «el». Nuestro contador de frecuencias muestra por eso el recuento, la proporción y el rango juntos, y la herramienta de legibilidad vecina trabaja sobre el mismo flujo de tokens.
| Corpus | Palabras corridas / distintas | Palabra más frecuente | Pendiente (rangos 10–1000) | R² | Las 100 primeras palabras cubren |
|---|---|---|---|---|---|
| Moby-Dick (en, 1851) | 216 603 / 17 422 | the — 6,71 % | -1,083 | 0,998 | 50,6 % |
| Les Misérables I (fr, 1862) | 111 887 / 12 899 | de — 4,00 % | -1,068 | 0,998 | 51,2 % |
| Don Quijote (es, 1605) | 383 633 / 23 058 | que — 5,41 % | -1,054 | 0,999 | 55,5 % |
| Quincas Borba (pt, 1891) | 78 361 / 10 329 | a — 3,73 % | -1,021 | 0,998 | 50,4 % |
| Buddenbrooks (de, 1901) | 230 086 / 25 071 | und — 4,19 % | -1,079 | 0,999 | 46,6 % |
| I promessi sposi (it, 1842) | 230 152 / 23 932 | e — 3,79 % | -1,031 | 0,996 | 45,9 % |
| Los artículos de este sitio (en, 2026) | 513 756 / 14 375 | the — 6,55 % | -0,915 | 0,997 | 47,6 % |
Preguntas frecuentes
- ¿Qué longitud hace falta para que aparezca la ley de Zipf?
- Decenas de miles de palabras. Truncando Moby-Dick y reajustando se obtiene R² 0,685 con 200 palabras, 0,920 con 1 000, 0,969 con 5 000 y 0,991 con 20 000, y la pendiente sube de -0,614 hacia -1,0 según crece el texto. Por debajo de unos pocos miles de palabras la mayoría de las palabras distintas aparecen una sola vez — 86 de las 100 de una muestra de 200 palabras — y una lista de rangos hecha casi toda de empates no tiene pendiente que medir.
- ¿Debo quitar las palabras vacías antes de contar?
- Depende de la pregunta. Para saber de qué trata un documento, sí — o mejor, pondera por frecuencia inversa de documento, que los elimina solos: «the» aparece en los 134 capítulos de Moby-Dick, así que su idf es exactamente cero. Para comprobar si un texto es atípico, no: una tasa anormalmente baja de palabras funcionales es en sí una señal, y las listas de palabras vacías borran contenido real, porque «ser o no ser» está hecho solo de ellas.
- ¿Por qué la pendiente ajustada es más inclinada que -1?
- Porque la ley desnuda en 1/n es una idealización. Cada una de nuestras seis novelas ajusta entre -1,021 y -1,083 sobre los rangos 10 a 1 000: el exceso es sistemático, no ruido, y por eso la forma generalizada de Zipf–Mandelbrot trata el exponente como parámetro libre y suma una constante al rango para doblar la cabeza plana. El rango ajustado también cambia la respuesta: ajustar la lista completa en vez de los rangos 10 a 1 000 lleva la pendiente inglesa de -1,083 a -1,154, porque la cola ruidosa es la mayoría de los puntos.
- ¿El tokenizador cambia el resultado?
- Cambia los recuentos, no la forma. Mantener el apóstrofo, separar palabras con guion o lematizar formas flexionadas mueve mucho el número de palabras distintas — 25 071 en la novela alemana frente a 10 329 en la portuguesa, sobre textos de longitudes muy distintas — mientras la pendiente log-log se queda en la misma banda estrecha. Compara listas de frecuencias solo si vienen del mismo tokenizador, y di cuál usaste.
- ¿Es útil el número de densidad de palabras clave?
- Solo como autocontrol de la repetición. La densidad es un número intradocumento y la relevancia es interdocumentos: en nuestra prueba sobre un capítulo, ponderar por frecuencia inversa de documento convirtió un top cinco de a, i, the, he, of en kicked, kick, wise, pyramid, flask. Una palabra presente en todos los documentos de una colección tiene un idf exactamente nulo por densa que sea en tu página. Usa el recuento para detectar repeticiones accidentales; no lo uses como objetivo.
Artículos que podrían interesarte
Todas las guías →Herramientas relacionadas
Fuentes
- Project Gutenberg — Public-domain source texts used for the counts: Moby-Dick (#2701), Les Misérables I (#17489), Don Quijote (#2000), Quincas Borba (#55682), Buddenbrooks (#34811), I promessi sposi (#45334)
- Stanford NLP Group — Manning, Raghavan & Schütze, Introduction to Information Retrieval — Zipf's law: modeling the distribution of terms, and the tf-idf weighting chapter
- Psychonomic Bulletin & Review (Piantadosi, 2014) — Zipf's word frequency law in natural language: a critical review and future directions
- Unicode Consortium — Unicode Standard Annex #29: Unicode Text Segmentation — what counts as a word boundary
¿Has detectado un error en este artículo?