Что такое калькулятор TF-IDF?
TF-IDF (от англ. Term Frequency — Inverse Document Frequency, то есть «частота термина — обратная частота документа») — это числовая мера, которую применяют в информационном поиске, поисковых системах и анализе текста. Она показывает, насколько важно конкретное слово для отдельного документа на фоне всей коллекции документов (так называемого корпуса). С помощью этого калькулятора вы вводите текст документа, интересующий вас термин, общее число документов в корпусе и количество документов, в которых этот термин встречается. После этого инструмент рассчитывает частоту термина (TF), обратную частоту документа (IDF) и итоговый вес TF-IDF.
Как пользоваться калькулятором
- Документ: вставьте текст документа, который хотите проанализировать.
- Термин: укажите слово или словосочетание, вес которого нужно оценить.
- Размер корпуса: общее число документов в вашей коллекции (\(N\)).
- Документы с термином: сколько документов содержат этот термин хотя бы один раз.
Калькулятор подсчитывает, как часто термин встречается в вашем документе, делит это число на общее количество слов, а затем учитывает, насколько редко термин попадается во всём корпусе.
Разбор формулы
Классическая формула TF-IDF выглядит так:
$$\begin{gathered} \text{TF-IDF} = \text{TF} \times \text{IDF} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} \text{TF} &= \dfrac{\text{count of }\text{Term}\text{ in }\text{Document}}{\text{total words in }\text{Document}} \\[0.6em] \text{IDF} &= \ln\!\left(1 + \dfrac{\text{Corpus Size}}{\text{Docs with Term} + 1}\right) \end{aligned} \right. \end{gathered}$$- TF = (сколько раз термин встречается в документе) ÷ (общее число слов в документе)
- IDF = \(\log(N \div \text{число документов, содержащих термин})\)
- TF-IDF = \(\text{TF} \times \text{IDF}\)
Высокий вес TF-IDF означает, что термин часто встречается в вашем документе, но редко — во всём корпусе. Это явный сигнал того, что слово отличает данный документ от остальных и несёт для него смысловую нагрузку.
Разбор на примере
Допустим, в вашем документе 100 слов, а термин «маркетинг» встречается 5 раз. В корпусе 1000 документов, и в 100 из них упоминается «маркетинг».
- TF = \(5 \div 100 = 0{,}05\)
- IDF = \(\log(1000 \div 100) = \log(10) = 1\) (по основанию 10)
- TF-IDF = \(0{,}05 \times 1 = 0{,}05\)
Если бы «маркетинг» встречался только в 10 документах, IDF вырос бы до \(\log(100) = 2\), а итоговый вес удвоился бы до \(0{,}10\) — так формула вознаграждает более редкие и характерные термины.
Часто задаваемые вопросы
Зачем в IDF используется логарифм? Логарифм сглаживает влияние крайне редких терминов: благодаря ему единственное вхождение не «перетягивает» весь результат на себя, и значения остаются сбалансированными.
Какое основание логарифма выбрать? Чаще всего применяют основание 10 или натуральный логарифм (\(\ln\)). Основание лишь равномерно масштабирует все результаты, поэтому сравнения внутри одного корпуса остаются корректными.
Что означает нулевой вес? Если термин встречается в каждом документе (\(N\) = числу документов с термином), то IDF превращается в \(\log(1) = 0\), и итоговый вес TF-IDF тоже становится нулевым — такое слово не помогает отличить один документ от другого.