О словоформах Яндекса

Русский язык, конечно, велик и могуч, однако, он еще и неимоверно сложен, и часто наше интуитивное представление идет вразрез с формальным. Например, формально, «лучший» — это словоформа слова «хороший», поскольку является его превосходной степенью. А «красивый» и «красиво», в большинстве случаев, разные слова, поскольку, «красивый» — прилагательное, а «красиво» — наречие.

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

Машинные словоформы

В русском языке несколько сотен тысяч слов, каждое из которых имеет по несколько десятков словоформ, причем каждая из них имеет полдюжины свойств (род, число, падеж, форма и т.д). Например, любое прилагательное может находиться в семи падежах, в краткой форме, в трех родах, двух числах, в сравнительной и превосходной степени, быть одушевленным или нет. В итоге, прилагательное может иметь аж 8×4 x 2×2 + 1 = 129 cловоформ, причем, больше половины из них будут иметь разные окончания.

В некоторых бумажных морфологических словарях, чтобы сэкономить место группируют слова по окончаниям в так называемые морфологические группы. Например, слова «великий» и «могучий» имеют в одинаковых словоформах одинаковые окончания. Эти группы нумеруют и для слова указывается только его начало общее для всех словоформ и его морфологическая группа: «Могучий. могуч*, группа 21».

В большинстве электронных баз поступают также. На вариант с сохранением всех словоформ отдельно нужно около 500 МБ памяти, на второй (с группами) — около 10ти. В принципе, 500 МБ для сервера не так уж много, однако морфология Яндекса писалась где-то лет десять назад. А в это время для нескольких сотен серверов покупка такого объема памяти могла обойтись в копеечку.

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

Словоформы и синонимы

Хотя зачем гадать? Словоформы одного слова выделяются в результатах поиска жирным. Однако вместе с ними выделяются еще и синонимы. Поэтому мы не можем сказать определил ли поисковик слова в снипете и запросе как словоформы или попросту счел их синонимами. В Яндексе оператор плюс отключает подсветку синонимов, оставляя только подстветку словоформ. Убедиться в этом можно набрав запросы «гостиницы Одессы» (слово «отель» будет подсвечено) и «+гостиницы Одессы» (слово «отель» не будет подсвечено).

Большинство современных морфологических баз ведут свое начало из морфологического словаря Зализняка, в котором для экономии места были введены морфологические группы. Однако группировка в нем, обладает некоторыми «артефактами», например, глаголы и их причастия и деепричастия (купить/купивший) — это словоформы, а глаголы совершенного и несовершенного (делать/сделать) вида — нет.

Так или иначе, я проверил Яндекс на все известные мне «артефакты» базы АОТ.ru, с которой я работал, и все из них Яндекс содержал. Правда, Яндекс использует базу «синонимов», в том числе и для того чтобы исправить разницу в человеческом и машинном восприятии словоформ. Например, при запросе «делать дымовую шашку» подсвечивается и слово «сделать», однако стоит добавить плюс перед словом «делать», и подсветка «сделать» исчезает, а «делать» остается.

Словоформы Google

Английская морфология не так могуча и велика: у слов всего несколько словоформ. Поэтому оптимизация памяти не оправдывает группировку слов. И, вполне возможно, что для общности кода с английской версией русская морфология Google написана без использования морфологических групп и поэтому была лишена «артефактов» Яндекса.

Google в отличие от Яндекса по запросу «сделанный» не ищет слово «сделать». Например, наберите «как правильно сделанный клизму» в Google и Яндекс. Другой пример: отключить подсветку слова «сделать» по запросу «делать» в Google у меня никак не получилось, хотя почти всегда Google подсвечивает только словоформы. Следовательно, для Google «делать» и «сделать» — это словоформы, а не что-то вроде синонимов как у Яндекса.

Как бы парадоксально это бы ни звучало, русская морфология Google реализована правильнее чем у Яндекса. И вся ирония в том, что это следствие английского происхождения Google. Морфология Google именно «правильнее», но не факт, что «лучше». У кого выдача релевантнее — спорный вопрос. Ровно как и то, что должно выдаваться по запросу «как правильно сделанный клизму».

Разница в ранжировании

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

Сейчас нет метода общепринятой оценки разницы выдачи и программных средств для его расчета, а вручную оценить выдачу по нескольким сотням запросов — проблематично. Этим способом доказать, что существует разница в ранжировании разных типов словоформ, нет. Можно найти этому только косвенные подтверждения.

Число найденных страниц, если запрашивать машинные словоформы, отличается не больше чем на 1%, а если запрашивать словоформы-синонимы, обычно, разница в 10-30%.

  • «сделать яндекс стартовой страницей» — 5 млн.
  • «сделал яндекс стартовой страницей» — 5 млн.
  • «делать яндекс стартовой страницей» — 7 млн.
  • «делал яндекс стартовой страницей» — 7 млн.

