Skip to content

cerenozkurt/DuyguAnalizi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

DuyguAnalizi

Python ile Duygu Durum Analizi.

Duygu analizi birçok alanda önemlidir. Örneğin firmalar müşterileri ile iletişimde onların isteklerini başarılı bir şekilde gerçekleştirebilmek için müşterisinin gerçek duygularının ne olduğunu veyahut sorgu odasında bulunan şahsın doğruları söyleyip söylemediği bilinmek istenir. Bu gibi durumlarda kolaylaştırıcı olması açısıdan duygu analizi tercih edilebilir bir yöntem olabilir. Projenin amacı da duygu analizi için başlangıç seviyesinde de olsa bir adım atmaktır. Projenin çalışma prensibi yüklenen resimdeki yüzü algılayıp, algınan yüzün sahip olduğu duygu ifadesini analiz edecek şekildedir. Bu analiz için Kaggle’da bulunan hazır bir data seti olan Facial Expression Recognition Challenge’dan yararlanıldı. Çalışmada Tensorflow Keras, Seaborn, Matplotlib, Pandas kütüphaneleri kullanıldı. Bu data seti programa entegre edildi, data setinin içerisindeki 7 tip duygu ifadesi Evrişimli sinir ağı ile modellendi. Bu modelleme ile elde edilen sonuçlar ile örnek resimler üzerinde testler yapıldı.

Yararlanılan Kütüphaneler

Numpy kütüphanesi ile datasetinin içerisinde bulunan eğitim verileri pixellerine göre arraylere dizildi. Pandas kütüphanesi ile gerekli veri seti çalışmaya aktarıldı. Matplotlib ve Seaborn kütüphaneleri ile analiz işlemlerinin detaylıca görülebilmesi için grafikler çizildi. Tensorflow, Keras kütüphanesi ile Evrişimli Sinir Ağı Modellemesi kuruldu.

Kullanılan Veri Seti

Kaggle’da bulunan Facial Expression Recognition Challenge adlı veri setinden yararlanıldı. Bu veri seti Pandas kütüphanesi ile çalışmaya eklendi. Bu veri setinin içerisinde 7 adet duygu durumuna sahip 35887 örnek resim mevcuttur. Bu eğitim setindeki örnek resimler ile yapay bir sinir ağı oluşturuldu ve ortaya bir modelleme çıkarıldı. Bu modelleme ile de kullanıcının programa yüklediği resimlerdeki yüz ve duygular algılanıp analiz edildi.

image

Veri setindeki emotion sayılarını gösteren bir grafik.

image

Veri setinde bulunan örneklerin bir kısmı.

Modelleme Aşaması

İlk olarak veri setinin içindeki bulunan eğitim(train) ve test örnekleri modellemeye uygun hale getirildi.

image

Veri seti örnek değerleri.

Daha sonra 6 katmanlı bir evrişimli yapay sinir ağı modeli kuruldu. Katmanlarda ReLu aktivasyon fonksiyonundan yararlanıldı. Çalışmada kullanılan verisetinde çok fazla veri vardır. Bu yüzden çok katmanlı bir sinir ağı kullanıldı. ReLu aynı anda tüm nöronları aktive etmediğinden dolayı daha verimli sonuç vereceği için tercih edildi. Çıkış katmanımızda 7 adet duygu ifadesi olduğu için her duygu sınıfına ait bir olasık döndürmelidir. Bu istekleri karşılayacağı için çıkıl katmanında softmax aktivasyon fonksiyonundan yararlanıldı. Eğitim performansının artması için katmanlarda Dropout kullanılarak ağ modellemesinde sadeleştirmeye gidildi. Modelleme kurulmuş oldu.

image

Evrişimli sinir ağı modeli kurulması.

Kurulan modellemenin çalıştırılma işlemlerine geçildi. Epochs değeri 10, batchSize değeri ise 128 verildi. Olası bir Overfitting’i engellemek için Kerasa ailt EarlyStopping ve ReduceLROnPlateau kütüphanelerinden yararlanıldı. Eğitim sonucu model.h5 adlı dosyaya kaydedildi. Evrişimli sinir ağı modeli çalıştırılmış oldu.

image

Evrişimli Sinir Ağı modeli çalıştırılması.

Grafik Analizleri

Kurulan modellemenin sonucu olarak kayıp ve doğruluk değerleri grafikleştirildi. Grafikte görüldüğü gibi eğitim ve test verilerine göre loss ve acc değerlerinin sonuçları birbirine yakındır. Bunun sonucu olarak başarılı bir modelleme gerçekleşmiştir.

image

Kayıp ve doğruluk grafikleri.

Elbette modellemedeki epochs, batchsize gibi değerleri değiştirerek daha başarılı sonuçlar elde edilebilir. Hiçbir zaman %100 bir başarı sağlanamaz ama her zaman daha fazla başarılı sonuç çıkarmak için bir şans vardır.

image

Kayıp ve doğruluk değerlerinin sayısal gösterimi.

Modellemenin kayıp ve doğruluk değerlerinin sayısal karşılığı resim22.5’da mevcuttur. Train loss ve Test Loss değerleri ile Train Acc ve Test Acc değerleri arasındaki fark ve oran daha net görülmektedir.

Test Sonuçları

Modelleme sonucu test aşamasında ilk olarak yüklenecek görselde bulunan yüzün konumu face_recognition kütüphanesi kullanılarak algılandı.

image

Daha sonra algılanan yüz kurulan modelleme ağırlıklarına göre analiz edildi ve grafiksel sonuçları ekrana yazdırılması için keras image kütüphanesinden yararlanılarak gerekli kodlar yazıldı.

image

Test sonuçlarını görülmesi için birkaç örnek aşağıdaki gibidir.

image

image

image

image

About

Python ile Duygu Durum Analizi

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published