Текстовое ранжирование в Яндексе, подход TF*IDF. А не изменилась ли формула? - блог СЕО ПРЕСС
мая
05

Текстовое ранжирование в Яндексе, подход TF*IDF. А не изменилась ли формула?

Текстовое содержание документа сайта – один из четырех наиболее весомых факторов, влияющих на ранжирование в поисковых системах, в частности, в Яндексе. Поисковые системы при расчете текстовой релевантности документа запросу обычно используют TF*IDF подход, основанный на оценке важности употребления слова в контексте документа. Произведение TF*IDF определяет уровень соответствия документа запросу, где множитель TF представляет собой прямую частоту вхождения термина в документ, а IDF – обратную частоту документа относительно запроса. В классическом случае для термина t[i] частоты TF и IDF определяются следующим образом.
расчет tf в подходе tf*idf
Где ni количество вхождений термина t[i] в документ, а знаменатель представляет собой общую длину документа. Т.е. в классическом случае TF – плотность вхождения термина в документ.
расчет idf в подходе tf*idf
Где |D| – общее количество документов (в базе поисковой системы), а в знаменателе представлено число документов (в базе поисковой системы), содержащих термин t[i]. Таким образом, чем реже употребляется слово в базе поисковой системы, тем выше у него обратная частота IDF.

Современные поисковые системы обычно используют различные модификации классической формулы. В частности Яндекс, как было получено посредством методики Миныча, в 2006-2007 годах в качестве прямой и обратной частоты вхождения термина в документ использовал
подходе tf*idf в яндексе
Где niколичество вхождений термина t[i] в документ, nmax – количество вхождений самого частотного термина в пределах документа, TotalLemms – общее количество терминов в коллекции, т.е. длина поисковой базы Яндекса в словах, CF[i] – количество вхождений термина t[i] в поисковую базу, а величину p[i] часто называли весом слова. Если немного пораскинуть мозгами, то можно заметить, что в формуле прямой частоты рулит встречаемость термина в документе, т.е. чем чаще мы употребляем продвигаемый запрос, тем выше текстовая релевантность. Максимальная текстовая релевантность относительно термина t[i] достигается тогда, когда количество вхождений запроса t[i] сравнивается с самым частотным ni= nmax. Анализ формулы также показывает, что плотность вхождения ключевых слов в содержание документа никоим образом не влияет на ранжирование.


В период использования этой формулы Яндексом в подходе TF*IDF для текстового ранжирования ресурс текстовой релевантности был практически неограничен. Достаточно было написать огромный «естественный» текст на тему ключевых слов,  увеличив, таким образом, автоматически количество вхождений продвигаемых запросов естественным образом, и позиции по ним сразу шли вверх.

В последнее время по некоторым весьма конкурентным запросам стали заметны следующие тенденции в текстовом содержании документов, находящихся на первых строках выдачи:

1)  Стали появляться документы с огромными псевдо-естественными текстами и высокой плотностью содержания в них продвигаемых запросов (некоторые даже настолько увлекаются сочинением виртуозных текстов, которые невозможно читать, что попадают под санкции Яндекса);
2) Кроме того, стали хорошо себя чувствовать и небольшие тексты с высокой плотностью содержания ключевых запросов.

Эти тенденции наталкивают на мысли, а не поменялась ли у Яндекса формула для расчета прямой частоты TF? Может быть опять рулит старая добрая плотность ключевых запросов? Давайте проанализируем формулу TF из доклада Яндекса, представленного на РОМИПе 2006:
tf в яндексе

Где ni – количество упоминаний термина t[i] в документе, DocLength – длина документа в словах (включая тег Title), k1, k2 – некоторые постоянные числовые коэффициенты. Анализ формулы показывает:

1) Чем выше плотность вхождения термина в документ, при фиксированной длине документа, тем больше TF и выше текстовая релевантность документа этому запросу.
2) Чем больше длина документа, при фиксированной плотности вхождения запроса в документ, тем выше TF, а, следовательно, и текстовая релевантность.

Сделанные из анализа выводы неплохо согласуются с замеченными тенденциями в текстовом содержании документов, находящихся среди лидеров в поисковой выдаче Яндекса по конкурентным запросам, неправда ли? Если предположить, что в Яндексе при расчете текстовой релевантности на основании подхода TF*IDF, действительно, используется подобная формула для TF, то следующие рекомендации помогут увеличить текстовую релевантность вашей страницы продвигаемому запросу.

  • «Золотое» правило продвижения: один запрос – одна страница становится еще более актуальным в такой модели для TF, поэтому старайтесь еще более жестко ему следовать.
  • Пишите объемные «естественные» тексты, насыщенные ключевыми словами.
  • Несмотря на то что при фиксированной длине документа рулит плотность продвигаемых запросов, не стоит делать ее заоблачной. Вероятнее всего Яндекс имеет в своем распоряжении «механизм» отлова переоптимизированных страниц, либо ему в этом помогут ваши конкуренты. Плотности до 10% будет вполне достаточно, чтобы превзойти конкурентов в текстовой составляющей и не попасть под фильтр. Кроме того формула для прямой частоты TF устроена так, что, начиная с некоторого значения, увеличение плотности практически не дает вклад в текстовую релевантность.

