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.