Jaka jest różnica między lematyzacją a wyprowadzaniem?

137

Kiedy używam każdego?

Ponadto ... czy lematyzacja NLTK jest zależna od części mowy? Czy nie byłoby dokładniejsze, gdyby było?

TIMEX
źródło
2
To jest ponad moją głowę, ale dlaczego istnieje tag Pythona?
Jimmy
7
@jimmy: otagowany python b / c mówi o bibliotece Python nltk
ealdent
2
Oto świetny artykuł, który odpowiada dokładnie na to pytanie
Jakub
2
Zobacz także: Stemmers vs Lemmatizers
hippietrail

Odpowiedzi:

133

Krótkie i zwarte: http://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html

Celem zarówno tematyzacji, jak i lematyzacji jest zredukowanie form fleksyjnych i czasami pokrewnych form wyrazu do wspólnej formy bazowej.

Jednak te dwa słowa różnią się pod względem smaku. Stemming zwykle odnosi się do prostego procesu heurystycznego, który odcina końce słów w nadziei na prawidłowe osiągnięcie tego celu przez większość czasu i często obejmuje usuwanie afiksów derywacyjnych. Lemmatyzacja zwykle odnosi się do poprawnego wykonywania czynności przy użyciu słownictwa i analizy morfologicznej słów, zwykle mającej na celu usunięcie tylko końcówek fleksyjnych i zwrócenie bazowej lub słownikowej formy słowa, która jest znana jako lemat.

Z dokumentacji NLTK:

Lematyzacja i podstawianie to szczególne przypadki normalizacji. Identyfikują kanonicznego przedstawiciela zestawu pokrewnych form słów.

miku
źródło
ciekawi cię, co średnia długość lematyzacji mówi nam o dokumencie?
sAguinaga
1
To nie w pełni odpowiada na pytanie. Nie wyjaśniasz, kiedy użyć których. Oba mogą służyć do normalizacji, ale często wybrana opcja jest kompromisem między precyzją a szybkością.
dzieciou
1
@dzieciou, dzięki za wkład - być może będziesz mógł edytować odpowiedź; i spróbuję również dodać więcej kontekstu.
miku
82

Lemmatisation jest ściśle związana wynikające . Różnica polega na tym, że stemmer operuje na jednym słowie bez znajomości kontekstu, a zatem nie może rozróżniać słów, które mają różne znaczenia w zależności od części mowy. Jednak trzpienie są zwykle łatwiejsze do wdrożenia i działają szybciej, a zmniejszona dokładność może nie mieć znaczenia w niektórych zastosowaniach.

Na przykład:

  1. Słowo „lepsze” ma jako lemat „dobre”. Ten odsyłacz jest pomijany przez wyprowadzanie, ponieważ wymaga przeszukiwania słownika.

  2. Słowo „spacer” jest podstawową formą słowa „chodzenie”, dlatego jest ono dopasowane zarówno pod względem znaczenia, jak i lematyzacji.

  3. Słowo „spotkanie” może być podstawową formą rzeczownika lub formą czasownika („spotkać się”) w zależności od kontekstu, np. „Na naszym ostatnim spotkaniu” lub „Spotkamy się ponownie jutro”. W przeciwieństwie do wyprowadzania, lematyzacja może w zasadzie wybrać odpowiedni lemat w zależności od kontekstu.

Źródło : https://en.wikipedia.org/wiki/Lemmatisation

Mukesh Chapagain
źródło
25

Istnieją dwa aspekty, które pokazują ich różnice:

  1. Stemmer powróci łodygę słowa, które nie muszą być identyczne z morfologicznej korzenia słowa. Zwykle wystarczy, że pokrewne słowa są mapowane na ten sam temat, nawet jeśli temat sam w sobie nie jest prawidłowym rdzeniem, podczas gdy w lematyzacji zwróci on słownikową formę słowa, które musi być ważnym słowem.

  2. W lematyzacji najpierw należy określić część mowy słowa, a reguły normalizacji będą różne dla różnych części mowy, natomiast stemmer operuje na jednym słowie bez znajomości kontekstu, a zatem nie może rozróżniać słów, które mają różne znaczenia w zależności od części mowy.

Źródła http://textminingonline.com/dive-into-nltk-part-iv-stemming-and-lemmatization

Liang Zhang
źródło
18

Celem zarówno tematyzacji, jak i lematyzacji jest zmniejszenie zmienności morfologicznej. Kontrastuje to z bardziej ogólnymi procedurami „łączenia terminów”, które mogą również odnosić się do odmian leksykalno-semantycznych, syntaktycznych lub ortograficznych.

Prawdziwa różnica między wyprowadzaniem a lematyzacją jest trojaka:

  1. Stemming redukuje formy wyrazów do (pseudo) tematów, podczas gdy lematyzacja redukuje formy wyrazów do lematów poprawnych językowo. Ta różnica jest widoczna w językach o bardziej złożonej morfologii, ale może być nieistotna dla wielu zastosowań IR;

  2. Lematyzacja zajmuje się tylko wariancją fleksyjną, podczas gdy procesowanie może również zajmować się wariancją derywacyjną;

  3. Pod względem implementacji lematyzacja jest zwykle bardziej wyrafinowana (szczególnie w przypadku języków złożonych morfologicznie) i zwykle wymaga pewnego rodzaju leksyki. Z drugiej strony, satysfakcjonujące korzenie można osiągnąć stosując raczej proste podejście oparte na regułach.

Lemmatyzacja może być również poparta znacznikiem części mowy w celu ujednoznacznienia homonimów.

Jan Snajder
źródło
13

Jak zauważył MYYN, procesowanie jest procesem usuwania afiksów fleksyjnych, a czasem pochodnych, do formy podstawowej, do której prawdopodobnie odnoszą się wszystkie oryginalne słowa. Lemmatyzacja polega na uzyskaniu pojedynczego słowa, które pozwala zgrupować kilka form fleksyjnych. Jest to trudniejsze niż wyprowadzanie, ponieważ wymaga wzięcia pod uwagę kontekstu (a tym samym znaczenia słowa), podczas gdy przerywanie ignoruje kontekst.

Jeśli chodzi o to, kiedy użyjesz jednego lub drugiego, jest to kwestia tego, jak bardzo twoja aplikacja zależy od poprawnego zrozumienia słowa w kontekście. Jeśli wykonujesz tłumaczenie maszynowe, prawdopodobnie potrzebujesz lematyzacji, aby uniknąć błędnego tłumaczenia słowa. Jeśli wyszukujesz informacje z ponad miliarda dokumentów, a 99% zapytań obejmuje od 1 do 3 słów, możesz zadowolić się rodzicielstwem.

Jeśli chodzi o NLTK, WordNetLemmatizer używa części mowy, chociaż musisz ją podać (w przeciwnym razie domyślnie rzeczowniki). Podanie go „gołąb” i „v” daje „nurkowanie”, podczas gdy „gołąb” i „n” daje „gołębicę”.

ealdent
źródło
12

Oparte na przykładzie wyjaśnienie różnic między lematyzacją a wyprowadzaniem:

Lemmatyzacja obsługuje dopasowywanie „samochodu” do „samochodów” wraz z dopasowywaniem „samochodu” do „samochodu”.

Trzpienie uchwytów dopasowujące „samochód” do „samochodów” .

Lematyzacja implikuje szerszy zakres rozmytego dopasowywania słów, które jest nadal obsługiwane przez te same podsystemy. Implikuje pewne techniki przetwarzania niskiego poziomu w silniku, a także może odzwierciedlać preferencje inżynierów dotyczące terminologii.

[...] Biorąc za przykład FAST, ich silnik lematyzacyjny obsługuje nie tylko podstawowe odmiany słów, takie jak liczba pojedyncza i mnoga, ale także operatory tezaurusa, takie jak „gorące” dopasowanie „ciepłe”.

Nie oznacza to, że inne silniki nie obsługują synonimów, oczywiście, że tak, ale implementacja niskiego poziomu może znajdować się w innym podsystemie niż te, które obsługują bazowanie.

http://www.ideaeng.com/stemming-lemmatization-0601

majom
źródło
4

Stemming tylko usuwa lub rodzi kilka ostatnich znaków słowa, często prowadząc do nieprawidłowego znaczenia i pisowni. Lematyzacja uwzględnia kontekst i konwertuje słowo do jego znaczącej formy bazowej, która nazywa się Lematem. Czasami to samo słowo może mieć wiele różnych lematów. Powinniśmy zidentyfikować znacznik Part of Speech (POS) dla słowa w tym konkretnym kontekście. Oto przykłady ilustrujące wszystkie różnice i przypadki użycia:

  1. Jeśli lematyzujesz słowo „ Opieka ”, zwróci „ Opieka ”. Jeśli wyłączysz, zwróci „ samochód ” i to jest błędne.
  2. Jeśli lemmatyzujesz słowo „ paski ” w kontekście czasownika , zwróci „ pasek ”. Jeśli lemmatyzujesz go w kontekście rzeczownika , zwróci „ Stripe ”. Jeśli po prostu go powstrzymasz, zwróci po prostu „ Strip ”.
  3. Otrzymasz te same wyniki, niezależnie od tego, czy lematyzujesz, czy wytropisz słowa, takie jak chodzenie, bieganie, pływanie ... chodzić, biegać, pływać itp.
  4. Lematyzacja jest kosztowna obliczeniowo, ponieważ obejmuje tabele przeglądowe, a co nie. Jeśli masz duży zestaw danych, a wydajność stanowi problem, przejdź do Stemming. Pamiętaj, że możesz również dodać własne zasady do Stemming. Jeśli dokładność jest najważniejsza, a zbiór danych nie jest ogromny, wybierz lematyzację.
Sumit Pokhrel
źródło
3

ianacl,
ale myślę, że Stemming to brutalny hack, którego ludzie używają do sprowadzenia różnych form tego samego słowa do formy podstawowej, która sama w sobie nie musi być legalnym słowem
Coś takiego jak Porter Stemmer może używać prostych wyrażeń regularnych, aby wyeliminować popularne sufiksy słów

Lemmatyzacja sprowadza słowo do jego rzeczywistej formy podstawowej, która w przypadku czasowników nieregularnych może w niczym nie przypominać słowa wejściowego
Coś w rodzaju Morpha, które używa FST do sprowadzenia rzeczowników i czasowników do ich formy podstawowej

Aditya Mukherji
źródło
Myślę, że Porter Stemmer jest zaimplementowany bez uciekania się do wyrażeń regularnych, ponieważ wiele starszych języków ich nie ma, ale poza tym masz dobry pomysł.
Ken Bloom,
3

Stemming to proces usuwania kilku ostatnich znaków danego słowa w celu uzyskania krótszej formy, nawet jeśli ta forma nie ma żadnego znaczenia.

Przykłady,

"beautiful" -> "beauti"
"corpora" -> "corpora"

Więcej przykładów rodowania

Todygowanie można wykonać bardzo szybko.

Z kolei lematyzacja to proces konwersji danego słowa do jego formy bazowej zgodnie ze słownikowym znaczeniem tego słowa.

Przykłady,

"beautiful" -> "beauty"
"corpora" -> "corpus"

Więcej przykładów lematyzacji

Lematyzacja zajmuje więcej czasu niż wyprowadzanie.

śiva pokala
źródło