Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Recurrent Neural Network kullanımı ile farklı yazılı sanat alanlarında doğal dil üretimi gerçekleştiren bir çalışma.

License

NotificationsYou must be signed in to change notification settings

ardauzunoglu/sanatkar.ai

Repository files navigation

sanatkar.ai

sanatkar.ai, çeşitliyazılı sanat dallarında (şu anlık şarkı, şiir ve tiyatro) doğal dil üretmek amacıyla karakter tabanlı tahmin işlemleri gerçekleştiren çok katmanlıLSTM bazlıRNN modelleri kullanan bir Türkçe doğal dil işleme uygulamasıdır.

sanatkarai.com

README.md İçeriği

RNN Modelleri
Kullanılan Veri Setleri
Gereklilikler
Web Sitesi
Örnek Çıktılar
Geliştirmeye Yönelik Öneriler
Katkıda Bulunmak

RNN Modelleri

Doğal dil üretimi gerçekleştiren çok katmanlı LSTM bazlı RNN modelleri çıktıyı oluştururken 'Bir karakter veya bir karakter dizisi verildiğinde, onları takip edecek en olası karakter nedir?' sorusuna yanıt bulmak amacıyla karakter temelli tahmin işlemleri gerçekleştirmektedir.

char-based-prediction

Modellerin Geliştirilmesi*

Detaylı bilgi içincreating_text_generators.ipynb dosyasına göz atabilirsiniz.

Modellerin Değerlendirilmesi

ModelEğitim Veri SetiEpochDoğruluk OranıLoss Değeri
Kadın Karakter Tiradkadin_tirad_veri_seti.txt1250.98460.0478
Garip Şiirigarip-siiri-veri-seti.txt750.98390.0572
Erkek Karakter Tiraderkek_tirad_veri_seti.txt1250.98340.0531
Cumhuriyet Dönemi Saf Şiircumhuriyet-donemi-saf-siir-veri-seti.txt1000.98000.0591
Milli Edebiyatmilli_edebiyat_veri-seti.txt600.97800.0732
Rockrock_veri_seti.txt300.96660.1403
Poppop_veri_seti.txt300.83300.5169
Raprap_veri_seti.txt150.58011.3477

Kullanılan Veri Setleri*

sanatkar.ai üç farklı sanat dalının sekiz farklı alt dalında doğal dil üretmektedir. Her bir alt dala aitkapsamlıana veri seti bulunmaktayken ana veri setini oluşturantekil veri setleri de mevcuttur.

Veri Seti Büyüklükleri

1 - Şarkı Sözü Veri Setleri

  • Rap Veri Seti --> 270703 satır, 8.99 mb.
  • Pop Veri Seti --> 78161 satır, 2.01 mb.
  • Rock Veri Seti --> 23326 satır, 604 kb.

2 - Şiir Veri Setleri

  • Milli Edebiyat Veri Seti --> 14366 satır, 640 kb.
  • Cumhuriyet Dönemi Saf Şiir Veri Seti --> 9007 satır, 312 kb.
  • Garip Şiiri Veri Seti --> 3712 satır, 116 kb.

3 - Tiyatro Tiradı Veri Setleri

  • Erkek Karakterlerin Tiradları Veri Seti --> 112 kb.
  • Kadın Karakterlerin Tiradları Veri Seti --> 96 kb.

Veri Setlerinin Oluşturulması - Web Scraping

Şarkı Sözü Veri Setlerinin Oluşturulması*

Şarkı sözü veri setleriGenius API ilelyricsgenius kütüphanesi kullanılarak elde edilmiş, devamındadata_cleaning_for_songs.ipynb dosyasındaki işlemler ile veri seti temizliği gerçekleştirilmiştir.

Şiir Veri Setlerinin Oluşturulması*

Şiir veri setleriselenium kütüphanesi ileantoloji.com'da ilgili şairlerin şiirlerinin kazınmasıyla ve farklı şairlerin şiirlerinin manuel olarak aynı metin dosyasına taşınmasıyla elde edilmiştir.

Tiyatro Tiradı Veri Setlerinin Oluşturulması

Tiyatro tiradı veri setleriAnkara Akademi Sanat'ın açık arşivindeki tiradların manuel olarak aynı metin dosyasına taşınmasıyla elde edilmiştir.

Gereklilikler

'pip install -r requirements_for_model_creation.txt' ve 'pip install -r requirements_for_website.txt' komutları ile yerel cihazınıza gerekli kütüphanelerin kurulumunu gerçekleştirebilirsiniz.

Model Oluşturmak İçin Gereklilikler*

tensorflow==2.6.0
nltk==3.6.2
urllib3==1.26.6
numpy==1.21.2

Web Sitesi İçin Gereklilikler*

tensorflow==2.6.0
numpy==1.21.2
Flask==2.0.1
Flask-SQLAlchemy==2.5.1

Web Sitesi*

Doğal dil üretimi gerçekleştiren modellerin kullanıcı kullanımına açıldığı web sitesi backend'de Python yazılım dilinin Flask kütüphanesini; frontend'de HTML, CSS işaretleme dilleri ile JavaScript'in Jquery kütüphanesini kullanmaktadır.

Frontend

