Naive Bayes ile Spor Metinleri Sınıflandırma – Deep Learning Engineer

Naive Bayes ile Spor Metinleri Sınıflandırma

Projenin Kodları

Tüm projeyi İNDİR: Program Raporu ve Kodu

1. Çalışmanın Özeti

Bu çalışmada, spor metinlerine ait olan öznitelik vektörlerinin Naive Bayes ile sınıflandırılmasına dayalı bir spor metni tahmini yapılmaktadır. Çalışmada veri seti farklı kullanılarak sınıflandırmanın başarısı incelenmiştir. Farklı kullanımdan kasıt, veri setinin eğitim ve test amaçlı olarak kullanılan verilerin sayısının değiştirilmesidir. Çalışmada bulunan spor metinleri futbol, basketbol, tenis olmak üzere üç sınıf seçilmiştir. Elde edilen özellik vektörünün başarısı, Naive Bayes sınıflandırma yöntemi ile en yüksek %80 olarak alınmıştır.

Günümüzdeki gelişmeler veri birikiminin artmasına neden olmaktadır. Bu artışla istenilen verilere ulaşabilmek için metinlerin sınıflandırılması ihtiyacı doğurmuştur. Metin sınıflandırma, o metnin özelliklerine bakarak önceden belirlenmiş belli sayıda kategorilerden hangisine dahil olacağını belirlemektir. Metin sınıflandırma bilgi alma, bilgi çıkarma, döküman filtreleme, otomatik olarak metadata elde etme ve web sayfalarını hiyerarşik olarak düzenleme gibi pek çok alanda önemli rol oynamaktadır. Bu çalışmada içerisinde üç farklı kategoride 60 adet dökümandan oluşan bir veri seti kullanılmıştır.Makine öğrenmesi yöntemlerinden Naive Bayes kullanılarak bir metnin türünün belirlenmesi gerçekleştirilmiştir.

2. Uygulama

2.1. Veri Seti

