скачать
Евгений Трофименко, Москва (495) 669-32-81, order2@promosite.ru Использование особенностей языка запросов поиска Яндекса для исследований ВведениеЯндекс – пока что наиболее популярный поисковик в рунете – более других открыт к исследованиям его алгоритмов. Эксперименты в SEO важно не только провести, но и правильно интерпретировать, а в реальности в формирование поисковых результатов вмешивается слишком много факторов. В данной работе рассмотрены особенности работы поиска по текстам ссылок, возможности для изучения трактовки Яндексом многозначных запросов и их расширения, а также элементы учета текстовой релевантности – основываясь только на результатах выдачи, без создания экспериментальных страниц. ^ Как известно, поиск производится по текстам ссылок и текстам страниц. Если в содержимом документа содержится достаточное количество слов запроса, документ отображается как найденный по текстам, с включением фрагментов документа в сниппет – описание результата выдачи. Если же документ не содержит слов необходимых запроса, или считается не проиндексированным (временно отсутствующим на сервере, выдающем ошибку, выпавшим из базы Яндекса, запрещенным в файле robots.txt, новым для робота Яндекса), но слова запроса содержатся в тексте ссылок на этот документ – он может находиться с надписью «найден по ссылке» (т.н. НПС) (кроме случая, когда сайт находится в Яндекс-каталоге и НПС-слова есть в описании сайта – сниппет базируется на описании сайта из ЯК) Некоторые операторы поиска Яндекса по-разному применяются к текстам ссылок и текстам страниц. ^ Для целей исследования часто возникает необходимость найти НПС-результаты с нужными словами в ссылках, например, для изучения особенностей ранжирования по редким и частотным словам. Как бы то ни было, а найти в собственных базах такое не всегда возможно. Оператор «-» (минус) является недокументированным [1]. Документированный оператор исключения «~~» (двойная тильда) работает в пределах документа, а «минус» всегда можно было использовать для исключения слов в пределах контекстных ограничений. Сейчас в описании языка есть оператор «~» (одинарная тильда) – он заявлен как оператор исключения в пределах предложения, и, похоже, не работает. Так или иначе, а оператор «-» (минус) работает только в применении к контенту документа, т.е., к проиндексированным текстам. К текстам ссылок он не применяется. Поэтому можно задать запрос вида слово –слово и найти все результаты, которые найдены по ссылкам или по текстам, содержащим слово, и все найденные по текстам результаты будут убраны из выдачи – тогда останутся только НПС результаты по слову (исключение – сайты из Яндекс-каталога, но и их можно убрать добавлением –cat=9000000). Таким образом довольно просто можно отыскивать НПС-результаты с интересующими нас словами в тексте ссылок. Примеры:
^ При использовании операторов исключения «~» и «~~», напротив, можно избавиться от присутствия НПС-результатов в выдаче. Даже если мы пытаемся исключить из документа заведомо отсутствующую в нем абракадабру, найденные по ссылке результаты исчезают из выдачи. Например: ^ – на 1 месте www.canon.ru НПС, всего 19 результатов. Сайт /(1 1) производителя /(1 1) Canon /(1 1) Inc ~~jcaenhcqawv – найдено 18 страниц, НПС результат пропадает. По-видимому, это происходит из-за того, что алгоритм поиска (и выдачи НПС) по тексту ссылок принципиально не принимает во внимание контент страницы. Т.е., алгоритм, выдавая НПС, как бы не знает ничего о содержимом документа, хотя документ практически всегда проиндексирован и Яндекс знает, что исключенной абракадабры там нет. Но в реальности он делает вид, что не знает этого, и при исключении абракадабры убирает НПС-результаты «на всякий случай». Это относится именно к тому случаю, когда в тексте документа нет фразы запроса. С помощью этого способа можно оценивать долю НПС-результатов в выдаче. Например:
Общая тенденция – для длинных поисковых запросов доля НПС-результатов в выдаче выше. Это нормальная ситуация, и ее можно использовать для оценки степени коммерциализированности низкочастотных запросов. Т.к. при оптимизации на страницах появляются целевые слова и фразы – они уже не будут находиться как НПС. Логично считать, что с НПС-результатами не работали оптимизаторы, следовательно, и конкуренция по этим запросам должна быть ниже. Для детальных исследований более точные данные (количество найденных сайтов и страниц) можно получить с использованием Яндекс.XML. ^ Летом 2008 года Яндекс сообщил [4] об изменениях в алгоритме переформулировки запросов, которые предполагают сильные изменения, включающие добавление новых слов в запрос: Одну и ту же поисковую потребность пользователь может быть выразить разными запросами. Например, запрос «гамбургские гостиницы» кажется эквивалентным по смыслу запросу «гостиницы Гамбурга». *** Теперь поиск Яндекса (версия «Магадан») еще учитывает следующие отношения: а) некоторые типы переходов из одной части речи в другую («гамбург» -> «гамбургский»); б) транслитерация («mazda» -> «мазда»); в) аббревиатуры (МГУ -> Московский государственный университет). Как именно происходит эта переколдовка запроса? По смыслу, некоторые слова могут быть заменены (в случае замены транслитерации или аббревиатуры), в некоторых случаях запрос может быть расширен с переходом между частями речи (недвижимость в Москве -> московская недвижимость). Поскольку эти изменения затрагивают большую часть коммерческих запросов, важно знать точно, как это происходит. Например, может оказаться, что дополненный/измененный запрос – менее конкурентный и легкий для продвижения. Для того, чтобы исследовать особенности переформулировок, используем операторы исключения. Например, из результатов поиска по запросу мазда исключаем все результаты, содержащие слово мазда. Получаем все результаты с переформулировкой – новыми словами и частями речи. Последовательно исключая различные переформулировки, можно найти их все. ^ Еще в сентябре 2008 особенность оператора исключения состояла в том, что исключалась форма слова во всевозможных падежах и числах, но без переформулировок. В результате, задавая запрос мазда ~~мазда можно было получить результаты, содержащие mazda – переформулировку. Аналогично, запрос недвижимость в москве расширялся с использованием слов московкая, московскии [sic!], московск вместо москвы. Не все из этих слов подсвечивались в выдаче, что говорит об использовании разных алгоритмов в основном поиске и в подсветчике выдачи. Ауди переводилось как audi, audis, аудь. Все это приводится по памяти. Однако на момент написания этого доклада оператор «~~» уже исключает все формы слова, включая переформулировки. В результате выдача по мазда ~~мазда пустая. ^ Оператор «минус» исправно исключает выбранную форму слова, оставляя переформулировки (мазда –мазда показывает результаты c mazda). Однако, неудобство состоит в том, что он не работает по текстам ссылок, и очень часто вместо тех текстовых результатов выдачи, которые содержат интересующие нас новые переформулировки, мы получаем выдачу, состоящую их НПС-результатов (видимо, достаточно релевантных). ^ Выход – использование оператора «!» (восклицательный знак) для обозначения точной формы слова, которая исключается оператором «~~». В этом случае мы вынуждены записывать полный список всех возможных форм слова для исключения. Например, мазда ~~!(мазда|мазду|мазде|мазд) дает искомые результаты с mazda. Кстати, операторы исключения не применяются к поиску по URL, поэтому в любом случае выдача может содержать результаты с переформулировкой в URL найденной страницы. Однако иногда этот оператор не позволяет посмотреть все дополнительные слова в расширениях запроса (исключает доп. слова), лучше для страховки проверять его оператором «минус». ^ Из особенностей переформулирования запросов можно отметить, что при исследовании транслитерации - в основном находятся односторонне переформулировки: русскоязычным «мазда, ауди» соответствуют англоязычные варианты, но обратные переформулировки таким способом не находятся.
Однако обратные переформулировки есть – по запросам mazda, audi в выдаче подсвечиваются русскоязычные слова мазда, ауди. Вероятно, это связано с выбором главного слова из набора «синонимов» и с особенностями работы операторов исключения, которые постоянно меняются. В любом случае, самым надежным методом для исследования переформулировок было бы создание специальных страниц, содержащих в том числе и разные части речи, с изучением подсветки разных терминов при поиске интересующих запросов в пределах сайта. ^ Колдунщик – механизм переформулировки запросов, известный с 2004 года и описанный авторами алгоритма [3]. Перед исполнением запрос пользователя изменялся специальным образом, индивидуальным для каждого запроса. Если исключить редкие случаи, когда в запрос добавляются «новые» слова или усиливается влияние отдельных слов, то работу колдунщика можно было свести к расстановке между словами «расстояний» - операторов контекстных ограничений и отмене влияния стоп-слов. Расстояния между словами в [3] важны для выбора последовательностей слов (пассажей), которые находятся в документе не слишком далеко друг от друга и будут учтены в дальнейшем. При этом «не слишком далеко» для каждой пары слов в запросе было индивидуальным – расстояния изменялись от «в пределах документа» до «строго по порядку». Дальнейшая оценка релевантности документа запросу производилась с учетом выбранных пассажей и «весов» слов. ^ Почти все используемые в колдунщике операторы были описаны в [1,2] и представляли собой обычные операторы ограничения расстояния между словами. Хотя эти расстояния теоретически могли быть любыми, реально использовался набор из «стандартных» 7 расстояний. Примерная относительная «популярность» этих операторов приведена ниже – по массиву запросов клиентских сайтов Корпорации РБС [6]
В середине октября 2007 года Яндекс отменил показ переколдовки в ссылке на сохраненную копию в результатах поиска [7], однако она все еще работала, и отработка операторов отключена не была. Реальные расстояния между словами можно было подобрать – используя 7 «любимых» Яндексом вариантов с помощью перебора можно было найти тот вариант, для которого выдача по «заколдованному вручную» запросу совпадала с выдачей Яндекса. Так продолжалось недолго. ^ Весной 2008 в релизе «Магадан» разработчики сообщили [5], что Мы смягчили фильтрацию отбора документов для ранжирования, что привело к улучшению ранжирования по запросам, для которых релевантные документы содержат слова запроса далеко друг от друга *** Наиболее заметных улучшений мы смогли достичь в обработке многословных запросов. И действительно, отработка запросов с подставленными «любимыми» операторами перестала давать совпадения с реальной выдачей. Реальная отработка запросов Яндексом изменилась. Возьмем запрос (+скачать +реферат) и исключим оператором «~~» из результатов поиска все страницы, где два слова запроса находятся на некотором расстоянии друг к другу (от одного слова до всего документа):
Данные получены с использованием Яндекс.XML Мы видим, что при увеличении расстояния между словами, которые мы вычищаем из выдачи, число найденных страниц уменьшается постепенно от 16 миллионов до нуля. Это означает, что запросу +скачать +реферат соответствуют документы с очень большим расстоянием между словами в том числе, и именно эти документы остаются в выдаче после исключения «близких» пар слов. Если бы запрос скрытно от внешнего мира «переколдовывался» стандартным образом, то установленные контекстные ограничения ограничивали бы расстояние «сверху», и не позволяли бы находиться парам, в которых слова находятся далеко друг от друга. В этом случае в какой-то момент при увеличении расстояния в приведенных запросах число найденных документов должно было в какой-то момент резко обнулиться. Именно это расстояние и соответствовало бы «новой переколдовке». Однако по этому запросу находятся даже документы, в которых слова «скачать» и «реферат» находятся на очень больших расстояниях друг от друга. Больше того, если мы не будем использовать «плюсик» в исходном запросе, например: (скачать реферат) ~~(+скачать && +реферат) Мы обнаружим, что по такому запросу находится 283204 документов, содержащих только одно из слов запроса. Все это полностью согласуется с сообщением разработчиков об изменениях, позволяющих находить документы, «которые содержат слова запроса далеко друг от друга». И косвенно свидетельствует о том, что переколдовка с расстановкой операторов между словами уже не используется. Вместо этого актуален алгоритм, в котором слова ищутся в пределах всего документа, но в зависимости от расстояния между словами – вносят разный вклад в конечную общую релевантность. ЗаключениеУглубление знаний о наиболее популярном поисковике рунета (в данный момент - Яндексе) невозможно без постановки экспериментов – это ясно даже и ежу. В отличие от других поисковиков, Яндекс позволяет проводить исследования и без создания специальных экспериментальных страниц. Надеюсь, что приведенные примеры были полезны – как для отбора объектов эксперимента (НПС-результатов), дали возможность более детального исследования переформулировок отдельных клиентских запросов и уровня конкуренции по ним, позволили отказаться от более неактуальных представлений об алгоритме Яндекса. Литература
http://help.yandex.ru/search/?id=481939
http://help.yandex.ru/search/?id=481938#context
Яндекс на РОМИП-2004. Некоторые аспекты полнотекстового поиска и ранжирования в Яндекс http://romip.ru/romip2004/07_yandex.pdf
http://webmaster.ya.ru/replies.xml?item_no=1030 5 О смягчении фильтрации найденных документов Подлетая к "Магадану" http://webmaster.ya.ru/replies.xml?item_no=645 6 Статистика по операторам колдунщика Яндекса http://blog.promosite.ru/comments.php?533 7 Отмена показа переколдовки http://forum.searchengines.ru/showthread.php?t=173853
|