Turing benzeri bir testi geçen ilk makina şairimiz: ROMTU
Bilgisayar mühendisliği son sınıf öğrencisi olarak 2015 sonbaharında tez için bir konu seçmem gerekiyordu. Şiiri ve Alan Turing'i seven biri olarak şiir yazan bir algoritma üzerinde çalışmaya karar verdim. Tez danışmanım Yrd.Doç.Dr Tuğba Yıldız ile birlikte yaklaşık 8 ay süren çalışmanın ardından projeyi bitirebildim. Artık Türkçe şiirler yazarak, insanları insan olduğuna ikna edebilen makina bir şairimiz var! Proje aynı zamanda İstanbul Bilgi Üniversitesi Bilgisayar Mühendisliği fakültesinin 2015-2016 eğitim öğretim yılının en iyi projesi seçildi.
Programların, insanların anlayabileceği cümleler üretmesi yeni bir teknoloji değil. Bunu oldukça başarılı bir şekilde gerçekleştiren projeler var. Benim projemin amacı, şiir gibi daha çok insanların duygularına hitap eden bir sanat dalını, bir bilgisayar programının taklit edip edemeyeceğini test etmekti.
Programın ismine başlangıçtan yaklaşık 3 ay sonra karar verdim. İkinci dünya savaşı döneminde Zonguldak'ta yaşayan şair iki arkadaş Rüştü Onur ve Muzaffer Tayyip Uslu'nun baş harflerini kullanarak bu programa bir isim bulmuş oldum: ROMTU
Bu yazının içinde çok detaylı teknik bilgiler paylaşmayacağım. Detaylı bilgi edinmek isteyenler için yazının sonunda tezimin ve projenin kodlarının linkini paylaşıyor olacağım.
Teknik Detaylar
ROMTU'nun şiir yazarken kullanabileceği bir kelime haznesi oluşturmak için 1500 farklı şiirin içinden en çok kullanılan 4245 kelimeyi belirledik. Daha sonra bu kelimeleri biçimlerine(isim,sıfat,zarf vs) ve temel anlamlarına(negatif,pozitif vs.) gibi temel kategorilere ayırdık.
Daha sonra 2882636 kelimeden oluşan Zemberek veritabanını kullanarak bu 4245 kelimenin olabilecek bütün gramer çekimlerini listeledik.
Program böylece doğru bir şekilde cümle kurmayı öğrenmiş oldu. Fakat şiirlerin anlamlı olabilmesi için kelimeler arasında bir anlam ilişkisi kurması gerekiyordu. Bunun için de Türkçe websiteler taranarak oluşturulmuş, içinde yaklaşık 500 milyon kelime bulunan bir data kullandık. Program hangi kelimelerin ne sıklıkta yan yana geçtiğini hesaplayarak, kelimeler arasında bir anlam ilişkisi kurmayı öğrendi. Örneğin ağaç ve bahçe kelimelerinin aynı cümlede geçme oranı ağaç ve bardak kelimelerinin aynı cümlede geçme oranından daha yüksek olduğu için program, ağaç kelimesinin bardak yerine bahçe ile benzer temalara sahip olmasını bilir hale geldi.
Şiir kalıpları oluşturmak için de ünlü şairlerin şiirlerini analiz ederek, hangi tarzda şiirler yazdıklarını tespit ettik ve bunları program için bir kalıp haline getirdik.
Deney
Projeye başladığım ilk andan beri en büyük hayalim, programın Turing benzeri bir testi geçebilmesiydi. Bilmeyenler için Turing testiyle ilgili Wikipedia'dan bir alıntı paylaşayım:
"Turing testinin amacı, bir makinenin düşünebildiğini söyleyebilmenin mantıksal olarak mümkün olup olmadığıdır. Turing testine göre makine, gönüllü bir insanla birlikte, sorgulayıcının görüş alanının dışında bir yere saklanır. Sorgulayıcı yalnız soru sormak suretiyle hangisinin insan hangisinin bilgisayar olduğunu saptamaya çalışır. Sorgulayıcının soruları ve daha önemlisi aldığı yanıtlar, tamamen ses gizlenerek, yani ya bir klavye sisteminde yazılarak veya bir ekranda gösterilerek verilir. Sorgulayıcıya bu soru-cevap oturumunda elde edilen bilgiler dışında her iki taraf hakkında hiçbir bilgi verilmez. Dizi halinde tekrarlanan testler sonucunda sorgulayıcı, tutarlı bir şekilde insanı saptayamadığı takdirde makine Turing testini geçmiş sayılır."
Okulda deneyi gerçekleştirmeden önce kendim bir test yapmak istedim. ROMTU'nun ürettiği bir kaç şiiri "Bilgi Romtuoğlu" ismiyle antoloji.com sitesine gönderdim. Şiirler editör onayından geçti ve yayınlandı!
Şiirler http://www.antoloji.com/bilgi-romtuoglu/ adresinde hala erişilebilir durumda.
Bizim okulda yaptığımız deneyin yöntemi şu şekilde oldu:
Deneklere 6 tane ünlü şairler tarafından yazılmış şiirler, 6 tane de ROMTU tarafından üretilmiş şiirler verildi. Deneklerden insan tarafından yazılmış olanları tespit etmeleri istendi. Bunun yanında denekler her şiiri kafiye, mesaj ve dil bilgisi kullanımı üzerine puanlayacaktı.
Test 146 mühendislik öğrencisiyle fiziksel bir ortamda gerçekleştirildi.
Deneklere verilen şiirler şu şekildeydi:
Soru 1
Kapalı koğuşun kenarında
Güneş gibiydi gözü
Vefasız sonbaharda
*
Otobüsler doluşuyordu
Karlı atölyenin yakınında
Kanaryalar ötüyordu
Tuhafça
Sana bırakmalıyım deniz
Sende geçmeli mevsimlerim
Sende çiçek açmalı ağaçlarım
*
Sende yaşamalıyım deniz
Asi ve hür
Sende ölmeliyim
Bulutlara bakarak
Doğru Cevap: Birinci şiir ROMTU tarafından, ikinci şiir Rüştü Onur tarafından yazılmıştır.
Soru 2
Ben şairim
Denizin u üzerinde yürüyebilirim
Islık çalarak
Hatta ellerim cebimde
Bir de sigara bulunsun
İsterseniz ağzımda
Vapurlar yanaşıyor sabah vakti
Acı var memlekette yine
Ve azıcık rakı
Ama ben seviyorum seni
Özlüyorum
Yine bu sonbaharda
Doğru Cevap: Birinci şiir Muzaffer Tayyip Uslu tarafından, ikinci şiir ROMTU tarafından yazılmıştır.
Soru 3
Veda etsem hepinize
Ufuk kanlı bir denize
Dönüyor sizi bıraksam
*
Gün batıyor, gün batıyor
Evimi, eşyamı, paramı
Nem varsa yaksam ve bir an
Kaybetsem kara bir duman
Arkasında hafızamı
Mecalsizdim işte
Özlediğin kadın
Özlemez seni üstelik
*
Sen vefasız çirkef
Utandığımı bilmelisin
O berbat yerde
Şafaklar sararınca aniden
Doğru Cevap: Birinci şiir Ahmet Muhip Dıranas tarafından, ikinci şiir ROMTU tarafından yazılmıştır.
Soru 4
Acı içinde seviyorum seni burukça
Ve sen
Bir erkekle evleniyorsun yaşlıca
Ve ben
Puslu bir çöldeyim
Çiçekler bile yabani burada
Deniz olurum
Belki birgün yeşiller giyer
Ağaç olurum
Hiç belli olmaz sevgilim
Belki birgün beyazlar giyer
Senin olurum
Doğru Cevap: Birinci şiir ROMTU tarafından, ikinci şiir Nazım Hikmet Ran tarafından yazılmıştır.
Soru 5
Karçiçeği doğdu,
karların altından
Artık bahar yakın derken
Erken doğum yaptı bahar
*
Kış bahara gebe
bahar çiçeklere
Oysa kış bahardan önce
kardeleni doğurdu
O yetim kabirde
Özgürsün işte
Yiğit bir şahin gibi
*
Akşamlar siyah içindeydi
Çiçekler miskin bugün
Parçalanıyorum işte
Yılgın bir gelincik gibi
Doğru Cevap: Birinci şiir Hikmet Elp tarafından, ikinci şiir ROMTU tarafından yazılmıştır.
Soru 6
Çekingen kadınlar gibi
Kasvetli bir köşkte
Susuz yaz gibi
Trenler devrilmez artık
Şarap da damıtılmaz
Kış ürpermez artık
Aşk anlatılmaz
Sen olmak gerekir
Seni anlıyorum
Çünkü yüreğindeki senim
*
Beni korkutan şey
Ölüm değil
Beni korkutan insanlar
Doğru Cevap: Birinci şiir ROMTU tarafından, ikinci şiir Muzaffer Tayyip Uslu tarafından yazılmıştır.
Sonuçlar
Tezde her şiirin sonucunu ayrı ayrı ele alsamda burada yazıyı çok uzatmamak adına genel sonuçlardan bahsedeceğim.
Toplam sonuç olarak katılımcıların %51.37'si insan tarafından yazılmış şiirleri doğru tespit ederken %48.63'ü yanıldı. Bu sonuç Turing testini geçme limiti olan %30'un çok üzerinde. Katılımcıların neredeyse yarısı insan ve program tarafından üretilmiş şiirleri ayırt edemediler.
Yukarıdaki tabloda demografik başarı yüzdelerini görebilirsiniz. Buna göre insan tarafından yazılmış şiirleri tespit etme konusunda kadınlar erkeklere göre yaklaşık %2 daha başarılı. Bunun yanında şiirle ilgili olduğunu söyleyen katılımcılar, ilgisizlere göre yaklaşık yine %2 daha başarılı. Bilgisayar mühendisliği öğrencileri diğer mühendislik öğrencilerine göre yaklaşık %8 daha başarısız oldu.
ROMTU'nun ürettiği şiirler kafiyede 5 üzerinden 3.28, mesajda 5 üzerinden 3.25, dil bilgisi kullanımında 5 üzerinden 3.39 puan aldı.
Sonuç
Sonuç olarak ROMTU, Türkiye'de ilk defa Turing benzeri bir testi geçen bir proje oldu. İleriki yıllarda başka insanların da katkıda bulunmasıyla proje daha da başarılı bir hale gelecektir. Bu süre zarfında belki müzik besteleyen programlar da yazılacak ve ROMTU'nun şiirleri şarkı sözü olarak kullanılacak..
Linkler
Tez: Automatic Poetry Generation in Turkish https://www.researchgate.net/publication/304396635_Automatic_Poetry_Generation_in_Turkish
Kaynak Kodlar: https://github.com/utkusen/romtu