Bir karşılama sayfası ve dört ek sayfadan oluşan web sitesinin olabildiğince sade ve kullanıcı dostu tasarlanması hedeflenmiştir. Renk paleti olarak sanatkar.ailogosunda yer alan üç temel renk (eflatuni mavi #5e17eb, koyu nane yeşili #39c466 ve dönüşümlü olarak siyah ve beyaz) kullanılmıştır.

Backend

RNN modellerinin doğal dil üretim işlemlerini ve veritabanı iletişimlerini gerçekleştiren backend bu işlemler için TensorFlow ve SQLAlchemy kütüphanelerinden faydalanmaktadır.

Örnek Çıktılar

Elde Edilen Bulgular

  • RNN modellerinin eğitiminde kullanılan veri setlerinin boyutları ile eğitilen modelin doğruluk oranı arasında ters, loss değeri arasında doğru orantı gözlemlenmiştir.
  • Şarkı veri setlerinde bulunan yabancı dildeki sözler veri setinin çok küçük bir yüzdesini oluştursa bile nadir de olsa üretilen çıktılarda yabancı dillerden sözcüklere denk gelinebilmektedir.
  • Doğruluk oranı geliştirilen modeller arasında en yüksek olan kadın karakter tiradı üreten modelin ürettiği çıktılarda dil bilgisi hataları ve anlamsal kopukluklar gözlemlenirken doğruluk oranı geliştirilen modeller arasında en düşük olan rap şarkı sözü üreten modelin ürettiği çıktılarda dil bilgisi hataları ve anlamsal kopukluklar çok daha nadir gözlemlenmiştir. Bu nedenle doğruluk oranı modelin başarısını değerlendirmek için birincil kriter olarak görülmemektedir.
  • Birinci ve üçüncü bulgular göz önüne alındığında kullanılan veri setinin boyutu arttıkça modelin doğruluk oranı azalsa da ürettiği metin tutarlı ve hatasız olmaktadır.

Geliştirmeye Yönelik Öneriler

  • Yeni Modellerin Geliştirilmesine Dair Öneriler

    • Oluşturulacak yeni veri setleri ile bir tiyatro senaryosu içerisinde yer alan kurgu ve diyalog gibi elementlerin üretimini sağlayan yeni modeller geliştirilebilir. Geliştirilen bu modeller tirad üretimi gerçekleştiren model ile birlikte kullanılarak bütüncül tiyatro oyunları oluşturulabilir.
  • Veri Setlerine Dair Öneriler

    • Kullanılan veri setleri genişletilebilir.
      • Şarkı sözü veri setleri Genius API aracılığı ile güncel veri setlerinde yer almayan sanatçıların eserleri çekilerek genişletilebilir.
      • Tiyatro tiradı veri setlerinin genişletilebilmesi için şehir belediyeleri ile iletişime geçilip paylaşıma uygun görülen tiyatro oyunlarındaki tiradlar veri setine eklenebilir.
    • Şarkı sözü veri setlerinde kullanılan API'dan dolayı oluşan, şarkı sözü dışında kalan açıklama metinleri (örneğin Nakarat, Giriş, Chorus bilgileri) temizlenebilir.
    • Şarkı sözü veri setlerinde Türkçe hariç dillerin (Pop ve Rock veri setlerinde ağırlıklı olarak İngilizce; Rap veri setinde ağırlıklı olarak Almanca ve İngilizce) kullanıldığı dizeler temizlenebilir.
    • Şiir veri setlerinde nadiren de olsa karşılaşılan Türkçe karakter bozuklukları düzeltilebilir.
    • Tirad veri setlerinde sıklıkla kullanılan noktalama işaretleri arasında var olan hatalar (örneğin noktalama işaretinden önce boşluk bırakılması) düzeltilebilir.
  • RNN Modellerine Dair Öneriler

    • Modellerin her biri özelleştirilmiş eğitimden geçirilebilir. Bu aşamada kullanılan eğitim, gerçekleşen kötü tahminlerin modellere geri gitmesini engellemekte dolayısıyla modellerin hatalarından öğrenmesine engel olmaktadır.
    • Modellerin açık döngü çıktısını stabilize etmek içincurriculum learning uygulanabilir.
  • Web Sitesine Dair Öneriler

    • Modelin veri setine ne derece yakınlıkta çıktı vereceğini belirleyen temperature parametresi kullanıcıdan girdi olarak alınabilir.
    • Modellerin ürettiği çıktıların kaydedildiği arşiv sayfasına çeşitli filtreleme özellikleri (örneğin sanat dalı, sanat alt dalı, çıktı uzunluğu) getirilebilir.
    • Kullanıcıların beğenisi göz önünde bulundurulacak şekilde çıktılarıbeğenme vebeğenmeme opsiyonları getirilebilir ve bu opsiyonlar filtreleme özellikleri arasında yer alabilir.

Karşılaşılan Hatalar

  • Örnek Çıktılar başlığında bulunan çıktılara ek olarak elde edilen çıktılarda üretilen tiradların, şarkı sözlerine ve şiirlere kıyasla daha fazla anlamsız ve kopuk cümle barındırdığı gözlemlenmiştir. Bu nedenle tirad veri setleri, metin işleme işlemlerine ve temizliğe ihtiyaç duymaktadır.

Katkıda Bulunmak

Çalışmayı denerken karşılaştığınız bir sorunu issue açarak anlatabilir, yavaş çalışacağını düşündüğünüz bir kod parçacığını optimize edip pull request atabilir, çalışmayı iyileştireceğini ve ileri taşıyacağını düşündüğünüz değişikliklerde bulunabilirsiniz. Teşekkürler 😊

Katkıda Bulunanlar

Katkıda Bulunma Rehberi

Katkıda bulunmak istiyorsanızCONTRIBUTING.md dosyasını inceleyip kolları sıvayabilirsiniz!

About

Recurrent Neural Network kullanımı ile farklı yazılı sanat alanlarında doğal dil üretimi gerçekleştiren bir çalışma.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp