Как стандартизировать слова в предварительной обработке текста для понимания естественного языка

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

Что такое стемминг?

Мы используем Stemming, чтобы удалить суффиксы из слов и получить так называемую основу слова. Слова «нравится», «вероятно» и «нравится», например, все приводят к их общей основе слова «нравится», которая может использоваться как синоним для всех трех слов. Таким образом, модель НЛП может понять, что все три слова чем-то похожи и используются в сходном контексте.

Stemming позволяет нам стандартизировать слова по их базовой основе независимо от их склонения, что помогает многим приложениям, таким как кластеризация или классификация текста. Поисковые системы широко используют эти методы, чтобы давать лучшие результаты независимо от словоформы. До того, как в 2003 году в Google были внедрены основы слов, поиск по слову рыба не включал веб-сайты, посвященные рыбам или рыбалке.

Стеммер Портера — один из самых популярных методов стемминга, который был предложен в 1980 году. Он основан на идее о том, что суффиксы в английском языке состоят из комбинации более мелких и простых суффиксов. Он известен своими эффективными и простыми процессами, но также имеет ряд недостатков.

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

from nltk.stem.porter import * 
porter_stemmer = PorterStemmer() 
print(porter_stemmer.stem('alumnus')) 
Out: 'alumnu'

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

Чрезмерное и недооценивание

Всякий раз, когда наш алгоритм связывает несколько слов с одним и тем же корнем, даже если они не связаны между собой, мы называем это перебором корней. Несмотря на то, что слова «универсальный», «университет» и «вселенная» родственны и происходят от одного и того же корневого слова, их значения сильно отличаются друг от друга. Когда мы вводим эти слова в хорошую поисковую систему, результаты поиска должны сильно отличаться и не должны рассматриваться как синонимы. Мы называем такую ​​ошибку ложным срабатыванием.

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

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

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

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

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

Это то, что вы должны взять с собой

  • Stemming и Lemmatization — это методы, которые помогают нам в предварительной обработке текста для обработки естественного языка.
  • Оба они помогают сопоставить несколько слов с общим корневым словом.
  • Таким образом, эти слова обрабатываются одинаково, и модель узнает, что их можно использовать в схожих контекстах.

Если вам нравится моя работа, подпишитесь здесь или загляните на мой сайт Data Basecamp! Кроме того, Medium позволяет вам бесплатно читать 3 статьи в месяц. Если вы хотите иметь неограниченныйдоступ к моим статьям и тысячам замечательных статей, не стесняйтесь получить членство за 5 долларов США в месяц, нажав на мою реферальную ссылку: https://medium.com/@niklas_lang/membership