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