Лемматизация: основные принципы и методы

Анатолий Кузнецов
Анатолий Кузнецов
SEO-оптимизатор с 20-летним стажем. Автор блога hozyindachi.ru о продвижении и доработке сайтов.

Лемматизация: основные принципы и методы

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

Что такое лемматизация

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

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

В поисковых системах лемматизация применяется дважды: при индексации документов и при обработке запроса. Текст страницы разбивается на слова, каждое приводится к лемме, и в индекс попадают именно леммы. Запрос проходит ту же процедуру. Дальше сопоставление идёт между леммами, а не между исходными написаниями. Поэтому запрос «купить теплицу» находит страницу, где написано «теплицы в наличии».

Лемматизация и стемминг: в чём разница

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

Признак Стемминг Лемматизация
Метод Отсечение по правилам Морфологический разбор со словарём
Результат Основа, часто не слово Существующая словарная форма
Часть речи Не определяется Определяется
Нерегулярные формы Обрабатываются неверно Обрабатываются корректно
Скорость Очень высокая Ниже, нужен словарь
Точность на русском Средняя, много ошибок Высокая

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

Омонимия: главная сложность

Идея приведения к начальной форме звучит просто ровно до момента, когда одна словоформа принадлежит разным словам. «Стекла» — родительный падеж от «стекло» или прошедшее время от «стечь»? «Мыла» — от «мыло» или от «мыть»? «Три» — числительное или форма от «тереть»?

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

Практическое следствие: контекст вокруг ключевого слова помогает системе правильно его разобрать. Фраза, вырванная из связного текста и вставленная в перечисление, разбирается хуже, чем то же слово в нормальном предложении. Это ещё один аргумент против списков ключей, замаскированных под текст.

Почему не нужно вписывать все словоформы

Существует живучая привычка, доставшаяся от практик пятнадцатилетней давности: вписать ключ во всех падежах, чтобы «поиск нашёл по любой форме». Это не работает.

Если и текст страницы, и запрос приводятся к леммам до сопоставления, то с точки зрения индекса «теплица», «теплицы» и «теплицам» — одна и та же единица. Вписав слово в шести падежах, вы не добавили шесть разных сигналов. Вы шесть раз повторили один и тот же, увеличив плотность вхождений и приблизившись к порогу переспама.

Есть и отдельная ловушка — «прямое вхождение» коммерческого запроса в неестественной форме. Конструкции вида «купить теплица Москва недорого» появляются ровно из желания сохранить точную форму запроса. Они портят и восприятие текста человеком, и оценку качества страницы, при этом ничего не давая на уровне морфологии: система всё равно разберёт слова по леммам, но зафиксирует неестественность.

Практика Что даёт на самом деле Как правильно
Вписывать ключ во всех падежах Повышение плотности одной леммы Употреблять слово в естественных формах
Сохранять форму запроса вопреки грамматике Кривые фразы и риск переспама Писать грамотно, форма роли не играет
Считать вхождения по точному написанию Искажённую оценку плотности Считать по леммам
Добавлять синонимы «для морфологии» Путаницу между разными задачами Синонимы нужны для полноты темы

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

Как это связано с оценкой релевантности

Текстовое ранжирование в упрощённом виде работает так: для каждой леммы запроса система считает, насколько часто она встречается в документе относительно её распространённости в языке, где именно встречается и как леммы расположены относительно друг друга. Отсюда три следствия.

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

Расстояние между леммами учитывается. Если слова запроса стоят рядом и в естественном порядке, сигнал сильнее, чем если они разбросаны по абзацам. Практический приём: ключевую мысль формулируйте цельной фразой в заголовке и первом абзаце.

Зоны документа весят по-разному. Одна и та же лемма в заголовке, подзаголовке и теле текста вносит разный вклад. Это делает бессмысленным подсчёт общей плотности: важно не сколько раз, а где.

Практический разбор: пересчёт текста по леммам

Шаг Действие Что обычно выясняется
1 Привести запросы группы к леммам Из сорока запросов получается 8-12 уникальных лемм
2 Разобрать текст страницы и посчитать частоты Слово встречается втрое чаще, чем казалось
3 Сравнить набор лемм с конкурентами из топа В тексте нет терминов, которые есть у всех
4 Проверить распределение по зонам Главных лемм нет в подзаголовках и анкорах
5 Убрать избыточные повторы Текст читается тяжелее, чем нужно

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

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

Где ещё пригодится лемматизация

  • Кластеризация семантики. Приведение запросов к леммам схлопывает варианты, отличающиеся только формами. Список из пяти тысяч запросов часто превращается в несколько сотен смысловых групп.
  • Поиск каннибализации. Сравнение страниц по наборам лемм показывает, какие материалы конкурируют за одну тему.
  • Анализ анкоров. «Теплицу» и «теплицы» — один анкор по сути, хотя в выгрузке это две разные строки.
  • Проверка страниц каталога. Помогает найти категории, где название товара не встречается ни в одной форме, кроме заголовка.
  • Минус-слова. При работе с контекстной рекламой минус-слова учитываются с учётом словоформ, и лишний минус в одной форме отсекает целый пласт нужных показов.

Чего делать не стоит

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

Частые вопросы

Если поиск понимает словоформы, важна ли форма ключа в заголовке? Для сопоставления с запросом практически нет. Пишите заголовок в грамматически естественной форме: он лучше воспринимается людьми, а это влияет на кликабельность в выдаче.

Работает ли лемматизация с опечатками? Это разные механизмы. Опечатки обрабатывает исправление запросов, лемматизация имеет дело с корректно написанными формами. Ошибочные написания на странице размещать не стоит — исправление работает на стороне запроса, а не документа.

Как поиск обрабатывает слова, которых нет в словаре? Новые слова, названия брендов и профессиональные термины разбираются по вероятностным моделям на основе окончаний и контекста. Точность ниже, поэтому редкие термины полезно употреблять в связных предложениях, а не изолированно.

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

Влияет ли лемматизация на подсчёт уникальности текста? Часть сервисов работает с нормализованными формами, часть — с точными, поэтому их оценки расходятся. Ориентироваться стоит не на процент, а на то, есть ли в тексте содержание, которого нет у других.

Чеклист

  • Привести семантику посадочной страницы к леммам и получить реальный словарь темы.
  • Разобрать текст страницы по леммам и посчитать частоты по нормализованным формам.
  • Найти леммы, которые есть у конкурентов из топа и отсутствуют у вас.
  • Проверить наличие главных лемм в заголовке, подзаголовках и первом абзаце.
  • Убрать повторы одной леммы там, где они мешают чтению.
  • Переписать фразы с нарушенной грамматикой, оставшиеся от «прямых вхождений».
  • Проверить, употребляются ли специфичные термины в связном контексте, а не списком.
  • Сравнить анкоры внутренних ссылок по леммам, чтобы увидеть настоящее распределение.
  • Проверить списки минус-слов рекламных кампаний на слишком общие леммы.
  • Отказаться от инструментов, считающих плотность без морфологического разбора.

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

Если нужно SEO-оптимизатор Анатолий Кузнецов — помогу вывести сайт в топ Яндекса и удержать позиции.

Увеличьте позиции и продажи вашего сайта

Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:

Анатолий Кузнецов — SEO-оптимизатор

Остались вопросы по продвижению?

Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.

Связаться со мной →

1 комментарий к “Лемматизация: основные принципы и методы”

  1. Отличная статья! Спасибо вам. Только вы не прикрепили инструмент по лемматицзации.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 Нажимая «оставить комментарий» вы принимаетеправила конфиденциальности 

Прокрутить вверх