Sobes.tech
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.