P.S.: Кстати, сегодня обнаружил, что мой эксперимент по измерению длины учитываемого тега Title безнадежно устарел. Похоже теперь Яндекс учитывает очень большое количество слов (или символов) в Титуле, в общем, во всем старается походить на Google.

P.S.S.: Зачитался СЕО Пресс? Подпишись на RSS.

Любопытно к прочтению:

Понравилось? Подпишись на обновление через: Rss E-mail

Оставить комментарий:

Комментарии:

  • Евгений говорит:
    29.05.2012 | 15:22

    А расскажите про коэффициенты, почему k1, k2 – некоторые постоянные числовые коэффициенты
    почему не 1 коэффициент

    И если можно, то хотелось бы новенькую актуальную статью на эту тему ;)

  • Алексей говорит:
    26.09.2010 | 18:11

    Вопросик по CF и TotalLemms – не совсем понятно как это дело рассчитывается.

    CF – вхождение леммы в коллекцию. В некоторых документах лемма может встречаться да хоть бы и по 30 раз. Как собсно происходит подсчет?
    Пример: В 1 документе лемма встречается 5 раз, во 2 – 3 раза, в 3 – 7 раз.
    CF равен:
    а) 5 + 3 + 7
    б) 3

    Надеюсь понятно о чем речь :) Ну и про TotalLemms также интересно узнать что, да как…

  • носорожка говорит:
    19.10.2009 | 10:21

    Прикольно! Физмат вспомнил, ууу)))
    Со второй формулой все понятно. А вторую понял так, что, чем больше документов в базе яндекса по продвигаемому запросу, тем сложнее быть более релевантным по нему в глазах пс. Вот, наверное, поэтому и ввели такую штуку, как траст. А то выходит такая ситуация-сайт а и сайт б имеют уникальные и одинаковые математически точно оптимизированные статьи+одинаковое кол-во внешних ссылок. Как же такие ранжировать (особенно, когда подобных документов десятки). Вот и вводится на помощь траст ранк типа *Ага, у сайта А история в кэше уже годы, ресурсики ссылаются побелее…полезай-ка ты повыше*. Значит к общей формуле какая-нито ботва примешивается))

  • Денис
    говорит:
    18.08.2009 | 16:54

    Алексей, прозевал ваш коммент, кароче получается так

    n[i]/(DocLength*(k[2]+(n[i]+k[1])/DocLength))=ro[i]/(ro[i]+k[2]+k[1]/DocLength)

    т.е. при фиксированной плотности ro[i]=n[i]/DocLength, чем больше DocLength тем меньше выражение k[1]/DocLength, а, следовательно, тем меньше знаменатель, т.е. тем выше TF и текстовая релевантность. Вы, видимо, путаете плотность вхождений с количеством :)

  • Алексей говорит:
    16.07.2009 | 15:13

    Выносим DocLength:

    n[i]/(DocLength*(k[2]+(n[i]+k[1])/DocLength))

    И что должно было произойти? :) Результат будет все равно прежним.

    Поправьте меня пожалуйста, если я заблуждаюсь

  • Денис
    говорит:
    16.07.2009 | 13:29

    Алексей, не поняли просто, знаменатель будет уменьшаться, вынесите DocLength в знаменателе за скобку, тогда все понятно станет

  • Алексей говорит:
    16.07.2009 | 12:21

    Стоит наверно заметить, что формула была представлена в докладе на РОМИПе 2006 для системы atr, а не стандартного алгоритма Яндекса.

    Соглашусь, с уважаемым автором блога, что повышение вхождения леммы при фиксированной длине документа дает повышенный TF и при достижение n[i]=DocLength практически равна 1 (0.995)

    А вот на счет увеличения длины документа при фиксированной плотности вхождения запроса, либо я не понял, либо Вы не правы :) Знаменатель у нас растет (DocLenght увеличили), а числитель остается прежним (фиксированным). В данном случае TF как раз наоборот уменьшается.

  • Александр говорит:
    09.06.2009 | 08:40

    формула про титл не только устарела но и стала новой мне так кажеться – щас длина вообде не проблема для яши – он выдирает из титла нужные пассажи для релевантного запроса… хотя иногда и такого не бывает

  • Олег говорит:
    26.05.2009 | 09:54

    Да что тут понимать. Формулы простенькие. Любой школьник осилит. Не говоря уже про первый курс…

  • Generalissimo говорит:
    10.05.2009 | 17:27

    Мда, мудрости много, но что-то все это вызывает сомнения. Мексбой любит паранаучные исследования проводить :) насколько это соответствует реальному положению дел – не знает никто :)

  • Dabster говорит:
    08.05.2009 | 12:39

    а что делать если я математику не учил и вообще гуманитарий? я ничего не понимаю из этих иероглифов )))) «если это слово ругательное – попрошу его ко мне не применять…»

  • Дмитрий 24 говорит:
    06.05.2009 | 01:13

    Млин, формула просто круть! Я конечно думал, что подобное используется, но чтобы так все было заморочено?!!?

    + по-поводу «тенденций в текстовом содержании документов, находящихся среди лидеров в поисковой выдаче Яндекса по конкурентным запросам» На мой взгляд тут БОООЛЬшая «засада» с трастом, ибо зачастую на старых доменах текста в разы меньше, чем на более новых, а находятся они (новые) ниже. Поэтому плотность-плотностью, но это не всегда играет большую роль =( ИХМО.