Закон Ципфа: анализ текста и проверка онлайн
Закон Ципфа — эмпирическая закономерность: в естественном тексте частота слова обратно пропорциональна его месту в рейтинге частот. Самое частое слово встречается примерно вдвое чаще второго, втрое чаще третьего и так далее. Анализ текста по закону Ципфа показывает, насколько распределение слов в вашем тексте похоже на естественное. Проверить свой текст онлайн можно бесплатно в AI-детекторе PromoPilot: метрика «Закон Ципфа» выводится в блоке метрик после проверки. Ниже — как она считается, как читать результат и как проверить текст вручную.
Формула закона Ципфа
В общем виде закон записывают так: f(r) = C / rα, где f — частота слова, r — его ранг (место в списке по убыванию частоты), C — константа, примерно равная частоте самого частого слова, а показатель α для естественного языка близок к единице. Отсюда простое следствие: произведение ранга на частоту r × f примерно постоянно.
| Ранг слова | Ожидаемая частота при α = 1 | Ранг × частота |
|---|---|---|
| 1 | 120 | 120 |
| 2 | 60 | 120 |
| 3 | 40 | 120 |
| 4 | 30 | 120 |
| 10 | 12 | 120 |
Если построить график в логарифмических осях — логарифм ранга по горизонтали, логарифм частоты по вертикали, — точки естественного текста лягут почти на прямую с наклоном около −1.
Как проверить текст по закону Ципфа онлайн
Быстрее всего — анализатор текста по закону Ципфа: вставьте текст, и он построит график ранг—частота в логарифмическом масштабе рядом с идеальной прямой, посчитает наклон, R² и индекс соответствия, покажет топ-30 слов с ожидаемой частотой и подсветит слова, которые встречаются заметно чаще нормы. Расчёт идёт в браузере, текст никуда не отправляется.
Второй вариант — метрика «Закон Ципфа» в AI-детекторе, где она стоит среди других показателей текста:
- Откройте AI-детектор. Регистрация не нужна.
- Вставьте текст или укажите адрес страницы — инструмент сам извлечёт с неё текст. Берите не меньше 100 слов, а лучше 200 и больше: на коротком фрагменте метрика малоинформативна.
- Выберите язык или оставьте автоопределение и нажмите «Проверить».
- В блоке «Метрики детектора» найдите строку «Закон Ципфа» с подсказкой «Распределение частот слов». Если отклонение заметное, в блоке «Пояснения» появится строка «Отклонение частот слов от естественного распределения».
Та же метрика есть в расширенной версии детектора, где она отображается на радарной диаграмме вместе с другими показателями и разбором текста по предложениям.
Как считается метрика
- Текст делится на слова по пробелам, слова приводятся к нижнему регистру, знаки препинания отбрасываются. Лемматизации нет: «ссылка», «ссылки» и «ссылку» считаются разными словами.
- Частоты сортируются по убыванию, и для первых 50 рангов фактическая частота сравнивается с теоретической
f(1) / r. Считается среднее относительное отклонение. - Отдельно оценивается «хвост» — редкие слова в нижней трети списка: слишком однородный хвост тоже считается отклонением.
- Обе оценки складываются поровну. Если в тексте меньше 50 слов, метрика возвращает нейтральные 50%; полную силу она получает на 200 словах и длиннее, а на промежуточной длине результат подтягивается к 50%.
Как читать результат
| Значение | Цвет полосы | Что означает |
|---|---|---|
| до 40% | зелёный | Распределение частот близко к естественному |
| 40–70% | жёлтый | Заметное отклонение; на текстах до 200 слов — часто просто из-за длины |
| больше 70% | красный | Сильное отклонение: переспам, шаблонность или однообразный словарь |
Чем выше процент, тем дальше текст от кривой Ципфа. При этом в итоговой вероятности ИИ-генерации вес этой метрики небольшой — около 3%: на коротких текстах она ненадёжна, и детектор опирается в первую очередь на другие признаки. Как читать весь отчёт целиком — в статье о проверке текста на ИИ.
Ручная проверка: частотный словарь и график log-log
Если нужно увидеть саму кривую, а не одно число, её легко построить самостоятельно.
- Очистите текст: нижний регистр, без знаков препинания и цифр. Для русского языка результат точнее, если привести слова к начальной форме (лемматизировать).
- Посчитайте, сколько раз встречается каждое слово, и отсортируйте список по убыванию. Номер строки — ранг.
- Добавьте два столбца:
=LOG10(ранг)и=LOG10(частота). - Постройте точечную диаграмму по этим столбцам и посчитайте наклон: в Excel и Google Таблицах — функцией
НАКЛОН(SLOPE).
То же самое на Python:
import re, math
from collections import Counter
text = open("text.txt", encoding="utf-8").read().lower()
words = re.findall(r"[а-яёa-z]+", text)
freqs = sorted(Counter(words).values(), reverse=True)
xs = [math.log10(r) for r in range(1, len(freqs) + 1)]
ys = [math.log10(f) for f in freqs]
n = len(xs); mx = sum(xs) / n; my = sum(ys) / n
slope = sum((x - mx) * (y - my) for x, y in zip(xs, ys)) / sum((x - mx) ** 2 for x in xs)
print("наклон:", round(slope, 2)) # для естественного текста около -1
Пример: обычный и переспамленный текст
Условный пример на статье примерно в 600 слов о ремонте ноутбуков. В обычной версии верх частотного списка выглядит так: «в», «и», «на», «не», «ноутбук», «с» — служебные слова наверху, тематическое слово на пятом месте, частоты убывают плавно. В переспамленной версии, где автор вставлял «ремонт ноутбуков» в каждое предложение, картина другая:
| Ранг | Обычный текст | Переспамленный текст |
|---|---|---|
| 1 | в — 31 | ремонт — 34 |
| 2 | и — 17 | ноутбуков — 33 |
| 3 | на — 11 | в — 29 |
| 4 | не — 8 | и — 15 |
| 5 | ноутбук — 6 | на — 10 |
В первом столбце частоты ведут себя как 31 / r, во втором первые два ранга почти равны — это и есть отклонение от закона Ципфа, видимое без всяких инструментов. Детектор фиксирует его автоматически, а на графике log-log такие слова выглядят как «полка» в начале кривой.
Как интерпретировать отклонения
| Что видно на графике | Возможная причина |
|---|---|
| Тематическое слово стоит в первой тройке рядом с предлогами и союзами | Переспам ключевым словом — проверьте плотность ключевых слов |
| Наклон заметно круче −1 | Бедный словарь, много повторов одних и тех же слов |
| Наклон заметно положе −1 | Перечни терминов, таблицы, списки названий |
| Длинный ровный хвост из слов с частотой 1 | Короткий текст — это норма, а не признак проблемы |
Зачем закон Ципфа в SEO
- Диагностика переспама: если ключевое слово выбивается из распределения, оно повторяется слишком часто.
- Оценка словарного богатства: плоское или слишком крутое распределение говорит о бедном языке.
- Сравнение с конкурентами: полезнее абстрактных норм — посмотрите, как выглядят тексты из топа по вашему запросу.
- Один из признаков машинного текста: отклонение — косвенный сигнал, что текст собрали из шаблонов или сгенерировали.
Второй закон Ципфа
Иногда в анализе текста упоминают и второй закон Ципфа. Он описывает другую сторону распределения: сколько разных слов имеют одну и ту же частоту. Чем ниже частота, тем больше таких слов: слов, встречающихся в тексте один раз, больше всего — в типичном тексте это значительная часть словаря. Именно эта часть и составляет «хвост», который детектор оценивает отдельно: у естественного текста он неоднородный, у шаблонного — подозрительно ровный.
Откуда взялся закон
Закономерность описал американский лингвист Джордж Ципф в 1930–1940-х годах, хотя похожие наблюдения о частотах слов делали и раньше. Позже её нашли далеко за пределами языка — в размерах городов, доходах, посещаемости сайтов. Для текстов она держится удивительно устойчиво: на любом достаточно большом естественном тексте распределение частот ложится на одну и ту же кривую. Верхние ранги почти всегда занимают служебные слова — предлоги, союзы, местоимения, — а значимые слова темы располагаются ниже, и именно их доля показывает, о чём текст.