Также сравнить изменения в выдаче в Яндексе и Google. Разницы в выдаче по запросам «как правильно сделать клизму» и «как правильно делать клизму» в Google почти нет, а в Яндексе только 2 страницы остались в первой десятке и то значительно поменяли свои позиции.

Существуют некоторые слова, которые подсвечиваются странным образом. Например, для слова купить словоформы его несовершенного вида (покупать) подсвечиваются и при наличии плюса. Другими словами, Яндекс ввел для этого слова исключение в поиске, хотя для Яндекс WordStat это два разных слова. Если же выдача по синонимам и словоформам была бы аналогичной, не было никакого смысла делать исключение для этого слова.

Слово «купить» довольно часто встречается в запросах (40 млн. показов в месяц по Вордстат), и дополнительные действия для улучшения его ранжирования вполне вероятны. Однако непонятно каким образом улучшается выдача от введения прямой связи слов «купить» и «покупать», допустим, разработчикам или асессорам виднее. Нам нужно найти еще одно исключение, в котором улучшение выдачи очевидно.

И это исключение «варить» и «варка». По Вордстату у «варить» миллион показов, а у «варки» не более 100 тысяч. Однако, если к статье не приложит руку сеошник, то она будут называться «варка кофе», а не «как варить кофе?». Здесь польза для ранжирования очевидна.

Исключения подтверждают правила и с большой степенью уверенности можно сказать, что морфологические словоформы ранжируются выше, чем словоформы-синонимы.

ВЧ запросы

Подсветка синонимов отключается не только при использовании плюса. Если мы наберем «гостиницы Москвы», то подсветки отелей не будет, а если «гостиницы Москвы центр» или «гостиницы Одессы» — то она включится. Следовательно, существует определенный порог, после которого синонимы в выдачу не включаются, чтобы ее не ухудшить. Этот порог, скорее всего, зависит от числа страниц в индексе либо релевантности первых страниц выдачи, а не от частотности запроса.

Правила

Глаголы совершенного и несовершенного вида не словоформы

  • Актуально только для Яндекса.
  • Сделать≠делать
  • Исключения: купить и покупать, выщипывать и выщипать, отправлять и отправить

Глаголы, причастия и деепричастия — словоформы друг друга

  • Актуально только для Яндекса.
  • Сделать=сделаю=сделал=сделавший=сделанный=...
  • Поскольку причастия склоняются по роду, числу и падежу, а также залогу, то у глаголов получается больше 100 словоформ по Яндексу. А например, у слова купить (из-за исключений) — их еще больше. Причастия можно успешно использовать, чтобы улучшить ранжирования глаголов. Например, «купленный», «купившие» — словоформы слова купить.

Разные части речи не могут быть слоформами друг-друга

  • Актуально для Яндекса и Google
  • Покупать≠покупка≠покупатель
  • Красавец≠красивый
  • Сильный удар≠сильно ударить
  • Исключения для Яндекса: варить и варка, а также причастия, деепричастия и глаголы

Все словоформы существительных одного рода.

  • Актуально для Яндекса и Google
  • Красавец≠красавица
  • Повар≠повариха

Превосходная степень прилагательных — одна из словоформ

  • Актуально только для Яндекса
  • Красивый=Красивейший=Красивейшая=Красивейшую=...
  • Хороший=лучший
  • Надежный=Надежнейший=...
  • Однако, прекрасный≠красивый (это просто синонимы)

Сравнительная степень прилагательных — одна из словоформ

  • Актуально для Яндекса и Google
  • Красивый=красивее
  • Надежный=надежнее
  • Исключение для Google: хороший≠лучше. Эту словоформу Google относит к превосходной степени (лучший).

У Google группировка слов происходит чисто по интуитивному сходству слов, а не по формальным правилам русского языка. Это хорошо видно по «хороший» и «лучше», для всех остальных прилагательных сравнительная степень отнесена к обычной, а не превосходной форме.

Как было уже сказано, почти наверняка релевантность словоформ-синонимов ниже, чем морфологических словоформ. Поэтому, оптимизируя посадочную страницу, старайтесь использовать словоформы именно в машинном представлении, а не в человеческом. Особенно это актуально, когда вы вставляете популярное уточнение в шаблон сайта, ведь таким образом вы изменяете несколько сотен или даже тысяч страниц.

P.S.

Указывая на сходство структуры морфологической базы Яндекса и словаря Зализняка, я никоим образом не намекал на плагиат. По принципу Анны Карениной способы правильной реализации чего-либо похожи. Более того, принцип структурирования чего-либо не может быть объектом авторского права.

(Голосов: 5, Рейтинг: 5)