Показатель TF-IDF оценивает значимость слова в документе, на основе данных о всей коллекции документов. Данная мера определяет вес слова за величину пропорциональную частоте его вхождения в документ и обратно пропорциональную частоте его вхождения во всех документах коллекции.
Аббревиатура расшифровывается так: TF - term frequency (частота слова), а IDF - inverse document frequency (обратная частота документа).
Данный показатель используется для решения задач информационного поиска, в частности определения соответствия документа запросу и выявления семантически схожих документов.
Формула расчета TF-IDF
Показатель TF рассчитывается как отношение количества вхождений слова документ к количеству слов в документе.

Благодаря ему точность определения значимости слова не зависит от длины документа. На одном и том же количестве вхождений слова длинный текст будет иметь показатель TF меньше, чем у короткого текста.
Показатель IDF равен логарифму отношения количества документов в коллекции к количеству документов в коллекции, в которых встречается заданное слово.

Учет IDF позволяет снизить вес слов, употребляемых часто (например, предлогов). Показатель логарифма может быть любым, так как изменяет вес каждого слова на одну величину.
Общий же показатель TF-IDF является произведением TF и IDF.

Примеры расчета показателя
Расчет для тематического слова
Для первого примера расчета TF-IDF возьмём документ из 10000 слов в котором слово “пропан” встречается 25 раз, а коллекция состоит из 2 миллионов документов, в 2000 из которых также встречается данное слово.
TF = 25 ÷ 10000 = 0,0025
IDF = lg(2000000 ÷ 2000) = lg(1000 ÷ 1) = 3 (lg - логарифм с основанием 10)
TF-IDF = 0,0025 × 3 = 0,0075
Расчет для союза
Для второго примера расчета TF-IDF возьмём тот же документ из 10000 слов в котором союз “но” встречается 30 раз, а коллекция по-прежнему состоит из 2 миллионов документов, в 200000 из которых также встречается данное слово.
TF = 30 ÷ 10000 = 0,003
IDF = lg(2000000 ÷ 200000) = lg(10 ÷ 1) = 1 (lg - логарифм с основанием 10)
TF-IDF = 0,003 × 1 = 0,003
Сравнение расчетов
Так как мы использовали идентичные документ и коллекцию, можем сравнить семантический вес слов: 0,0075 > 0,003, следовательно слово "пропан" имеет больше веса, чем союз "но", что справедливо.
Как улучшить показатель TF-IDF
Стоит ли вообще работать с такой старой методикой оценки текстов? Конечно! Алгоритм TF-IDF является основой информационного поиска. Он уже давно интегрирован в формулу ранжирования Яндекс и Google, а теперь и лёг в основу более продвинутых алгоритмов вроде векторного анализа текста.
Не переживайте об использовании стоп-слов в текстах, показатель TF-IDF их успешно фильтрует и без вас.
Старайтесь использовать в тексте слова с наибольшим семантическим весом. Например, это могут быть профессиональные термины вашей тематики.
Убедитесь что в вашем тексте есть слова, делающие его уникальным и релевантным запросам пользователей.
Кстати, мы используем расчет TF-IDF в своем крутейшем инструменте проверки текстовой релевантности, выглядит это так:

Продвигал основные сайты таких компаний как ВТБ, Альфа-Банк, Газпром АГНКС, Технопарк и BMW Борисхоф.
Спикер конференций Optimization в Сколково, Merge в Иннополисе, SEO без воды и многих других.