Kök Bulma (Stemming)
Araç kavramlarıStemming nedir?
Stemming, bir kelimenin sonundaki ekleri kaba bir kesme yöntemiyle atıp onu ortak bir köke indirme işidir. "koşuyor", "koştu", "koşacak" gibi hallerin hepsi tek bir köke ("koş") iner. Amaç, aynı anlamı taşıyan farklı yazımların arama ya da metin işleme sırasında tek bir birim gibi davranmasını sağlamak.
İngilizce için en bilinen algoritma Porter stemmer (1980). Bir dizi kurala göre "-ing", "-ed", "-s" gibi ekleri sırayla kırpar. Sözlüğe bakmaz, dil bilgisi analizi yapmaz — sadece kalıp eşler. Bu yüzden hızlıdır ama kaba: bazen kökü fazla kırpar ("university" ve "universe" ikisi de "univers" olur) veya yanlış birleştirir.
Nasıl çalışır?
Klasik bir stemmer, kelimenin sonuna bakıp bilinen ekleri adım adım siler. Kural tabanlıdır: "eğer kelime -sses ile bitiyorsa -ss ile değiştir", "kelime -ational ile bitiyorsa -ate yap" gibi onlarca kural zinciri çalışır. Sonuçta çıkan şey her zaman gerçek bir kelime olmak zorunda değildir; "gözlemci" kökü "gözlem" yerine "gözl" gibi anlamsız bir parçaya inebilir. Önemli olan aynı kavramın tüm hallerinin aynı parçaya inmesidir.
Türkçe gibi sondan eklemeli dillerde bir kelime çok sayıda ek alabildiği için stemming daha zordur; bu dillerde çoğunlukla morfolojik analiz tercih edilir.
Neden önemli?
Bir arama motoru "kitap" araması yapan kullanıcıya "kitaplar", "kitabın", "kitaba" geçen belgeleri de getirmek ister. Her kelimeyi köküne indirirsen indeks küçülür ve eşleşme oranı artar. Klasik bilgi getirimi (information retrieval), TF-IDF tabanlı arama ve bag-of-words modellerinin ön işleme adımında stemming uzun yıllar standart oldu.
Kullanım alanları
Arama motorları, doküman sınıflandırma, duygu analizi ve klasik NLP pipeline'larında ön işleme adımı olarak kullanılır. Modern transformer tabanlı modeller kendi tokenization yöntemlerini kullandığı için stemming'e daha az başvurur, ama hafif ve hızlı arama sistemlerinde hâlâ işe yarar.
Ilgili terimler
