Lei de Zipf
A lei de Zipf afirma que no conjunto de dados de uma linguagem, a frequência de uma palavra é inversamente proporcional a sua posição na lista global de palavras depois de classificadas por sua frequência de forma descendente. Este exemplo demonstra a lei com um conjunto de palavras do livro de Miguel de Cervantes, Don Quixote, usando as novas funções WordCount e WordCounts.
ExampleData contém o texto em espanhol do primeiro volume de Don Quixote.

textSpanish = ExampleData[{"Text", "DonQuixoteISpanish"}];
A amostra considerada aqui é composta por mais de 180.000 palavras.

WordCount[textSpanish]

As contagens de cada palavra distinta são dadas em uma associação por WordCounts. O resultado já é classificado por contagens decrescentes.

association = WordCounts[textSpanish];

Take[association, 10]

Considere a contagem das primeiras 1.000 palavras mais frequentes.

counts = Take[Values@association, 1000];
Para aproximar tais contagens com uma lei poderosa, pegue algoritmos para usar um ajuste linear. A lei de Zipf afirma que o expoente deve ser aproximadamente , e o resultado é um valor próximo.

f[x_] = Fit[Log[Transpose[{Range[1000], counts}]], {1, x}, x]

Visualize o ajuste junto com os dados atuais.

A lei de Zipf é aplicável em qualquer linguagem, assim o mesmo cálculo pode ser realizado com a versão em inglês de Don Quixote.

textEnglish = ExampleData[{"Text", "DonQuixoteIEnglish"}];

associationEnglish = WordCounts[textEnglish];
countsEnglish = Take[Values@associationEnglish, 1000];

Take[associationEnglish, 10]

De novo, o expoente encontrado é próximo de .

Fit[Log[Transpose[{Range[1000], countsEnglish}]], {1, x}, x]
