Калькулятор TF-IDF

Вставьте несколько документов — по одному в строке или через пустую строку — и посмотрите, какие слова важнее всего в каждом. TF-IDF даёт высокий вес словам, которые часто встречаются в документе, но редко в остальных, и почти ноль словам, которые есть везде.

Документов: 3

Документ 1 слов: 7

СловоПовторовTFIDFTF-IDF
на10,14291,09860,1569
ковре10,14291,09860,1569
спала10,14291,09860,1569
кошка20,28570,40550,1158
сидела10,14290,40550,0579
и10,14290,40550,0579

Документ 2 слов: 4

СловоПовторовTFIDFTF-IDF
собака10,251,09860,2747
будки10,251,09860,2747
сидела10,250,40550,1014
у10,250,40550,1014

Документ 3 слов: 11

СловоПовторовTFIDFTF-IDF
кошки10,09091,09860,0999
собаки10,09091,09860,0999
домашние10,09091,09860,0999
животные10,09091,09860,0999
а10,09091,09860,0999
нас10,09091,09860,0999
старше10,09091,09860,0999
всех10,09091,09860,0999
и10,09090,40550,0369
кошка10,09090,40550,0369

Работает в браузере: всё, что вы вводите, никуда не отправляется.

Как пользоваться

  1. Вставьте документы: по одному в строке или переключитесь на абзацы, если документ занимает несколько строк.
  2. Выберите варианты TF и IDF. По умолчанию — классические: повторы ÷ слова и ln(N ÷ df).
  3. Смотрите таблицу каждого документа: слова отсортированы по TF-IDF, рядом — повторы, TF и IDF.

Как это работает

Для каждого слова w в документе d:

  • TF = число повторов w в d (или его вариант);
  • df = число документов, где есть w; N = число документов;
  • IDF = ln(N ÷ df);
  • TF-IDF = TF × IDF.

Слова с одинаковым весом идут в том порядке, в каком впервые встретились в документе.

Пример

Три документа: «кот сидел дома», «пёс сидел дома», «кот спал дома». N = 3, в каждом документе 3 слова, поэтому у каждого слова, встреченного один раз, TF = 1 ÷ 3 = 0,3333.

Для документа 2:

  • «пёс» есть в 1 документе: IDF = ln(3 ÷ 1) = 1,0986, TF-IDF = 0,3333 × 1,0986 = 0,3662;
  • «сидел» есть в 2 документах: IDF = ln(3 ÷ 2) = 0,4055, TF-IDF = 0,1352;
  • «дома» есть во всех 3: IDF = ln 1 = 0, TF-IDF = 0.

Значит, лучше всего документ 2 описывает слово «пёс».

Советы

  • Для осмысленного IDF берите больше документов: при двух документах у каждого слова IDF будет либо ln 2, либо 0.
  • Сначала уберите шаблонный текст (подписи, шапки), иначе он заберёт весь вес.
  • Чтобы посчитать слова в одном тексте, используйте частотный анализ слов.

Частые вопросы

Что такое TF-IDF?

Вес слова в документе: частота слова (TF — как часто оно встречается в этом документе), умноженная на обратную документную частоту (IDF — насколько оно редкое среди всех документов). Выше всего оцениваются слова, частые в одном документе и редкие в других.

Какие формулы используются?

TF — число повторов, число повторов, делённое на число слов в документе (по умолчанию), или 1 + ln(повторы). IDF — ln(N ÷ df), где N — число документов, а df — число документов со словом, или сглаженный вариант ln((1 + N) ÷ (1 + df)) + 1, который scikit-learn использует по умолчанию. Логарифм натуральный.

Почему у слов вроде «и» ноль?

При IDF = ln(N ÷ df) у слова, которое есть в каждом документе, df = N, а ln 1 = 0, поэтому его TF-IDF равен 0 при любом числе повторов. Со сглаженным IDF оно получает небольшой положительный вес.

Как текст делится на слова?

Слово — подряд идущие буквы и цифры; апостроф внутри слова сохраняется, остальная пунктуация разделяет слова, всё переводится в нижний регистр. Стемминга и стоп-слов нет, поэтому «кошка» и «кошки» — разные слова.

Почему мои числа не совпадают со scikit-learn?

TfidfVectorizer берёт число повторов со сглаженным IDF, а потом нормирует вектор каждого документа к длине 1 (L2). Выберите «Число повторов» и сглаженный IDF — получите его числа до нормировки.

Ещё в разделе «Разработчикам»

Все инструменты раздела: Разработчикам ·Обновлено 4 ноября 2026 г.

Настройки конфиденциальности

Google Analytics показывает нам, какими инструментами пользуются и работают ли они. Он может ставить cookie. Ваш выбор сохраняется в этом браузере.