Middle
Mətni necə əvvəlcədən işləmək olar: hansı dayanma sözləri və durğu işarələrini çıxarmaq, stemming və ya lemmatizasiya istifadə etmək?
sobes.tech Süni İntellekt
AI-dan cavab
Mətnin əvvəlcədən işlənməsi vəzifədən asılıdır, lakin ümumi addımlar aşağıdakılardır:
- Nöqtə və xüsusi simvolların silinməsi: adətən səs-küyü təmizləmək üçün silinir.
- Stop sözlərin silinməsi: tez-tez rast gəlinən, lakin az məlumatlı sözlər (məsələn, "və", "də", "üçün"). Bu, lüğət ölçüsünü kiçiltməyə və modelin keyfiyyətini artırmağa kömək edir.
- Stemming və lemmatizasiya:
- Stemming — sözləri kökə endirmək (məsələn, "işləmək", "işlədi" → "işl"). Sürətli, lakin bəzən sərt ola bilər.
- Lemmatizasiya — sözləri normal formaya (lemma) gətirmək, kontekst və nitq hissəsini nəzərə alaraq (məsələn, "işlədi" → "işləmək"). Daha dəqiq, lakin daha çox resurs tələb edir.
Stemming və lemmatizasiya arasında seçim vəzifədən asılıdır:
- Sürətli prototipləşdirmə və dəqiqliyin çox vacib olmadığı hallarda — stemming.
- Dəqiqlik və mənanın vacib olduğu tapşırıqlar üçün — lemmatizasiya.
Python-da NLTK kitabxanası ilə nümunə:
import nltk
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer
import string
nltk.download('stopwords')
nltk.download('wordnet')
mətn = "Bu, əvvəlcədən işləmə ehtiyacı olan nümunə mətndir!"
# Nöqtə və xüsusi simvolların silinməsi
mətn = mətn.translate(str.maketrans('', '', string.punctuation))
# Tokenləşdirmə
sözlər = mətn.lower().split()
# Stop sözlərin silinməsi
stop_words = set(stopwords.words('azerbaijani'))
filtrlenmiş_sözlər = [w for w in sözlər if w not in stop_words]
# Lemmatizasiya
lemmatizer = WordNetLemmatizer()
lemmatized_sözlər = [lemmatizer.lemmatize(w) for w in filtrlenmiş_sözlər]
print(lemmatized_sözlər)
Xüsusi tapşırıq və dil üçün preprocessing-i uyğunlaşdırmaq vacibdir.