Лемматизация – объединение слов с одним и тем же корнем или леммой, но с разными склонениями или производными значения для дальнейшего анализа как элемента. Цель состоит в том, чтобы выявить присутствие слова в любой из его форм в Текстовом блоке (Corpus) и, например, определить частоту его появления.
Например, лемматизировать слова «кошки», «кошек» и «кошка» означает привести к именительному падежу все эти слова и получить «кошка». Лемматизация активно используется в области Обработки естественного языка (NLP).
Лемматизация и стемминг
В отличие от лемматизации, Стемминг (Stemming) выделяет грамматическую основу текста. В случае с "кошкой" он отбрасывает окончание "ой" и генерирует стем "кошк".
Практическое применение
Одним из широко известных приложений лемматизации является поиск информации для поисковых систем. Лемматизация позволяет системам сопоставлять документы по темам, позволяя поисковым системам отображать релевантные результаты и даже расширять их, чтобы включить другую информацию, которая также может оказаться полезной для читателей.
Лемматизация также применяется в кластеризации документов, когда пользователям необходимо находить документы по схожей тематике.
Лемматизация также полезна для улучшения результатов поисковой оптимизации. Поисковые системы, такие как Google, используют эту технологию для предоставления пользователям высокорелевантных результатов. Обратите внимание, что когда пользователи вводят запросы, поисковая система автоматически лемматизирует слова, чтобы понять смысл поискового запроса и дать релевантные и исчерпывающие результаты.
Лемматизация: natasha
Понимаю, заголовок звучит весьма странно, однако natasha – это прекрасная библиотека, пригодная для широкого спектра задач NLP, в том числе для лемматизации. Посмотрим, как элегантно этот модуль позволяет приводить слова в тексте к исходному состоянию. Для начала импортируем необходимые библиотеки:
Импортируем некоторые составляющие:
Инициируем экземпляры Segmentor, который разделяет текст на слова, MorphVocab, содержащий в себе слова-токены наподобие словаря, NewsMorphTagger, описывающий грамматические свойства слова, и NewsSyntaxParser, описывающий роли слов в предложениях:
Создадим текстовый блок. Как видите, библиотека в некой мере ориентирована на анализ новостей:
Сегментируем абзац на предложения и посмотрим на первые два с помощью display(doc.sents[:2]):
Функция display(doc.tokens[:5]) позволит посмотреть первые пять слов:
С помощью морфологии – науке о формах слов, изучим каждое отдельное слово:
Отобразим первые пять слов и их свойства – идентификатор (id), роль в предложении (nsubj – подлежащее), часть речи (noun – существительное), прочие интересные свойства (anim – одушевленное, nom – нарицательный, masc – мужского рода, sing – в единственном числе):
И наконец, лемматизируем текст:
Список получился внушительный, потому выведем только слайс из первых десяти элементов:
Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.
Автор оригинальной статьи: techslang.com
Понравилась статья? Поддержите нас, поделившись статьей в социальных сетях и подписавшись на канал. И попробуйте курсы на Udemy.