İçeriğe atla
Üyelik kaydınızı yaparak son yazılan içeriklerden haberdar olun! ×
  • makale
    18
  • yorum
    0
  • görüntüleme
    19.060

Kelime Köklerine İndirgemek - Stemming


Doğuhan ELMA

59 görünüm

Stemming, doğal dil işleme (NLP) alanında kullanılan bir metin ön işleme yöntemidir. Bu yöntem, kelimeleri köklerine indirgemek amacıyla kullanılır. Kelimenin kökü, üzerine çekim ekleri eklenerek farklı kelime formları türetilebilen temel kısmıdır. Stemming işlemi, kelimenin sonundaki ekleri çıkararak bu köke ulaşmayı amaçlar.

Stemming'in Amacı

Stemming'in temel amacı, kelime türevlerini aynı kök formuna indirgeyerek bir metindeki kelime sayısını azaltmak ve böylece dil modelleme, metin madenciliği gibi süreçlerde daha basit ve etkili analizler yapmaktır. Örneğin, "running", "runner", "ran" gibi kelimelerin kökü "run" olduğundan, stemming bu kelimeleri "run" şekline dönüştürür.

Stemming Nasıl Çalışır?

Stemming algoritmaları genellikle belirli kurallara dayanır ve bu kurallar, kelime sonundaki ekleri çıkarır. Bu süreçte, dönüştürülen kelimenin dilbilgisel olarak doğru bir kelime olup olmadığı genellikle göz ardı edilir. Yani, stemming sonucu elde edilen kelime, gerçek bir kelime olmayabilir. Örneğin, "agreement" kelimesini "agree" yerine "agre" olarak dönüştürebilir.

Yaygın Stemming Algoritmaları

Porter Stemmer: İngilizce için tasarlanmış en eski ve en yaygın kullanılan stemming algoritmasıdır. Birçok kural seti içerir ve oldukça etkilidir.

Snowball Stemmer: Porter Stemmer'ın geliştirilmiş bir versiyonudur ve birçok dilde uygulanabilir şekilde tasarlanmıştır.

Lancaster Stemmer: Çok daha agresif bir algoritmadır ve daha fazla indirgeme yapar, ancak bu durum bazen hatalı sonuçlara yol açabilir.

Örnek Python Kodu

NLTK kütüphanesini kullanarak İngilizce bir metinde stemming yapmak için aşağıdaki gibi bir kod yazabilirsiniz:

import nltk
from nltk.stem import PorterStemmer

# Stemmer'ın örneğini oluştur
stemmer = PorterStemmer()

# Stemming yapılacak kelimeler
words = ['running', 'jumps', 'easily', 'faster']

# Kelimeleri köklerine indirge
stemmed_words = [stemmer.stem(word) for word in words]

print(stemmed_words)

Bu kod, her bir kelimeyi kök formuna indirgeyerek, metin üzerinde daha tutarlı ve genel analizler yapılmasını sağlar. Ancak, stemming işlemi bazen kelime köklerini yanlış tanımlayabilir veya dilbilgisel olarak doğru olmayan sonuçlar üretebilir. Bu tür durumlar için, kelime köklerini daha doğru bir şekilde tanımlayan "lemmatization" yöntemi de tercih edilebilir.

import nltk
from nltk.stem.snowball import SnowballStemmer

# 'english' dili için SnowballStemmer örneğini oluştur
stemmer = SnowballStemmer("english")

# Stemming yapılacak kelimeler
words = ['running', 'jumps', 'easily', 'faster', 'organized', 'university']

# Kelimeleri köklerine indirge
stemmed_words = [stemmer.stem(word) for word in words]

print(stemmed_words)

Bu kod parçası, her bir kelimeyi belirtilen dildeki (english) kurallara göre işleyerek köklerine indirger ve sonuçları ekrana yazdırır. SnowballStemmer çok dilli destek sunduğu için, dil parametresi olarak farklı dilleri kullanabilirsiniz (örneğin, 'spanish', 'german', vb.).

0 Yorum


Önerilen Yorumlar

Görüntülenecek yorum yok.

Misafir
Yorum ekle...

×   Zengin metin olarak yapıştırıldı.   Bunun yerine düz metin olarak yapıştır

  Yalnızca 75 emojiye izin verilir.

×   Bağlantınız otomatik olarak gömüldü.   Bunun yerine bağlantı olarak görüntüle

×   Önceki içeriğiniz geri yüklendi.   Düzenleyiciyi temizle

×   Görüntüleri doğrudan yapıştıramazsınız. URL'den resim yükleyin veya ekleyin.

×
×
  • Create New...