Sobes.tech
Junior — Middle

V čom sa líši stemming od lematizácie? V ktorých úlohách sa má použiť ktorý?

sobes.tech AI

Odpoveď od AI

Stemming a lematizácia sú metódy normalizácie slov v spracovaní prirodzeného jazyka (NLP), ale líšia sa prístupom a presnosťou.

Stemming je hrubé skrátenie slov na ich základ (stem) odstránením prípon a koncoviek. Nezohľadňuje kontext a môže nesprávne orezať slová, čo môže viesť k neexistujúcim koreňom.

Lemmatizácia je presnejší proces, ktorý vracia slovo do jeho slovníkového tvaru (lemma), pričom zohľadňuje morfologickú analýzu a časť reči. Napríklad, "bežím", "bežal" sa lemmatizujú na "bežať".

Kedy použiť:

  • Stemming je vhodný pre úlohy, kde je dôležitá rýchlosť a akceptovateľná je určitá nepresnosť, napríklad v vyhľadávačoch alebo pri analýze veľkých objemov textu.
  • Lemmatizácia je vhodnejšia, keď je dôležitá presnosť a sémantická správnosť, napríklad v strojovom preklade, analýze sentimentu alebo extrakcii informácií.

Príklad stemovania v Pythone s použitím knižnice NLTK:

from nltk.stem import PorterStemmer
ps = PorterStemmer()
print(ps.stem('bežím'))  # výstup: bež

Príklad lemmatizácie:

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize('bežal', pos='v'))  # výstup: bežať