RSS

Doğal dil damgalama, Lisp reçetelerinin wikiye aktarılması, Lisp yorumlayıcı yazmak

17 Dec

İnsan zihninde ve beyninde psikolojik zaman algılaması üzerine yazmaya çalıştığım bilişsel bilim yüksek lisans tezimden (ve işimden) kalan vakitlerde katkıda bulunmaya çalıştığım doğal dil damgalama projesi [1 [PDF], 2] yoğun şekilde devam ediyor.

Dilbilimciler tarafından tespit edilen sözdizimsel cümle değiştirme araçları içinden otomatikleştirilmesi en zor araçlardan birinin edilgenleştirme aracı olması ilk anda akla gelmeyen bir şeydi. Bir kez daha doğal dil ile uğraşmanın cilveleri ile burun buruna geldik. Anadili Türkçe olan biri bir cümleyi duyup ya da okuyup kolayca edilgenleştirebilirken (ya da edilgenleştiremeyeceğini fark ederken) bunu mekanik hale getirmeye çalıştığımızda dikkat edilmesi gereken pek çok kural çıkıyor. Çözümlenmiş yaklaşık 7200 cümle barındıran Türkçe Treebank veri tabanı üzerinden çeşitli cümleleri edilgenleştirmeye çalışırken öznenin cansız olup olmamasından tutun, fiil kategorilerine, semantik bilgilere bakmak, özne silmek, nesneyi -i halinden çıkarmak, fiil üzerinden özne ile şahıs eki uyumunu sağlamak ve daha pek çok kurala uymak gerekiyor.

Bu da dil damgalama araçlarını otomasyona sokarken Common Lisp ile geliştirdiğim programa Türkçe WordNet, Türkçe sözlük ve benzeri şeylerin entegre edilmesi anlamına geliyor. Tüm bu kuralları ve belki daha fazlasını cümleyi okur okumaz halledebilen insan beynine, mimarisine ve işlem yöntemlerine hayran olmamak mümkün değil! Şu ana kadar varılan durumda ortaya çıkan şeylerden biri de bir aracın otomatikleştirilmesi ne kadar kolay ise bunun uygulanabileceği cümle sayısı o kadar az. Lisp ile kodlanması çok az vaktimi almış araçların uygulanabileceği cümle sayısı mevcut derlemde %1 – %5 arasında geziniyor. En çok uygulanabilecek araçlar ise (edilgenleştirme, ve bağlacının bileşenlerine yer değiştirmek, vb.) %50 ya da daha çok cümleye uygulanabilir halde ancak bu araçların doğru kodlanması ve test etmesi çok vakit alıyor. Böyle de ilginç bir denge söz konusu!

Bahsi geçen doğal dil damgalama projesi ile ilgili ürünler olgunlaşıp uygulanabilirlik istatistikleri elde edilince bitişken (agglutinative) bir dil olan Türkçedeki yazılı eserlerin damgalanmaya ne kadar elverişli olduklarına dair bilgi edinilmiş olacak ve bu tür damgalamanın mesaj gömme, korsana karşı korunma gibi açılardan nerelere varabileceğini görmek imkanı elde edilecek (bu kategorideki dillerin yapısı İngilizce, Almanca, Fransızca gibi dillerden çok farklı ve bunların damgalanması ile ilgili yapılan çalışmalar çok çok az ve yeni). Kendi açımdan da akademik ortamda dilbilim, bilgisayar mühendisliği, elektronik mühendisliğil, bilişsel bilimler gibi farklı alanların belli bir ortak amaç doğrultusunda ne şekilde verimli çalışabileceklerini görmüş olacağım.

Bu projede çalışırken yoğun olarak Common Lisp ve bazı dosya dönüştürme, ayıklama, düzeltme işleri için de Perl kullanıyorum. Common Lisp ile uğraşırken en çok başvurduğum kaynaklardan biri de Common Lisp Cookbook. Bu güzide eser pek çok pratik ve “günlük” iş için hayatımı kurtardı ancak küçük bir sıkıntısı olduğuna kanaat getirdim: Bir şeyler eklemek ya da bir şeyleri düzeltmek biraz meşakkatli bir işti. Sonra aklıma binlerce kitap barındıran Wikibooks projesinin bu konuda imdadıma yetişebileceği geldi ve yavaş yavaş bu güzel reçeteler barındıran lisp kitabının bölümlerini Programming: Common Lisp kitabına aktarmaya başladım. Böylece söz konusu kitap hem Internet’te daha çok erişilir hale gelecek hem de faydalı veriye farklı yerden ulaşmak mümkün olacak. Tabii asıl avantaj Wikibooks altyapısı sayesinde çok kolay ve güvenli halde düzenlenebilir bir yapıya kavuşacak. Şu anda kitabın yaklaşık %40’lık bir bölümü Wikipedia’ya aktarılmış durumda.

Lisp demişken, son zamanlarda karşıma epey “haydi bir Lisp yorumlayıcısı yazalım!” şeklinde yazı çıkmaya başladı, hayırdır inşallah diyorum 😉

Writing A Lisp Interpreter In Haskell

Haskell/Write Yourself a Scheme in 48 Hours

[cs-lisp] python lisp interpreter

DDİ (Doğal Dil İşleme – NLP Natural Language Processing) ile başladık aynı konu ile bitirelim. Zemberek projesinin geliştiricileri Akın kardeşler bir sonraki aşamaya, çoklu kelime çözümleme aşamasına başlamışlar. Anadilime dair beni heyecanlandıran bu tür çabaları büyük hevesle takip ediyor ve kendilerine bu çetin ceviz, pürüzlü, taşlı topraklı yolda canı gönülden başarı dileklerimi ve teşekkürlerimi iletiyorum (ve bu son cümle ile de derlemlerine bir cümle hediye ediyorum ;-)).

Advertisements
 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: