Sobes.tech
Junior — Middle

V čem se liší stemming od lemmatizace? V jakých úlohách je vhodné použít který?

sobes.tech AI

Odpověď od AI

Stemming a lemmatizace jsou metody normalizace slov v přirozeném jazyce (NLP), ale liší se přístupem a přesností.

Stemming je hrubé zkrácení slov na jejich základ (stem) odstraněním přípon a koncovek. Nezohledňuje kontext a může nesprávně oříznout slova, což někdy vede k neexistujícím kořenům.

Lemmatizace je přesnější proces, který slovo vrací do jeho slovníkového tvaru (lemma), přičemž zohledňuje morfologickou analýzu a část řeči. Například "běhám", "běžel" jsou lemmatizovány na "běhat".

Kdy použít:

  • Stemming je vhodný pro úlohy, kde je důležitá rychlost a je akceptovatelná určitá nepřesnost, například ve vyhledávačích nebo při analýze velkých objemů textu.
  • Lemmatizace je vhodnější, když je důležitá přesnost a sémantická správnost, například v strojovém překladu, analýze sentimentu nebo extrakci informací.

Příklad stemmingu v Pythonu s knihovnou NLTK:

from nltk.stem import PorterStemmer
ps = PorterStemmer()
print(ps.stem('běhám'))  # výstup: běh

Příklad lemmatizace:

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize('běžel', pos='v'))  # výstup: běhat