Закон Ципфа
Закон Ципфа утверждает, что при рассмотрении всего состава языка частота слова обратно пропорциональна его порядковому номеру в полном списке слов, упорядоченному по убыванию частоты их использования. Данный пример демонстрирует закон для набора слов из романа Мигеля Сервантеса "Дон Кихот" с использованием новыx функций WordCount и WordCounts.
ExampleData содержит текст первого тома "Дон Кихота" на испанском языке.
textSpanish = ExampleData[{"Text", "DonQuixoteISpanish"}];
Представленный здесь пример содержит более 180000 слов.
WordCount[textSpanish]
Подсчёты частоты употребления каждого определённого слова представлены в качестве ассоциации от WordCounts. Результат отсортирован по убыванию.
association = WordCounts[textSpanish];
Take[association, 10]
Получите подсчёт частоты употребления 1000 наиболее распространённых слов.
counts = Take[Values@association, 1000];
Для нахождения приблизительных подсчётов с помощью степенного закона используйте логарифмы в линейной согласованности. Закон Ципфа утверждает, что экспонента должна быть приблизительно равна , а результат должен быть близким этому значению.
f[x_] = Fit[Log[Transpose[{Range[1000], counts}]], {1, x}, x]
Визуализируйте согласованность с фактическими данными.
Закон Ципфа имеет силу в любом языке, поэтому данные вычисления возможны и с англоязычной версией "Дон Кихота".
textEnglish = ExampleData[{"Text", "DonQuixoteIEnglish"}];
associationEnglish = WordCounts[textEnglish];
countsEnglish = Take[Values@associationEnglish, 1000];
Take[associationEnglish, 10]
И снова найденная экспонента приближена к .
Fit[Log[Transpose[{Range[1000], countsEnglish}]], {1, x}, x]