Bu çalışmada spor metinlerin WEKA paket programı ile Naive Bayes sınıflandırma algoritmasında kullanılabilinmesi için arff oluşturucu program   (http://www.atasoyweb.net/blog/programlarim-k4s0/metin-siniflandirma-icin-arff-olusturucu-y123.html) yardımı ile her kelimenin her sınıfta kaç kez geçtiği ve her sınıf içerinde kaç farklı dökümanda bulunduğu, bu kelimelerin oranları ile özniteliklerinin çıkarılması yapılmıştır.

Sistemin eğitim ve test aşamalarında kullanılan veri seti HaberTürkSpor (www.htspor.com), (www.sporyazarlari.com) TenisHaber (www.tenishaber.com), BasketbolHaber  (www.basketbolhaber.com), gibi sitelerin spor konularında yazı yazarlarının köşe yazılarından oluşturulmuştur. Eğitim setlerinde,  her sınıftan 20 adet, 10 adet, 5 adet doküman alınmak şartıyla 60 , 30 ve 15 adetlik doküman setleri oluşturulmuş, test setinde ise her sınıftan toplamda 20 adet doküman sayısından geriye kalanlar kullanılmıştır. Böylece 30 ve 45 lik test setleri oluşturulmuştur. Toplamda 60 olan veri setleri 19239 kelimeden oluşmaktadır. Bu kelimelerden 900 tanesi öznitelik olarak alınmıştır.

Tablo 1:Spor Metinleri Sınıfları ve Eğitim ile Test Verileri Sayısı

Spor Kategorileri

Tenis Futbol Basketbol Toplam
1.Veri GrubuEğitim/Test 10/10 10/10 10/10 30/30
2.Veri GrubuEğitim/Test 5/15 5/15 5/15 15/45
3.Veri GrubuEğitim 20 20 20 60

Bu veri setleri ile 3 farklı veri grubu ile ilgili sınıflandırmalar yapılacaktır. Bunun dışında WEKA paketi ile öznitelikleri seçilmiş yani azaltılmış (900 olan öznitelik sayısı 27 indirgenmiş) 4.Veri grubu da veri setleri içinde bulunmaktadır.

2.2.    Naive Bayes

Naive Bayes algoritması sınıflandırıcı bir algoritmadır. Metin dökümanlarının sınıflandırılmasında yaygın olarak kullanılır. Uygulanabilirliği ve performansı ile ön plana çıkan bir algoritmadır. İstatistiksel yöntemler yardımı ile sınıflandırma yapar.
Naive Bayes algoritmasının uygulanmasında bir takım kabuller yapılır. Bunlardan en önemlisi niteliklerin birbirinden bağımsız olduğudur. Eğer nitelikler birbirini etkiliyorsa burada olasılık hesaplamak zordur. Niteliklerin hepsinin aynı derecede önemli olduğu kabul edilir. Naive Bayes algoritması bit ağırlıklandırma yöntemi ile ve frekans ağırlıklandırma yöntemi ile kullanılabilir.

3. Sonuçlar

Sistemin eğitilmesi için  Türkçe gazetelerin web sitelerindeki 3 farklı konudan 20’şer adet spor metni alınmıştır. Bu metinler arff oluşturma programı yardımıyla dönüştürülmüştür. Sınıflandırma algoritmaları için WEKA paketi kullanılmıştır.

1.Veri seti Naive Bayes ile sınıflandırıldığında;  1.Veri seti eğitim için 30 adet, test içinse  eğitim setinde olmayan 30 adet makale bulunan veri setidir.

Tablo 2: 1.Veri Setinin Değerlendirmesi (Naive Bayes)

Correctly Classified Instances 24 % 80
Incorrectly Classified Instances  6 % 20

Tablo 3: 1.Veri Setinin Hata Matrisi (Naive Bayes)

 Gerçek Tür

Tahmin Edilen Tür

Tenis

Futbol

Basketbol

Tenis

10

0

0

Futbol

0

9

1

Basketbol

2

3

5

Toplam 30 test spor metninin 24 tanesini doğru bir şekilde sınıflandırılmıştır. Burada tüm hata oranı %20 olmuştur. En yüksek sınıflandırma oranı %100’lük başarı ile tenis içerikli spor metinleri olmuştur. Tenisten sonraki en doğru sınıflandırma futbol makaleleri olmuştur. 10 Adet futbol metinlerinden sadece 1 tanesi basketbol kategorisinde zannedilmiştir. Basketbol metinlerinde yarı yarıya doğruluk elde edilmiştir. Bu metinlerden 3 tanesi futbol, 2 tanesi de tenis zannedilmiştir.

2.Veri seti Naive Bayes ile sınıflandırıldığında;  2.Veri seti eğitim için 15 adet, test içinse  eğitim setinde olmayan 45 adet makale bulunan veri setidir.

Tablo 4: 2.Veri Setinin Değerlendirmesi (Naive Bayes)

Correctly Classified Instances 36 % 80
Incorrectly Classified Instances  9 % 20

Tablo 5: 2.Veri Setinin Hata Matrisi (Naive Bayes)

 Gerçek Tür

Tahmin Edilen Tür

Tenis

Futbol

Basketbol

Tenis

15

0

0

Futbol

0

11

4

Basketbol

0

5

10

Toplam 45 test spor metninin 36 tanesini doğru bir şekilde sınıflandırılmıştır. Burada tüm hata oranı %20 olmuştur. En yüksek sınıflandırma oranı %100’lük başarı ile yine tenis içerikli spor metinleri olmuştur. Daha öncede gözlendiği gibi futbol içerikli metinler basketbol içerikli metinlere kıyasla daha doğru sınıflandırmışlar.

3.Veri seti Naive Bayes ile sınıflandırıldığında;  3.Veri seti eldeki tüm metinlerin eğitim için oluşturulan veri setidir.

Tablo 6: 3.Veri Setinin Değerlendirmesi (Naive Bayes)

Correctly Classified Instances 30 % 100
Incorrectly Classified Instances  0 % 0

Tablo 7: 3.Veri Setinin Hata Matrisi (Naive Bayes)

 Gerçek Tür

Tahmin Edilen Tür

Tenis

Futbol

Basketbol

Tenis

10

0

0

Futbol

0

10

0

Basketbol

0

0

10

Şimdiye kadar olan sonuçlarda hep test ve eğitim verisi ayrı ayrı verilerek sonuçlar gözlemlendi. Eldeki toplam 60 spor metni ile eğitip yine bu eğitim verilerinden toplam 30 tanesini test için ayırdığımda sonuç %100 olmuştur. Bu sonuçta gözlemlediğim kendi eğitilen veride kesinlikle hatalı sınıflandırma yapmıyor olmasıdır.

4.Veri seti Naive Bayes ile sınıflandırıldığında;  4.Veri seti 900 olan öznitelik sayısını WEKA (selected attributes) ile 27 düşürüp tekrar oluşturulan veri setidir.

Tablo 8: 4.Veri Setinin Değerlendirmesi (Naive Bayes)

Correctly Classified Instances 30 % 100
Incorrectly Classified Instances  0 % 0

Tablo 9: 4.Veri Setinin Hata Matrisi (Naive Bayes)

 Gerçek Tür

Tahmin Edilen Tür

Tenis

Futbol

Basketbol

Tenis

10

0

0

Futbol

0

10

0

Basketbol

0

0

10

Spor metinlerinden çıkarılan öznitelik sayısı 900 olmuştur. WEKA paket programın bir özelliği olan öznitelik seçme işlemi ile aslında bu işin daha az öznitelikle yine aynı sonuca ulaşacağını anlaşılmıştır. WEKA selected attributes sekmesi ile veriler taranınca 900 olan öznitelik sayısını 27 tane öznitelik ile tekrar arff dosyamı oluşturdum.  Oluşturuduğum arff dosyası ile az önce yaptığım eğitim verilerinde kullanılan 30 tane test verisini aldığımda sonucun yine %100 olduğunu gözlemledim. Böylece eğitim ve test verilerinde kullanılan veri kaynakları aynı metinler ise çok daha az öznitelik ile aynı sonuçların ortaya çıktığı anlaşılmış oldu.

2.Veri seti Naive Bayes Multinomial ile sınıflandırma yapıldığında başarı oranı %77.7 , Naive Bayes Multinomial Updateable ile %77.7 , Naive Bayes Updateable ile %80 oranlarında başarılı sınıflandırılmışlardır. Değişik eğitim ve test setleri ile en yüksek başarı Naive Bayes ile %80 olmuştur. Diğer sınıflandırma türleri arasında da en yüksek başarı en çok kullanılan sınıflandırma metodu olan  Naive Bayes ile elde edilmiştir.

Bulent SIYAH | 16 Şubat 2012