TF-IDF (Term Frequency — Inverse Document Frequency, «частота термина — обратная частота документа») — формула 1972 года, которая оценивает важность слова в документе. Идея: слово важно, если часто встречается в этом документе (TF) и редко — в коллекции остальных документов (IDF). Это первый математический подход к текстовой релевантности, который заложил фундамент всего современного информационного поиска. В 2026 году напрямую почти не используется — её заменил BM25, но базовая логика TF-IDF до сих пор лежит в основе текстовых сигналов поисковиков.
TF-IDF за 30 секунд
Представьте библиотеку из 10 000 книг. Слово «и» встречается во всех книгах — оно ничего не говорит о теме конкретной книги. А слово «биметаллический» — только в трёх книгах по металлургии. Если вы видите это слово 10 раз в новой книге, можно почти с уверенностью сказать: это книга про металлургию.
TF-IDF математически выражает эту интуицию. Он одновременно смотрит на две вещи: насколько слово популярно в этом документе и насколько оно редкое в общей коллекции. Произведение даёт «вес значимости» слова именно для данного документа. Чем выше — тем характернее слово для темы.
Формула TF-IDF
В каноническом виде формула состоит из двух множителей:
TF-IDF(t, d, D) = TF(t, d) × IDF(t, D)
Где:
| Обозначение | Расшифровка | Как считается |
|---|---|---|
t |
Конкретное слово (term) | например, «купить» |
d |
Конкретный документ | ваша страница |
D |
Вся коллекция документов | например, индекс Яндекса |
TF(t, d) |
Частота слова t в документе d | количество вхождений / общее число слов |
IDF(t, D) |
Обратная документная частота | log(N / n), где N — всего документов, n — содержащих слово t |
TF (Term Frequency) — насколько часто слово встречается в данном документе. Может считаться по-разному:
- Простой счётчик:
TF = count(t, d)— количество вхождений - Нормализованный:
TF = count(t, d) / |d|— доля в документе - Логарифмический:
TF = 1 + log(count(t, d))— приглушает влияние частоты
IDF (Inverse Document Frequency) — мера редкости слова в коллекции:
IDF(t, D) = log(N / n_t)
Где N — общее количество документов в коллекции, n_t — количество документов, содержащих слово t. Логарифм нужен, чтобы редкие слова не получали астрономические значения.
Пример расчёта вручную
Допустим, у нас коллекция из 1 000 000 веб-страниц, и слово «семантика» встречается в 5 000 из них.
Шаг 1. Считаем IDF слова «семантика»:
IDF(семантика) = log(1 000 000 / 5 000)
= log(200)
≈ 5.3
Это «вес редкости»: слово достаточно специфичное, чтобы давать сильный сигнал.
Шаг 2. Считаем TF в нашем документе.
В вашей статье 1 000 слов, и «семантика» встречается 8 раз:
TF(семантика) = 8 / 1 000 = 0.008
Шаг 3. Перемножаем:
TF-IDF(семантика) = 0.008 × 5.3 ≈ 0.0424
Это вес слова «семантика» именно для вашего документа.
Сравним для контраста. Слово «и» встречается во всех 1 000 000 документах коллекции:
IDF(и) = log(1 000 000 / 1 000 000) = log(1) = 0
TF-IDF(и) = TF × 0 = 0
Стоп-слова автоматически отсеиваются — TF-IDF умножается на ноль. Это одна из элегантных черт формулы: ничего не нужно отдельно фильтровать.
А теперь попробуем сломать. Та же страница, но «семантика» встречается 80 раз:
TF(семантика) = 80 / 1 000 = 0.08
TF-IDF(семантика) = 0.08 × 5.3 ≈ 0.424
Вес вырос в 10 раз ровно. Никакого «насыщения» — формула считает: больше вхождений = пропорционально выше важность. Это и есть главный недостаток TF-IDF, который через 22 года решит BM25.
Ограничения TF-IDF
1. Не учитывает длину документа. Если у вас два документа, в одном 100 слов и слово встречается 5 раз, в другом 1000 слов и встречается 50 раз — у обоих будет одинаковый TF (5%). Хотя интуитивно второй документ длиннее «размазан» и менее сфокусирован.
2. Линейный рост вклада частоты. Каждое следующее вхождение слова даёт ровно столько же, сколько предыдущее. Это противоречит реальности: разница между 1 и 5 упоминаниями огромна, между 50 и 55 — почти нулевая. TF-IDF этого не различает.
3. Игнорирует позицию слова. Слово в Title значит для пользователя то же, что и в footer? Очевидно нет, но TF-IDF этого не знает — для него весь текст однороден. Современные системы добавляют «весовые зоны» поверх TF-IDF (boost для заголовков, alt-текстов, anchor-текстов).
4. Не понимает синонимы и контекст. Для TF-IDF «купить» и «приобрести» — два совершенно разных слова. Никакой семантики, только статистика. Для решения этого позже придумали LSI и эмбеддинги.
5. Зависит от качества коллекции. IDF считается по всей коллекции — если коллекция нерепрезентативна, веса будут перекошены. Например, если в индексе много спам-страниц с накрученным «биметаллический», IDF этого слова будет низкий, и оно потеряет диагностическую ценность.
6. Уязвим к накрутке. Линейная природа TF означает: впишите ключ 100 раз — получите 100x вес. До конца 1990-х так и делали, и это работало. Именно эта уязвимость заставила Karen Spärck Jones и Стивена Робертсона разработать BM25.
История создания
| Год | Событие |
|---|---|
| 1958 | Hans Peter Luhn (IBM) формулирует идею «значимость слова определяется его частотой и распределением» |
| 1972 | Karen Spärck Jones публикует статью с формулой IDF в Journal of Documentation |
| 1973-80 | TF-IDF становится стандартом векторных моделей информационного поиска (SMART system, Cornell) |
| 1988 | TF-IDF используется в первой версии LSI (Deerwester et al.) как входной признак |
| 1994 | Появляется BM25 — Стивен Робертсон и Спарк-Джонс совершенствуют TF-IDF |
| 1995-2010 | TF-IDF постепенно вытесняется BM25 в продакшен-системах |
| 2016 | Elasticsearch меняет default scoring c TF-IDF на BM25 |
| 2020-26 | TF-IDF остаётся в учебниках инфопоиска и образовательных материалах, но в продакшене почти не используется |
Karen Spärck Jones (1935–2007) — пионер компьютерной лингвистики, профессор Кембриджа, лауреат премии Lovelace Medal (2007). Её формулировка IDF до сих пор цитируется как одна из самых влиятельных работ в инфопоиске.
Где TF-IDF используется сегодня
Прямого использования в публичных поисковиках почти нет, но формула жива в нескольких нишах:
Текстовые анализаторы для SEO
- Megaindex Text Analyzer — показывает TF-IDF слов вашей страницы относительно ТОП-10 по запросу.
- JustText (Just-Magic) — российский анализатор, считает TF-IDF и предлагает «недостающие термины».
- Pixel Plus Tools — встроенный модуль текстового анализа.
- Тургенев — проверка переоптимизации, использует упрощённый TF-IDF.
Эти сервисы не «оптимизируют под TF-IDF» в чистом виде — они показывают, какие тематические слова есть у конкурентов в выдаче, но отсутствуют у вас. Это полезно для расширения семантики, даже если сама формула устарела.
Поисковые движки в режиме совместимости
- Apache Lucene / Elasticsearch — TF-IDF доступна как опция (similarity = ClassicSimilarity), но default с 2016 г. — BM25.
- PostgreSQL Full-Text Search — использует упрощённый вариант TF-IDF в функции
ts_rank.
Машинное обучение и NLP
- Классификация текстов — TF-IDF как входной признак для моделей (наивный Байес, SVM, логистическая регрессия). Простой, быстрый, понятный.
- Поиск дубликатов и близких текстов — векторизация TF-IDF + косинусное сходство.
- Извлечение ключевых слов из документа — top-N слов по TF-IDF часто = ключевые слова темы.
- Рекомендательные системы — content-based фильтрация на основе TF-IDF профилей.
- RAG-системы для LLM — TF-IDF как «грубый фильтр» перед более дорогим векторным поиском.
Академические и образовательные материалы
TF-IDF — обязательная тема в любом курсе по NLP и инфопоиску. На ней объясняют идею статистических текстовых сигналов до перехода к более сложным алгоритмам. Понимать TF-IDF полезно, чтобы понимать BM25 — преемственность очевидна.
Применение в SEO 2026
Хотя саму TF-IDF поисковики напрямую не используют, инструменты на её основе остаются полезными:
1. Текстовый аудит страниц. Загружаете URL вашей страницы и URL ТОП-10 конкурентов в анализатор — получаете таблицу терминов с TF-IDF весами. Те слова, которые у конкурентов есть, а у вас нет (или TF-IDF сильно ниже) — это ваши «смысловые пробелы». Часто именно их добавление поднимает позиции на 5-15 пунктов без других изменений.
2. Выявление тематической полноты. Если по запросу «выбор токарного станка» у конкурентов в ТОПе встречаются термины «суппорт», «револьверная головка», «шпиндель», «передняя бабка», а у вас — только «токарный станок» и «выбор», ваш текст недостаточно глубокий. Поисковик это «чувствует» через LSI и эмбеддинги даже без TF-IDF.
3. Проверка переоптимизации. Если TF-IDF одного-двух слов в вашем тексте резко выше медианы ТОП-10 — это сигнал переспама. Тургенев и аналогичные сервисы используют TF-IDF именно для этой проверки. Слишком высокая «значимость» одного слова = неестественный текст.
4. Подбор расширенной семантики. Анализаторы на TF-IDF показывают, какие связанные слова чаще всего встречаются вместе с вашим главным запросом в ТОПе. Это готовый список для расширения семантического ядра и работы с подзаголовками H2/H3.
5. Контент-планирование. При написании новой статьи TF-IDF-анализ ТОПа сразу даёт каркас: какие термины нужно обязательно использовать, какие H2-подзаголовки разворачивать, какие смежные темы упоминать.
Чего делать не нужно: пытаться «вписать TF-IDF под Яндекс/Google». Точные значения формулы публичные поисковики не используют (у них BM25 + нейросети), а абсолютные TF-IDF числа из сторонних анализаторов имеют ценность только в сравнении, не сами по себе.
Мифы и типичные ошибки
Миф 1. «TF-IDF — это устаревший метод, и его не нужно знать»
Знать нужно — это база, на которой выросло всё остальное. Без понимания TF-IDF трудно правильно использовать BM25, LSI, эмбеддинги и текстовые анализаторы. Не использовать — да, в продакшен-поиске. Изучать — обязательно.
Миф 2. «Можно посчитать TF-IDF страницы и понять её позицию в Яндексе»
Нельзя. Во-первых, Яндекс использует не TF-IDF, а свои модификации BM25 + нейросети. Во-вторых, IDF зависит от коллекции — у Яндекса коллекция «весь рунет», у анализатора — небольшая выборка. В-третьих, текстовая релевантность — лишь один из десятков факторов ранжирования.
Миф 3. «Чем выше TF-IDF — тем лучше»
Слишком высокая TF-IDF одного слова — сигнал переспама, и современные поисковики это ловят. Оптимум — соответствие медиане ТОП-10, не максимуму.
Миф 4. «TF-IDF учитывает синонимы»
Не учитывает. Это чисто статистическая формула без понимания смысла. Для работы с синонимами нужны LSI или эмбеддинги, а лучше — современные нейросетевые модели.
Ошибка 1. Считать TF-IDF в одном анализаторе и переносить выводы на другой. У каждого анализатора своя коллекция, свои значения IDF, своя логика нормализации. Цифры разных сервисов несопоставимы.
Ошибка 2. Брать топ-1 по TF-IDF в своей нише как «эталон». Топ-1 может быть переоптимизирован, может находиться там за счёт ссылок или бренда, а не за счёт текстовых сигналов. Берите медиану ТОП-10, не максимум.
Ошибка 3. Игнорировать TF-IDF полностью. Несмотря на устаревание формулы, текстовые анализаторы на её основе остаются полезным диагностическим инструментом. Отказываться от них — терять простой источник идей для улучшения текста.
Связь с другими понятиями
- BM25 — прямой преемник TF-IDF. Решает три главных недостатка: учитывает длину документа, добавляет насыщение по частоте, устойчив к манипуляциям.
- LSI — надстройка над TF-IDF (использует её как входной признак для SVD-разложения). Пытается ввести смысл туда, где TF-IDF видит только статистику.
- Эмбеддинги — современная замена статистических методов нейросетевыми. Понимают смысл, синонимы, контекст. Часто работают в паре с BM25 в гибридном поиске.
- Релевантность — общая концепция совпадения страницы с запросом. TF-IDF — один из исторических способов её количественной оценки.
- Семантическое ядро — список запросов для оптимизации. TF-IDF-анализаторы помогают расширить ядро тематическими словами.
Чек-лист: использование TF-IDF в SEO-работе
- Не пытайтесь «оптимизировать под TF-IDF» в чистом виде — современные поисковики используют BM25 и нейросети.
- Используйте TF-IDF-анализаторы (Megaindex, JustText, Pixel) для поиска смысловых пробелов в тексте.
- Сравнивайте свою страницу с ТОП-10, не с топ-1 — медиана надёжнее.
- Обращайте внимание на «недостающие термины» — это готовый список для расширения текста и H2/H3.
- Не накручивайте плотность — высокий TF-IDF одного слова = сигнал переспама.
- Используйте TF-IDF для проверки на переоптимизацию (Тургенев и аналоги).
- Не делайте окончательных выводов только по TF-IDF — это лишь один из десятков факторов.
- Понимайте формулу — это база для понимания всех современных текстовых алгоритмов.
Главное за 30 секунд
TF-IDF — формула 1972 года, которая первой математически выразила идею «важное слово часто встречается в документе и редко — в коллекции». На ней выросла вся современная текстовая релевантность. Сегодня в чистом виде в поисковиках почти не используется — её заменил BM25, решивший главные недостатки (отсутствие учёта длины и линейный рост по частоте). Но текстовые анализаторы на основе TF-IDF (Megaindex, JustText, Тургенев) остаются полезными для диагностики «смысловых пробелов» в текстах и проверки на переспам. Знать TF-IDF обязательно — это база, без которой не понять ни BM25, ни эмбеддинги, ни современные нейросетевые подходы к релевантности.