Metin normalleştirme teknikleri

Python ile Natural Language Processing (NLP)

Fouad Trad

Machine Learning Engineer

Metin normalleştirme

  • Normalleştirme, kelimeleri standart biçime getirir
  • Metin sınıflandırma, arama, duygu analizi için yararlı
  • İncelenecek teknikler:
    • Küçük harfe çevirme
    • Gövdeleme
    • Lemmatizasyon

Üç kişinin aynı fikri farklı biçimlerde söylediğini gösteren görsel: "I enjoy watching movies with great direction!", "I enjoyed watching movies that are well-directed.", "Movies with excellent direction are something I enjoy."

Python ile Natural Language Processing (NLP)

Küçük harfe çevirme

  • Normalleştirme olmazsa bu kelimeler ayrı token’lar olur
  • Modelleri yanıltır, söz varlığını şişirir
text  = """Data scientists and data 
engineers need DATA"""
lower_text = text.lower()

print(lower_text)
data scientists and data 
engineers need data

"data", "Data" ve "DATA" arasında kafası karışmış bir kişiyi gösteren görsel.

Python ile Natural Language Processing (NLP)

Küçük harfe çevirmenin uygunluğu

Şunlar için yararlı

Anahtar kelime analizine dayalı görevler

Bir kişinin metinde anahtar kelime aradığını gösteren görsel.

Python ile Natural Language Processing (NLP)

Küçük harfe çevirmenin uygunluğu

Şunlar için yararlı

Anahtar kelime analizine dayalı görevler

Bir kişinin metinde anahtar kelime aradığını gösteren görsel.

Şunlar için yararlı değil

Anlamı büyük/küçük harfe bağlı ayrımlar gerektiren görevler

"us" (bizi) temsil eden bir grup insan ve "US" (Amerika) için Amerikan bayrağını gösteren görsel.

Python ile Natural Language Processing (NLP)

Gövdeleme (Stemming)

  • Son ekleri keserek kelimeleri kök forma indirger
    • running → run
    • reading → read
  • Benzer biçimleri bir araya getirmeye yarar
  • Geçersiz kelimeler üretebilir
    • organization → organizat

Gövdeleme logosu

Python ile Natural Language Processing (NLP)

Kodla gövdeleme

from nltk.stem import PorterStemmer

stemmer = PorterStemmer()
tokens = ['running', 'bats', 'organizations', 'reading']
stemmed = [stemmer.stem(word) for word in tokens]
print(stemmed)
['run', 'bat', 'organizat', 'read']
Python ile Natural Language Processing (NLP)

Lemmatizasyon

  • Kelimeleri temel forma indirger
  • Sonuç geçerli bir kelimedir
    • organizations → organization
  • Dilbilgisel doğruluk önemliyken uygundur
  • Gövdelemeden yavaş ama daha isabetli

Lemmatizasyon logosu

Python ile Natural Language Processing (NLP)

Kodla lemmatizasyon

from nltk.stem import WordNetLemmatizer

nltk.download('wordnet')
lemmatizer = WordNetLemmatizer()
tokens = ['running', 'bats', 'organizations', 'reading']
lemmatized = [lemmatizer.lemmatize(word) for word in tokens]
print(lemmatized)
['running', 'bat', 'organization', 'reading']
Python ile Natural Language Processing (NLP)

Gövdeleme

  • Daha hızlı
  • Sözlük dışı kelimeler üretebilir
  • Hız gerekiyorsa kullanın

Bir kişinin motorlu testereyle ağaç kestiğini gösteren görsel.

Lemmatizasyon

  • Daha yavaş
  • Daha doğru
  • Dilbilgisel doğruluk gerekiyorsa kullanın

Bir kişinin ağacın yapısını koruyarak dikkatlice budadığını gösteren görsel.

Python ile Natural Language Processing (NLP)

Hadi pratik yapalım!

Python ile Natural Language Processing (NLP)

Preparing Video For Download...