Стемминг и лемматизация в Python: какой из них использовать?
Опубликовано: 2021-02-09Обработка естественного языка (NLP) — это метод обработки коммуникации, который включает в себя извлечение важных функций из языка. Это прогресс в области искусственного интеллекта, который включает в себя создание интеллектуальных агентов с предыдущим опытом. Предыдущий опыт здесь относится к обучению, которое выполняется на огромных наборах данных, включая текстовые данные из источников, включая социальные сети, веб-скрапинг, формы опросов и многие другие методы сбора данных.
Начальным шагом после сбора данных является очистка этих данных и преобразование в машиночитаемую форму, числовую форму, которую машина может интерпретировать. Хотя процесс преобразования — это совсем другое, процесс очистки — это первый шаг, который необходимо выполнить. В этой задаче по очистке флексия является важным понятием, которое требует четкого понимания, прежде чем переходить к стеммированию и лемматизации.
Оглавление
перегиб
Мы знаем, что текстовые данные состоят из предложений со словами и другими символами, которые могут влиять или не влиять на наши прогнозы. Предложения состоят из слов и часто используемых слов, таких как is, there и, называемых стоп-словами. Их можно легко удалить, сформировав для них корпус, но как насчет разных форм одного и того же слова?
Вы не хотите, чтобы ваша машина рассматривала слова «изучение» и «изучение» как разные слова, поскольку намерение, стоящее за этими словами, остается прежним, и оба они имеют одно и то же значение. Работа с такими случаями является обычной практикой в НЛП, и это известно как перегибание. Это основная идея стемминга и лемматизации с различными подходами. Давайте обнаружим различия между ними и посмотрим, какой из них лучше использовать.
Стемминг
Это один из методов нормализации текста, направленный на уменьшение неоднозначности слов. Основополагающая функция фокусируется на удалении слова «круглое» до основного слова. Это достигается путем удаления префиксов или суффиксов, в зависимости от рассматриваемого слова. Этот метод сокращает слова в соответствии с определенным набором правил.
Полученные слова могут иметь или не иметь каких-либо фактических значащих корневых слов. Его основная цель состоит в том, чтобы формировать группы похожих слов вместе, чтобы можно было оптимизировать дальнейшую предварительную обработку. Например, такие слова, как играть, играть и играть, принадлежат к основному слову «играть». Это также помогает сократить время поиска в поисковых системах, поскольку теперь больше внимания уделяется ключевому элементу.
Необходимо обсудить два случая, касающихся стемминга, т . е. избыточного пропаривания и недостаточного стеблевания . Хотя удаление префиксов и суффиксов из слова решает некоторые проблемы, некоторые слова удаляются больше, чем требуется.
Это может привести к большему количеству мусорных слов, не имеющих значения. Хотя это недостаток стемминга в целом, и если это происходит более резко, это называется чрезмерным стеммингом. Под стеммингом понимается обратное, когда процесс стемминга приводит к очень небольшой разнице в словах.
лемматизация
Другой подход к нормализации текста и преобразованию его в корневые значения — это лемматизация. Это имеет тот же мотив группировки похожих слов-намерений в одну группу, но разница в том, что здесь полученные слова имеют смысл.
Они не удаляются с помощью заранее определенных правил, а формируются с помощью словаря, или мы называем это леммой. Здесь процесс преобразования занимает больше времени, потому что сначала слова сопоставляются с их частями речи, что само по себе является трудоемким процессом.
Это гарантирует, что корневое слово имеет буквальное значение, которое помогает в получении хороших результатов в анализе. Это полезно, когда мы не хотим тратить много времени на очистку данных, а для дальнейшего анализа требуются более чистые данные. Одним из недостатков этого метода является то, что, поскольку он больше фокусируется на грамматике слов, для разных языков потребуются отдельные корпуса, что приведет к обработке все большего количества данных.
Оформить заказ: идеи проектов глубокого обучения для начинающих
Какой из них использовать?
Теперь наступает момент выбора между ними двумя. Очень субъективно выбирать кого-либо, поскольку здесь важную роль играет вариант использования, на который вы ориентируетесь.
Если вы хотите проанализировать фрагмент текста, но время является ограничением, вы можете выбрать определение основы, так как оно выполняет это действие за меньшее время, но с низкой вероятностью успеха, а основы предоставляются алгоритмическим способом, который может не иметь каких-либо ограничений. имея в виду.
Принятие лемматизации дает дополнительное преимущество, заключающееся в получении осмысленных и точных корневых слов, объединенных в разные формы. Если вы можете позволить себе хорошие вычислительные ресурсы с большим количеством времени, то это может быть лучшим выбором. Это должно быть принято там, где мы хотим точного анализа. Это также может быть в случае некоторых методов поиска в поисковых системах, где корневого слова достаточно для получения результатов, которые хочет пользователь.
Реализация Python
Пакет NLTK (Natural Language Tool Kit) представляет собой реализацию Python задач, связанных с НЛП. В этой библиотеке есть все необходимые инструменты, такие как Stemmers. Лемматизаторы, удаление стоп-слов, создание пользовательских деревьев парсеров и многое другое. Он также содержит данные корпуса из известных источников, включенных в сам пакет.
Метод стемминга имеет множество реализаций, но наиболее популярным и старым из них является алгоритм Портера Стеммера. Стеммер Snowball также используется в некоторых проектах. Чтобы лучше понять разницу между стеммингом и лемматизацией, посмотрите на приведенный ниже код и его вывод:
импортировать нлтк
из nltk.stem импортировать PorterStemmer
из nltk.stem импортировать WordNetLemmatizer
word_stemmer = ПортерСтеммер()
лемматизатор = WordNetЛемматизатор()
печать (lemmatizer.lemmatize ('мухи'))
печать (word_stemmer.stem ('мухи'))
Выход:
летать
летать
Первый вывод — от лемматизатора, а второй — от стеммера. Вы можете видеть разницу в том, что лемматизатор выдал корневое слово в качестве вывода, а стеммер просто обрезал слово с конца.
Изучите курсы по науке о данных в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.
Читайте также: Идеи проекта машинного обучения
Заключение
НЛП развивается с каждым днем, и со временем появляются новые методы. Большинство из них сосредоточено на том, как эффективно извлечь нужную информацию из текстовых данных с минимальными потерями и устранить все шумы. Оба метода широко используются. Важно только то, что анализ проводится на чистых данных.
Какие два типа алгоритмов ИИ используются для кластеризации документов?
Иерархическая кластеризация и неиерархическая кластеризация — это два типа алгоритмов ИИ, используемых для кластеризации текстов. Алгоритм иерархической кластеризации разделяет и объединяет документы в соответствии с набором правил. Затем пары кластеров элементов данных иерархии соединяются вместе. Хотя этот метод прост для чтения и понимания, он может быть не таким эффективным, как неиерархическая кластеризация. Когда в данных много ошибок, кластеризация может быть сложной. Неиерархическая кластеризация предполагает слияние и разрушение существующих кластеров для создания новых. Это кластерный подход, который сравнительно быстрее, надежнее и стабильнее.
Предпочтительна ли лемматизация для анализа настроений?
Лемматизация и стемминг — высокоэффективные процедуры. Однако при преобразовании в корневую форму лемматизация всегда дает термин словарного значения. Когда значение термина не имеет решающего значения для исследования, рекомендуется использовать корень. Когда значение слова жизненно важно для анализа, рекомендуется лемматизация. В результате, если бы вам нужно было выбрать один подход для анализа настроений, лучше всего было бы использовать лемматизацию.
Как стемминг и лемматизация используются для кластеризации документов?
Кластеризация документов, также известная как кластеризация текста, представляет собой метод анализа текстовых текстов путем их группировки. Его приложения варьируются от автоматизированного упорядочения документов до извлечения тем и даже быстрого поиска информации. Стемминг и лемматизация используются для уменьшения количества токенов, необходимых для передачи одной и той же информации, что улучшает общую технику. После этого этапа предварительной обработки функции рассчитываются путем измерения частоты каждого токена с последующими наиболее эффективными подходами к кластеризации.