Когда я использую каждый?
Кроме того ... зависит ли лемматизация NLTK от частей речи? Было бы точнее, если бы это было так?
Когда я использую каждый?
Кроме того ... зависит ли лемматизация NLTK от частей речи? Было бы точнее, если бы это было так?
Ответы:
Коротко и плотно: http://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html
Целью как создания корней, так и лемматизации является сокращение флективных форм, а иногда и словообразовательных форм слова до общей базовой формы.
Однако эти два слова различаются по своему вкусу. Построение обычно относится к грубому эвристическому процессу, который обрезает концы слов в надежде на правильное достижение этой цели большую часть времени, и часто включает удаление деривационных аффиксов. Лемматизация обычно относится к правильному выполнению действий с использованием словарного запаса и морфологического анализа слов, обычно направленного на удаление только флективных окончаний и возвращение базовой или словарной формы слова, известной как лемма.
Из документов NLTK:
Лемматизация и стемминг - частные случаи нормализации. Они определяют канонического представителя набора родственных словоформ.
Лемматизация тесно связана со стеблем . Разница в том, что стеммер оперирует одним словом без знания контекста и, следовательно, не может различать слова, которые имеют разное значение в зависимости от части речи. Тем не менее, стеммеры, как правило, проще в использовании и работают быстрее, а снижение точности может не иметь значения для некоторых приложений.
Например:
Слово «лучше» имеет лемму «хорошо». Эта ссылка пропущена при поиске по словарю.
Слово «прогулка» является базовой формой для слова «ходьба», и, следовательно, оно совпадает как с основанием, так и с лемматизацией.
Слово «встреча» может быть либо основной формой существительного, либо формой глагола («встречаться») в зависимости от контекста, например, «на нашей последней встрече» или «Мы снова встречаемся завтра». В отличие от стемминга, лемматизация в принципе может выбрать подходящую лемму в зависимости от контекста.
Источник : https://en.wikipedia.org/wiki/Lemmatisation
Есть два аспекта, чтобы показать их различия:
Парадигматический возвращают стебель слова, которые не должны быть идентичны морфологическим корень слова. Обычно достаточно, чтобы связанные слова отображались в одну основу, даже если сама по себе основа не является допустимым корнем, тогда как при лемматизации она вернет словарную форму слова, которая должна быть допустимым словом.
При лемматизации сначала должна быть определена часть речи слова, и правила нормализации будут разными для разных частей речи, в то время как стеммер оперирует одним словом без знания контекста и, следовательно, не может различать слова, которые имеют разные значения в зависимости от части речи.
Ссылка http://textminingonline.com/dive-into-nltk-part-iv-stemming-and-lemmatization
Цель как стемминга, так и лемматизации - уменьшить морфологическую изменчивость. Это контрастирует с более общими процедурами «объединения терминов», которые также могут касаться лексико-семантических, синтаксических или орфографических вариаций.
Настоящая разница между стеммингом и лемматизацией состоит из трех частей:
Построение сокращает словоформы до (псевдо) основы, тогда как лемматизация сокращает словоформы до лингвистически достоверных лемм. Это различие очевидно для языков с более сложной морфологией, но может не иметь значения для многих приложений IR;
Лемматизация имеет дело только с изменчивой изменчивостью, тогда как основание может также иметь дело с деривационной дисперсией;
Что касается реализации, лемматизация обычно более сложна (особенно для морфологически сложных языков) и обычно требует какой-то лексики. С другой стороны, удовлетворительного останова можно добиться с помощью довольно простых подходов, основанных на правилах.
Лемматизация также может быть подкреплена тегером части речи для устранения неоднозначности омонимов.
Как указал MYYN, основание - это процесс удаления флективных, а иногда и деривационных аффиксов из базовой формы, с которой, вероятно, связаны все исходные слова. Лемматизация связана с получением одного слова, которое позволяет сгруппировать множество изменяемых форм. Это сложнее, чем определение стебля, потому что оно требует учета контекста (и, следовательно, значения слова), в то время как определение корня игнорирует контекст.
Что касается того, когда вы будете использовать один или другой, это вопрос того, насколько ваше приложение зависит от правильного понимания значения слова в контексте. Если вы делаете машинный перевод, вы, вероятно, захотите использовать лемматизацию, чтобы избежать неправильного перевода слова. Если вы выполняете поиск информации по более чем миллиарду документов, причем 99% ваших запросов имеют длину от 1 до 3 слов, вы можете согласиться на поиск корней.
Что касается NLTK, WordNetLemmatizer использует часть речи, хотя вы должны предоставить ее (в противном случае по умолчанию используются существительные). Прохождение «голубь» и «v» дает «нырнуть», а «голубь» и «n» - «голубь».
Объяснение различий между лемматизацией и основанием на примерах:
Лемматизация обрабатывает сопоставление «car» и «cars», а также сопоставление «car» с «автомобилем».
Stemming обрабатывает сопоставление «car» с «cars» .
Лемматизация подразумевает более широкую сферу нечеткого сопоставления слов, которая по-прежнему обрабатывается теми же подсистемами. Это подразумевает определенные методы низкоуровневой обработки внутри движка, а также может отражать инженерные предпочтения терминологии.
[...] Взяв в качестве примера FAST, их механизм лемматизации обрабатывает не только основные варианты слов, такие как единственное и множественное число, но и операторы тезауруса, такие как «горячее» соответствие «теплому».
Это не означает, что другие движки не обрабатывают синонимы, конечно, они это делают, но реализация нижнего уровня может быть в другой подсистеме, чем те, которые обрабатывают базовый стемминг.
ianacl,
но я думаю, что Stemming - это грубый прием, который люди используют, чтобы свести все различные формы одного и того же слова к базовой форме, которая не обязательно должна быть правильным словом сама по себе.
Что-то вроде Porter Stemmer может использовать простые регулярные выражения для устранения общих суффиксов слов
Лемматизация сводит слово к его фактической базовой форме, которая в случае неправильных глаголов может не походить на входное слово.
Что-то вроде Морфа, которое использует FST для приведения существительных и глаголов к их базовой форме.
Стебель просто удаляет или обрезает последние несколько символов слова, что часто приводит к неправильному значению и написанию. Лемматизация учитывает контекст и преобразует слово в его осмысленную базовую форму, которая называется леммой. Иногда одно и то же слово может иметь несколько разных лемм. Мы должны идентифицировать тег части речи (POS) для слова в этом конкретном контексте. Вот примеры, иллюстрирующие все различия и варианты использования:
Создание основы - это процесс удаления последних нескольких символов данного слова для получения более короткой формы, даже если эта форма не имеет никакого значения.
Примеры,
"beautiful" -> "beauti"
"corpora" -> "corpora"
Стебель можно сделать очень быстро.
С другой стороны, лемматизация - это процесс преобразования данного слова в его базовую форму в соответствии со словарным значением слова.
Примеры,
"beautiful" -> "beauty"
"corpora" -> "corpus"
Лемматизация занимает больше времени, чем выделение стеблей.