İki yıl kadar önce Doğal Dil İşleme dersi kapsamında yaptığım ve burada paylaştığım metin sınıflandırma çalışmasına devam etme şansı buldum. Aynı dersi alan ve proje arayan bir arkadaşa mevcut çalışmayı ilerletmeyi teklif ettim. O da kabul edip üzerine düşeni yerine getirince bu vesile ile hem Prizma ortaya çıkmış oldu hem de çalışma daha sağlam bir zemine oturdu.

Çalışmanın önceki versiyonunda 10 yazara ait köşe yazılarını, yazarlarına göre sınıflandırmayı denemiş ve %95’e varan bir isabet oranı yakalamıştım. Yeni çalışmamızda yazar sayısını 30’a çıkardık ve her yazar için 40 adet köşe yazısı topladık. Daha sonra 30’a yakın (belki de daha fazla) niteliği test ederek en verimli 19 tanesini tespit ettik. İlk olarak yazıların yarısını eğitim yarısını test (20×20) için kullandık. Daha sonra eğitim için kullanılan yazı sayısını önce 15’e sonra da 10’a düşürdük. Aşağıdaki tabloda da görüldüğü gibi sonuçlarda ciddi bir fark oluşmadı. Buradan hareketle 10 köşe yazısının bir yazarın yazım stilini tanımak için 10 yazı yeterli.

Eğitim / Test Naive Bayes Multilayer Perceptron
20 x 20 % 83 % 82
15 x 25 % 82.5 % 82.4
10 x 30 % 80.5 % 77.5

Her ne kadar tabloda 10×30 için sonuçlar biraz düşmüş gibi görünse de bunun asıl nedeni eğitim verisinin azalması değil test verisinin artmasıdır. Kullandığımız niteliklerden bazıları şu şekilde:

  • Ortalama cümle uzunluğu
  • Paragraf sayısı
  • Noktalama kullanım Oranı
  • Kelime uzunluğunun varyansı
  • Başlık uzunluğu
  • Ortalama paragraf uzunluğu
  • Etkisiz Kelime (Stopword) kullanım oranı

Yazara göre sınıflandırmaya ek olarak cinsiyet ve yaş gruplarına (genç, orta, yaşlı) göre de bir sınıflandırma denemesi yaptık. Cinsiyet için Erkek ve Kadın olmak üzere iki grup oluşturduk. 10 kadın yazardan eşit sayıda yazıyı kadın grubu altında 20 erkek yazardan eşit sayıda yazıyı da erkek grubu altında topladık. Başta iyi sonuçlar (Naive Bayes ile %70 Yapay Sinir Ağı ile %80) elde ettiğimizi sanıyorduk. Ancak bir süre sonra bu algoritmaların cinsiyeti değil de grubu tanıyor olabileceğinden şüphelendik. Bunu test etmek için de kadın-erkek grupları yerine içerisinde kadın ve erkek yazarlara ait yazıların karışık olarak bulunduğu çeşitli A ve B grupları oluşturduk ve gördük ki algoritmalar yine aynı başarı ile çalışıyor. Bu da bize şüphemizde haklı olduğumuzu gösterdi. Yaş konusuna ise hiç girmeyelim 🙂

Sonuç olarak cinsiyet ve yaşa göre sınıflandırmada başarılı sonuçlar elde edemedik. Bu bizden kaynaklanıyor olabileceği gibi, yazılarda cinsiyet veya yaştan kaynaklanan bir fark olmamasından da kaynaklanabilir. Henüz kesin bir yorum yapmak için erken.

Bu çalışma esnasında geliştirdiğimiz Prizma isimli programdan ve topladığımız veri kümelerinden (köşe yazarları) benzer çalışmalarınızda yararlanmak isterseniz proje dosyalarına buradan erişebilirsiniz.

Bu çalışmada verileri toplama, bazı niteliklerin kodlanması, çeşitli nitelik grupları ile kapsamlı testlerin yapılması ve Prizma’nın test edilmesi gibi süreçlerde yer alan Ziynet Nesibe’ye katkılarından dolayı teşekkür ederim. Başta belirttiğim gibi çalışmanın bu bölümü aynı zamanda kendisinin bir yüksek lisans doğal dil işleme dersi için hazırladığı projeydi. Bu arada geçti mi kaldı mı hala haberim yok 🙂

Çalışmanın demosu için tıklayınız.

Herkese kolay gelsin

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPrint this pageEmail this to someone