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

Для чего нужна лемматизация
Лемматизация применяется во множестве известных областей (список не исчерпывающий):
- Поисковые системы используют лемматизацию, чтобы связывать поисковый запрос пользователя и контент страниц в интернете.
- Веб-мастера используют лемматизацию, чтобы определить и разместить на странице все запросы во всех словоформах по одной их нормализованной форме. Если не сделать лемматизацию семантического ядра, есть риск не учесть фразы в других менее популярных словоформах помимо очевидных сочетаний.
- Социологи лемматизируют транскрипты важных речей политиков (например, послание президента к федеральному собранию), чтобы наиболее качественно посчитать тональность текста и встречаемость уникальных важных терминов.
- Инструменты статистики поисковых запросов (например, Вордстат) группируют поисковые запросы пользователей по лемматизированным словам, чтобы при проработке ключевых слов рекламодатель не пропустил важные для его бизнеса ключевые слова.
- Специалисты по контекстной рекламе и SEO лемматизируют семантическое ядро перед тем, как составить его частотный словарь, чтобы быстро проанализировать самые встречаемые понятия в тексте и подобрать релевантные посадочные страницы.
- Они же могут использовать его для более простой процедуры — удаление дублей ключевых фраз
Морфологические библиотеки
Помимо лемматизации, морфологические библиотеки позволяют производить другие операции со словоформами:
- Получение всех форм слова
- Получение грамматической информации для слова (часть речи, падеж, спряжение и т.д.)
- Изменение формы слова в соответствии с заданными грамматическими характеристиками
PhpMorphy
phpMorphy — библиотека морфологического анализа, реализованная на php
PyMorphy2
pymorphy2 — Аналогичная по сути библиотека для языка Python. Проект использует регулярно обновляемый открытый корпус и словарь OpenCorpora.
MyStem
Первая версия mystem была создана при активном участии одного из основателей Яндекса Ильи Сегаловича в 1996 году. Алгоритм лемматизации был внедрен в поисковый движок и это стало одним из ключевых факторов коммерческого успеха Яндекса. Проект продолжает развитие, есть версии для нескольких языков и консольная утилита для Windows.
!SEMTools дает возможность использовать утилиту прямо в Excel:

Лемматизация в Excel
Для простого маркетолога без знаний программирования использование консольных утилит и тем более языков программирования — скорее хобби, подкрепляемое энтузиазмом, нежели прямая обязанность и часть ежедневного процесса работы.
Однако вместе с этим лемматизация находит применение во многих процессах, связанных с семантическим ядром — его кластеризацией, составлением частотного словаря, n-gram анализом, удалением неявных дублей и т.д.
Поэтому я решил создать инструмент, который бы решал эту задачу и сделал ее доступной людям без навыков программирования.
Так родился инструмент-лемматизатор в надстройке !SEMTools. С ним можно в пару кликов произвести лемматизацию семантического ядра любого размера.

Для лемматизации в !SEMTools используется готовый словарь популярных пар слово-лемма. Словарь составлен мной и регулярно пополняется новыми парами. Поскольку он довольно увесистый (10 Мб), он не вшит в саму надстройку, а скачивается с этого сайта при запуске процесса, если уже не открыт локально.

Если не хотите скачивать файл каждый раз при запуске — сохраните его на компьютере и открывайте заранее перед запуском процедуры лемматизации. Макрос убедится, что словарь открыт, и не будет обращаться на сайт. Так можно использовать функции лемматизации в оффлайне и не беспокоиться об отсутствии интернета.
Функция работает очень быстро, обрабатывая десятки тысяч строк текста в секунду. Это позволяет не беспокоиться и обрабатывать огромные семантические ядра даже на не самых мощных ПК.
Но есть и небольшие ограничения — слова приводятся к их леммам только будучи в нижнем регистре, поэтому рекомендуется предварительно изменить их регистр. Пунктуация тоже не игнорируется и рассматривается как часть слов. Поэтому перед лемматизацией нужно удалить все символы кроме букв.
Если не скачивается словарь лемм
Иногда у некоторых пользователей надстройки при запуске макроса возникают ошибки, т.к. автоматически не скачивается словарь лемм.
В таких случаях рекомендуется скачать его самостоятельно (не меняя название), открыть файл параллельно в фоне и уже после этого производить процедуру лемматизации.
Скачать словарь: http://semtools.guru/dl/ru/lemms.xlsb
С лемматизацией тесно связаны такие процедуры, как удаление стоп-слов и упорядочивание слов по алфавиту внутри ячейки для удаления неявных дублей. В примере выше видно, что все 4 фразы по сути идентичны, разница лишь в словоформах, порядке слов и наличии предлога «в» в половине фраз. Все эти процедуры также выполнимы в Excel с помощью моей надстройки.
Нужно преобразовать слова в их изначальную форму?
!SEMTools поможет решить задачу за пару кликов!