Sobes.tech
Middle

Jak předzpracovat text: jaká stop slova a interpunkci odstranit, použít stemming nebo lemmatizaci?

sobes.tech AI

Odpověď od AI

Předzpracování textu závisí na úkolu, ale obecné kroky zahrnují:

  • Odstranění interpunkce a speciálních znaků: obvykle se odstraňují, aby se text očistil od šumu.
  • Odstranění stop slov: slova, která se často vyskytují, ale mají málo informací (například "a", "v", "na"). To pomáhá zmenšit slovník a zvýšit kvalitu modelu.
  • Stemming a lemmatizace:
    • Stemming — zkrácení slov na jejich kořen (například "pracovat", "pracoval" → "prac"). Rychlé, ale může být hrubé.
    • Lemmatizace — uvedení slova do jeho normální formy (lemma) s ohledem na kontext a část řeči (například "pracoval" → "pracovat"). Přesnější, ale vyžaduje více zdrojů.

Volba mezi stemmingem a lemmatizací závisí na úkolu:

  • Pro rychlé prototypování a když přesnost není kritická — stemming.
  • Pro úkoly, kde je důležitá přesnost a význam — lemmatizace.

Příklad v Pythonu s použitím knihovny NLTK:

import nltk
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer
import string

nltk.download('stopwords')
nltk.download('wordnet')

text = "Toto je příklad textu, který je třeba předzpracovat!"

# Odstranění interpunkce
text = text.translate(str.maketrans('', '', string.punctuation))

# Tokenizace
slova = text.lower().split()

# Odstranění stop slov
stop_words = set(stopwords.words('czech'))
filtered_words = [w for w in slova if w not in stop_words]

# Lemmatizace
lemmatizer = WordNetLemmatizer()
lemmatized_words = [lemmatizer.lemmatize(w) for w in filtered_words]

print(lemmatized_words)

Je důležité přizpůsobit předzpracování konkrétnímu úkolu a jazyku.