Лемматизация

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

например, бег, бег, бег и бег - это формы одного и того же набора слов, которые связаны через перегиб, с бегом в качестве леммы.

Если вы ищете исходный код, посетите мой Github Repo, где вы также можете найти другие интересные вещи.

В чем разница между стеммингом и лемматизацией?

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

Зачем нужна лемматизация, когда у нас есть стемминг ??

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

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

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

Как мы можем реализовать лемматизацию.

Мы будем реализовывать лемматизацию с помощью библиотеки Wordnet и Spacy.

Давайте сначала обсудим, что такое Wordnet?
WordNet - это большая лексическая база данных английского языка. Существительные, глаголы, прилагательные и наречия сгруппированы в наборы когнитивных синонимов (синсетов), каждый из которых выражает отдельное понятие. Синсеты связаны между собой понятийно-семантическими и лексическими отношениями.
Если вы хотите поиграться с лемматизацией и Wordnet, загляните на этот сайт.

Теперь давайте начнем внедрять его в код и увидеть волшебство.

Скопируйте и вставьте код ниже в Jupyter Notebook.

Если приведенный ниже код дает вам ошибку «Модуль не найден» или если вы не использовали Wordnet перед запуском кода ниже, также. Это загрузит библиотеку.

import nltk
nltk.download(‘wordnet’)

Указывает на размышление.

  • Беги и беги пришли к одному и тому же корню, но беги и беги - нет.
  • go, go go going go были от одного корневого слова, но, к сожалению, они не были преобразованы в корневое слово.
  • цвета преобразованы в цвет

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

Мы также заметили некоторые недостатки в приведенном выше примере.

Что, если мы сможем преодолеть все эти недостатки. Для этого и появилась библиотека Spacy. Он разработан с учетом требований разработчика.

Давайте воспользуемся тем же предложением и лемматизируем его с помощью Spacy.

Скопируйте и вставьте ниже код в Jupyter Notebook.

Если вы столкнулись с проблемой просторной установки, Используйте этот пост для установки.

Ниже представлен вывод следующего кода.

Вуаля! все проблемы решаются за один раз.

Заметили, как мы получаем корневые слова из разных форм слов.

Он также удаляет суффикс, как мы получали от Wordnet.

По моему мнению, Spacy работает лучше, чем WordNet, но это полностью зависит от Dataset, который мы используем.

Если вы обнаружили какие-либо проблемы со статьей, дайте мне знать.