Рассылка
SEOБлогТекстовая оптимизацияTF-IDF и алгоритмы поиска

TF-IDF и алгоритмы поиска

2020-03-05
8733
(77)
TF-IDF и алгоритмы поиска
Содержание

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

Аббревиатура расшифровывается так: TF - term frequency (частота слова), а IDF - inverse document frequency (обратная частота документа).

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

Формула расчета TF-IDF

Показатель TF рассчитывается как отношение количества вхождений слова документ к количеству слов в документе.

Формула расчета TF style=

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

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

Формула расчета IDF

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

Общий же показатель TF-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 в своем крутейшем инструменте проверки текстовой релевантности, выглядит это так:

Сервис проверки текстовой релевнатности со встренным расчетом TF-IDF.
Оцени статью
Илья Горбачев - автор SEO Rocket
Автор статьи
Илья Горбачев
Управляющий партнёр в Rocket Agency.

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

Спикер конференций Optimization в Сколково, Merge в Иннополисе, SEO без воды и многих других.
Комментарии
Ольга
2021-06-26
Здравствуйте! У вас ошибка в примерах вычисления IDF. Например, в примере "Расчет для тематического слова" у вас IDF = lg(2000 ? 2000000), а должно быть: IDF = lg(2000000 ? 2000) в соответствии с вашим же определением: "Показатель IDF равен логарифму отношения количества документов в коллекции к количеству документов в коллекции, в которых встречается заданное слово."
Илья Горбачев
2021-09-14
Опечаточка. Спасибо за бдительность, поправил!
Ева
2022-01-22
Подскажите, я никак не могу понять, что значит "коллекция"? где мы берем данные по ней? это все документы яндекса или откудо мы берем это число? почему нельзя со скринами сделать, откудо берутся цифры
Илья Горбачев
2022-01-30
Под коллекцией понимается поисковый индекс. То есть все документы (страницы и файлы), которые есть в базе поисковой системы и по которым она осуществляет поиск. В русскоязычном Яндексе коллекция больше 83 млн документов, а в русскоязычном Google больше 3 млрд документов.
Оставить комментарий
Отправить

А мы создали закрытый SEO-клуб..

В нем доступны крутые уникальные инструменты и ещё много чего.