Введение в стемминг

Опубликовано: 25 Июля, 2021

Основание - это процесс создания морфологических вариантов корневого / основного слова. Программы стемминга обычно называют алгоритмами стемминга или стеммерами. Алгоритм выделения корня сокращает слова «шоколад», «шоколадный», «шоколадный» до корневого слова, «шоколад» и «поиск», «извлеченный», «извлекает» - до основного слова «извлекать». Создание стеммических элементов - важная часть конвейерного процесса при обработке естественного языка. Вход в стеммер - это токенизированные слова. Как получить эти токенизированные слова? Ну, токенизация предполагает разбиение документа на разные слова. Чтобы подробнее узнать о токенизации и ее работе, обратитесь к статье:

https://www.geeksforgeeks.org/nlp-how-tokenizing-text-sentence-words-works/

 Еще несколько примеров корня слова «нравится»:
-> "лайки"
-> "понравилось"
-> "вероятно"
-> "нравится"


Ошибки в стемминге:
В основном есть две ошибки в постановке ствола:

  • чрезмерное вытеснение
  • подрезание

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

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

Применение стемминга:

  1. Стемминг используется в информационно-поисковых системах, таких как поисковые системы.
  2. Он используется для определения словарей предметной области при анализе предметной области.

Интересный факт : в поиске Google в 2003 году использовалось слово «корень». Раньше поиск по запросу «рыба» не возвращал «рыбалка» или «рыбы».

Некоторые алгоритмы стемминга:

  • Алгоритм Портера Стеммера
    Это один из самых популярных методов стемминга, предложенных в 1980 году. Он основан на идее, что суффиксы в английском языке состоят из комбинации более мелких и простых суффиксов. Этот стеммер известен своей скоростью и простотой. Основные приложения Porter Stemmer включают интеллектуальный анализ данных и поиск информации. Однако его приложения ограничены только английскими словами. Кроме того, группа основ сопоставляется с одной и той же основой, и выходная основа не обязательно является значащим словом. Алгоритмы довольно длинные по своей природе и, как известно, являются старейшими стеммерами.
    Пример: EED -> EE означает «если слово имеет хотя бы одну гласную и согласную плюс окончание EED, измените окончание на EE», поскольку «согласовано» становится «согласен».
 Преимущество: он дает лучший результат по сравнению с другими стеммерами и имеет меньшую частоту ошибок.
Ограничение: морфологические варианты не всегда являются настоящими словами.

  • Ловинс Стеммер
    Это было предложено Ловинсом в 1968 году, когда из слова удаляется самый длинный суффикс, а затем слово перекодируется, чтобы преобразовать эту основу в допустимые слова.
    Пример: сидя -> сидеть -> сидеть
 Преимущество: он быстрый и обрабатывает неправильные формы множественного числа, такие как «зубы», «зуб» и т. Д.
Ограничение: отнимает много времени и часто не формирует слова из основы.

  • Доусон Стеммер
    Это расширение стеммера Lovins, в котором суффиксы хранятся в обратном порядке и индексируются по их длине и последней букве.
 Преимущество: Быстро исполняется и покрывает больше.
Ограничение: это очень сложно реализовать.

  • Кровец Штеммер
    Его предложил в 1993 году Роберт Кровец. Ниже приведены шаги:
    1) Преобразуйте форму множественного числа слова в форму единственного числа.
    2) Преобразуйте прошедшее время слова в его настоящее время и удалите суффикс 'ing'.
    Пример: «дети» -> «ребенок».
 Преимущество: он легкий по своей природе и может использоваться в качестве пре-стеммера для других стеммеров.
Ограничение: неэффективно в случае больших документов.

  • Xerox Stemmer
    Пример:
    • 'дети' -> 'ребенок'
    • 'понял' -> 'понять'
    • 'кто' -> 'кто'
    • 'лучший' -> 'хороший'
  • Н-грамм стеммер
    N-грамма - это набор из n последовательных символов, извлеченных из слова, в котором похожие слова будут иметь большую долю общих n-граммов.
    Пример: «ВВЕДЕНИЕ» для n = 2 становится: * I, IN, NT, TR, RO, OD, DU, UC, CT, TI, IO, ON, NS, S *
 Преимущество: он основан на сравнении строк и зависит от языка.
Ограничение: для создания и индексации n-граммов требуется место, и это неэффективно по времени.

  • Стеммер снежка:

По сравнению с Porter Stemmer, Snowball Stemmer может отображать и неанглийские слова. Так как Snowball Stemmers поддерживает другие языки, его можно назвать многоязычным стеммером. Стеммеры Snowball также импортируются из пакета nltk. Этот стеммер основан на языке программирования Snowball, который обрабатывает небольшие строки и является наиболее широко используемым стеммером. Стеммер Snowball намного более агрессивен, чем Porter Stemmer, и его также называют Porter2 Stemmer. Из-за улучшений, добавленных по сравнению с Porter Stemmer, стеммер Snowball имеет большую скорость вычислений.

  • Ланкастер Стеммер:

Стеммеры Lancaster более агрессивны и динамичны по сравнению с двумя другими стеммерами. Стеммер действительно работает быстрее, но алгоритм действительно сбивает с толку при работе с маленькими словами. Но они не так эффективны, как Snowball Stemmers. Стеммеры Lancaster сохраняют правила извне и в основном используют итерационный алгоритм.

Ссылка: Сравнительное исследование алгоритмов стемминга