Tem 042017
 
245.295 views

“kalbur” projemizde ele aldığımız kök+ek ayrıştırma çalışmalarımızda kök ve ek listelerinden yararlanıyoruz. Ele aldığımız köklerin salt veya türetilmiş olması hem olası ek listesinin içeriğini etkilemekte, hem de “derin öğrenme” veri setlerine uygulayacağımız sadeleştirmelerin hassasiyetini etkileyecektir.

Kabaca bir fikir vermesi için geç ve geçir fiilleri ile ilgili bazı bilgileri değerlendirdik.

Ir eki (buradaki I karakteri ı, i, u veya ü karakterlerinden herhangi birine karşılık gelir) dilimizdeki fiilden fiil yaratan ekler grubundan biridir.

Listemiz şu fiillerden oluşuyor:
kaçır: kaç + ır
şaşır: şaş + ır
taşır: taş + ır
yatır: yat + ır

bitir: bit + ir
geçir: geç + ir
içir : iç + ir
pişir: piş + ir
şişir: şiş + ir
vazgeçir: vazgeç + ir
yetir: yet + ir
yitir: yit + ir

doğur: doğ + ur
doyur: doy + ur
duyur: duy + ur
uçur : uç + ur

düşür: düş + ür
göçür: göç + ür

Bu yazımızda, yukarıdaki listede her alan geçmek ve geçirmek sözcüklerini ele aldık.

Önce, “geçmek” fiilinin aldığı olası ekleri sıralamaya çalışalım:
geç, geçe, geçebildi, geçebildim, geçebildiği, geçebildiğini, geçebilecek, geçebilecekler, geçebilecekleri, geçebileceklerine, geçebileceklerini, geçebileceği, geçebileceğimiz, geçebileceğimizi, geçebileceğine, geçebileceğini, geçebileceğinin, geçebileceğiniz, geçebilen, geçebilir, geçebilirdi, geçebilirdik, geçebiliriz, geçebilirler, geçebilirse, geçebilirsek, geçebilirsin, geçebilirsiniz, geçebiliyor, geçebiliyordu, geçebiliyorduk, geçebiliyorlar, geçebiliyorsunuz, geçebiliyoruz, geçebilme, geçebilmek, geçebilmektedir, geçebilmeleri, geçebilmemiz, geçebilmenin, geçebilmesi, geçebilmesini, geçebilmiş, geçebilsin, geçecek, geçecekken, geçecekler, geçeceklerdir, geçecekleri, geçeceklerine, geçeceklerini, geçecekmisiniz, geçecekmiş, geçecekmişsiniz, geçecekse, geçeceksin, geçeceksiniz, geçecekti, geçecektik, geçecektim, geçecektin, geçecektir, geçeceğe, geçeceği, geçeceğim, geçeceğimi, geçeceğimiz, geçeceğimize, geçeceğimizi, geçeceğimizin, geçeceğinden, geçeceğine, geçeceğini, geçeceğinin, geçeceğiniz, geçeceğiz, geçek, geçeli, geçelim, geçemeden, geçemedi, geçemedik, geçemedikleri, geçemediklerin, geçemediklerini, geçemediler, geçemedim, geçemedin, geçemediği, geçemediğimiz, geçemediğini, geçemem, geçememe, geçememektedir, geçemememi, geçememesi, geçememesinin, geçememiş, geçememişti, geçemesin, geçemeyecek, geçemeyecektir, geçemeyeceğim, geçemeyeceğiz, geçemeyen, geçemeyene, geçemeyenler, geçemeyenlerin, geçemeyerek, geçemeyince, geçemeyip, geçemeyiz, geçemez, geçemezdi, geçemezken, geçemezler, geçemezse, geçemezsek, geçemezsin, geçemezsiniz, geçemiyor, geçemiyordu, geçemiyorlar, geçemiyorsunuz, geçemiyorum, geçemiyoruz, geçen, geçende, geçene, geçeni, geçenin, geçenler, geçenlerde, geçenlerden, geçenlere, geçenleri, geçenlerin, geçenlerle, geçer, geçercesine, geçerdi, geçerdik, geçerdim, geçerek, geçerim, geçeriz, geçerken, geçerler, geçerlerdi, geçerlerse, geçerli, geçerlidir, geçerlik, geçerlilik, geçerliliğe, geçerliliği, geçerliliğine, geçerliliğini, geçerliydi, geçerliyse, geçerliği, geçerliğini, geçermiş, geçerse, geçersek, geçersem, geçersen, geçerseniz, geçersin, geçersiniz, geçersiz, geçersizdir, geçersizlik, geçersizliği, geçersizliğine, geçersizliğini, geçeyim, geçgel, geçgin, geçi, geçici, geçicidir, geçiciyiz, geçide, geçidi, geçidin, geçidinde, geçidindeki, geçidinden, geçidine, geçidini, geçidinin, geçikmedi, geçildi, geçildikten, geçildiği, geçildiğinde, geçildiğinden, geçildiğine, geçildiğini, geçildiğinin, geçilebildi, geçilebildiğini, geçilebilecek, geçilebileceği, geçilebileceğine, geçilebileceğini, geçilebilir, geçilebiliyor, geçilebilmesi, geçilebilmiş, geçilecek, geçilecekse, geçilecekti, geçilecektir, geçileceği, geçileceğine, geçileceğini, geçileceğinin, geçilemedi, geçilemediği, geçilemediğini, geçilememesi, geçilememesinin, geçilemeyecek, geçilemeyeceğini, geçilemeyen, geçilemez, geçilemiyor, geçilen, geçilerek, geçilince, geçilir, geçilirken, geçilirse, geçiliyor, geçilme, geçilmeden, geçilmedi, geçilmediği, geçilmediğini, geçilmek, geçilmekte, geçilmektedir, geçilmeli, geçilmemesi, geçilmemiş, geçilmesi, geçilmesidir, geçilmesinde, geçilmesinden, geçilmesine, geçilmesini, geçilmesinin, geçilmesiyle, geçilmeye, geçilmeyecek, geçilmeyeceği, geçilmeyeceğini, geçilmeyen, geçilmez, geçilmezse, geçilmiyor, geçilmiyordu, geçilmiş, geçilmişti, geçilmiştir, geçilse, geçilsin, geçim, geçimimi, geçimimizi, geçimine, geçimini, geçiminin, geçiminizi, geçimlerini, geçimli, geçimlik, geçimsiz, geçimsizlik, geçimsizliği, geçimsizliğin, geçin, geçince, geçinceye, geçinde, geçindiklerini, geçindiren, geçindiriyor, geçindirme, geçindirmek, geçindirmeye, geçindiği, geçindiğini, geçinebilmek, geçinecek, geçinemediklerini, geçinemediği, geçinemediğini, geçinemeyen, geçinemiyor, geçinemiyorum, geçinemiyoruz, geçinen, geçinenler, geçinenlere, geçinenleri, geçinenlerin, geçinerek, geçinip, geçinir, geçinirken, geçiniyor, geçiniyordu, geçiniyorduk, geçiniyorlar, geçiniyorlardı, geçiniyorum, geçiniyoruz, geçiniz, geçinme, geçinmek, geçinmekte, geçinmesi, geçinmeye, geçinsin, geçip, geçit, geçite, geçiti, geçitin, geçitköy, geçitle, geçitler, geçitlerde, geçitlerdeki, geçitlerden, geçitlere, geçitleri, geçitlerin, geçitlerinde, geçitlerindeki, geçitlerinden, geçitlerine, geçitlerini, geçitlerinin, geçitlerle, geçitli, geçitte, geçitteki, geçitten, geçiyor, geçiyordu, geçiyorduk, geçiyordum, geçiyorlar, geçiyorlardı, geçiyormuş, geçiyorsa, geçiyorsun, geçiyorsunuz, geçiyorum, geçiyoruz, geçiş, geçişe, geçişi, geçişidir, geçişim, geçişimiz, geçişimizi, geçişin, geçişinde, geçişindeki, geçişinden, geçişine, geçişini, geçişinin, geçişiniz, geçişiyle, geçişkenlik, geçişkenliği, geçişkenliğinin, geçişle, geçişler, geçişlerde, geçişlerdeki, geçişlere, geçişleri, geçişlerimde, geçişlerin, geçişlerinde, geçişlerindeki, geçişlerinden, geçişlerine, geçişlerini, geçişlerinin, geçişleriyle, geçişlerle, geçişli, geçişlik, geçişte, geçişteki, geçişten, geçiştir, geçiştirdi, geçiştirdiler, geçiştiren, geçiştirildi, geçiştirilebilecek, geçiştirilecek, geçiştirileceği, geçiştirilemez, geçiştirilen, geçiştirilmesi, geçiştirin, geçiştirip, geçiştiriyor, geçiştirme, geçiştirmek, geçiştirmeye, geçkin, geçler, geçlik, geçme, geçmede, geçmeden, geçmedi, geçmedik, geçmedikleri, geçmediklerini, geçmedikçe, geçmediler, geçmedim, geçmediği, geçmediğinden, geçmediğine, geçmediğini, geçmediğinin, geçmek, geçmekle, geçmekte, geçmektedir, geçmekten, geçmekteyiz, geçmekti, geçmektir, geçmeleri, geçmelerinden, geçmelerine, geçmelerini, geçmelerinin, geçmeli, geçmelidir, geçmelisiniz, geçmeliyiz, geçmem, geçmeme, geçmemek, geçmemektedir, geçmemeleri, geçmemeli, geçmemelidir, geçmemesi, geçmemesine, geçmemesini, geçmemesinin, geçmemeye, geçmemi, geçmemiz, geçmemize, geçmemizi, geçmemizin, geçmemiş, geçmemişken, geçmemişti, geçmemiştir, geçmen, geçmenin, geçmeniz, geçmenizde, geçmenizi, geçmese, geçmeseydi, geçmesi, geçmesidir, geçmesin, geçmesinde, geçmesinden, geçmesine, geçmesini, geçmesinin, geçmesinler, geçmesiydi, geçmesiyle, geçmeye, geçmeyebilir, geçmeyecek, geçmeyeceklerini, geçmeyecektir, geçmeyeceği, geçmeyeceğine, geçmeyeceğini, geçmeyeceğinin, geçmeyelim, geçmeyen, geçmeyenin, geçmeyenler, geçmeyerek, geçmeyeyim, geçmeyi, geçmeyin, geçmeyince, geçmeyiniz, geçmeyip, geçmeyle, geçmez, geçmezdi, geçmezken, geçmezler, geçmezse, geçmezsek, geçmiyor, geçmiyordu, geçmiyorsa, geçmiyorsunuz, geçmiyorum, geçmiyoruz, geçmiş, geçmişe, geçmişi, geçmişim, geçmişimde, geçmişime, geçmişimi, geçmişimiz, geçmişimizde, geçmişimizden, geçmişimize, geçmişimizi, geçmişimizin, geçmişimizle, geçmişimle, geçmişin, geçmişinde, geçmişindeki, geçmişinden, geçmişine, geçmişini, geçmişinin, geçmişiniz, geçmişinizde, geçmişinizden, geçmişinize, geçmişinizi, geçmişinizin, geçmişiyle, geçmişiz, geçmişizdir, geçmişken, geçmişle, geçmişler, geçmişlerden, geçmişlerdi, geçmişlerdir, geçmişlere, geçmişleri, geçmişlerinde, geçmişlerindeki, geçmişlerinden, geçmişlerine, geçmişlerini, geçmişlerinin, geçmişleriyle, geçmişse, geçmişsiniz, geçmişte, geçmişteki, geçmiştekinden, geçmişten, geçmişti, geçmiştik, geçmiştim, geçmiştir, geçse, geçsek, geçseler, geçsem, geçseydi, geçseydik, geçsin, geçsinler, geçte, geçten, geçti, geçtik, geçtikleri, geçtiklerinde, geçtiklerine, geçtiklerini, geçtikte, geçtikten, geçtikçe, geçtiler, geçtim, geçtimiz, geçtin, geçtiniz, geçtiyse, geçtiği, geçtiğim, geçtiğimde, geçtiğimi, geçtiğimiz, geçtiğimizde, geçtiğimizden, geçtiğimize, geçtiğimizi, geçtiğimizin, geçtiğin, geçtiğinde, geçtiğinden, geçtiğine, geçtiğini, geçtiğinin, geçtiğiniz, geçtiğinizde, geçtiğinizi.

Aslında yukarıdaki listenin içinde de yer alan “geçirmek” ile bağlantılı ekleri ayrıca listeledik:
geçir, geçirdi, geçirdik, geçirdikleri, geçirdiklerinde, geçirdiklerinden, geçirdiklerine, geçirdiklerini, geçirdiklerinin, geçirdikten, geçirdikçe, geçirdiler, geçirdim, geçirdin, geçirdiniz, geçirdiyse, geçirdiği, geçirdiğim, geçirdiğimde, geçirdiğimden, geçirdiğime, geçirdiğimi, geçirdiğimin, geçirdiğimiz, geçirdiğimizde, geçirdiğimizi, geçirdiğin, geçirdiğinde, geçirdiğinden, geçirdiğine, geçirdiğini, geçirdiğinin, geçirdiğiniz, geçirdiğinizde, geçirdiğinizi, geçirebildiğini, geçirebilecek, geçirebilecekler, geçirebilecekleri, geçirebileceklerini, geçirebileceği, geçirebileceğim, geçirebileceğimiz, geçirebileceğine, geçirebileceğini, geçirebileceğiniz, geçirebilen, geçirebilir, geçirebilirim, geçirebiliriz, geçirebilirler, geçirebilirsek, geçirebilirsin, geçirebilirsiniz, geçirebiliyor, geçirebiliyorlar, geçirebiliyorum, geçirebilme, geçirebilmek, geçirebilmeleri, geçirebilmesi, geçirebilmiş, geçirecek, geçirecekler, geçirecekleri, geçireceklerine, geçireceklerini, geçirecekseniz, geçireceksin, geçireceksiniz, geçirecekti, geçirecektir, geçireceği, geçireceğim, geçireceğime, geçireceğimi, geçireceğimiz, geçireceğimize, geçireceğimizi, geçireceğine, geçireceğini, geçireceğiniz, geçireceğiz, geçirelim, geçiremedi, geçiremedik, geçiremediklerini, geçiremediler, geçiremedim, geçiremediği, geçiremediğini, geçiremeyeceklerini, geçiremeyeceğini, geçiremeyince, geçiremez, geçiremezsiniz, geçiremiyor, geçiremiyorlar, geçiremiyorum, geçiren, geçirenler, geçirenlerde, geçirenlerden, geçirenlerin, geçirerek, geçireyim, geçirgen, geçirgenlik, geçirgenliği, geçirgenliğini, geçirgenliğinin, geçirici, geçirildi, geçirildikten, geçirildiler, geçirildiği, geçirildiğinde, geçirildiğine, geçirildiğini, geçirildiğinin, geçirilebilecek, geçirilebileceği, geçirilebileceğini, geçirilebilir, geçirilebiliyor, geçirilebilmesi, geçirilecek, geçirilecekti, geçirilecektir, geçirileceği, geçirileceğine, geçirileceğini, geçirileceğinin, geçirilemedi, geçirilemediği, geçirilemediğini, geçirilememişti, geçirilememiştir, geçirilemeyen, geçirilemez, geçirilen, geçirilenler, geçirilerek, geçirilince, geçirilip, geçirilir, geçirilirken, geçirilirse, geçiriliyor, geçirilme, geçirilmeden, geçirilmedi, geçirilmediği, geçirilmediğini, geçirilmek, geçirilmekte, geçirilmektedir, geçirilmeleri, geçirilmelerini, geçirilmeli, geçirilmelidir, geçirilmemesi, geçirilmemiş, geçirilmesi, geçirilmesidir, geçirilmesinde, geçirilmesinden, geçirilmesine, geçirilmesini, geçirilmesinin, geçirilmesiyle, geçirilmeye, geçirilmeyen, geçirilmeyi, geçirilmiyor, geçirilmiş, geçirilmişti, geçirilmiştir, geçirilsin, geçirimsiz, geçirimsizlik, geçirin, geçirince, geçirip, geçirir, geçirirdi, geçirirdik, geçirirdim, geçiririm, geçiririz, geçirirken, geçirirler, geçirirlerse, geçirirse, geçirirsek, geçirirseniz, geçirirsiniz, geçiriyor, geçiriyordu, geçiriyorduk, geçiriyordum, geçiriyorlar, geçiriyorlardı, geçiriyorlarmış, geçiriyormuş, geçiriyorsa, geçiriyorsanız, geçiriyorsun, geçiriyorsunuz, geçiriyorum, geçiriyoruz, geçirme, geçirmede, geçirmeden, geçirmedi, geçirmedik, geçirmediklerini, geçirmediler, geçirmedim, geçirmediği, geçirmediğimiz, geçirmediğini, geçirmek, geçirmekle, geçirmekse, geçirmeksizin, geçirmekte, geçirmektedir, geçirmekten, geçirmekti, geçirmektir, geçirmeleri, geçirmelerinde, geçirmelerine, geçirmelerini, geçirmelerinin, geçirmeli, geçirmelidir, geçirmeliler, geçirmelisiniz, geçirmeliyiz, geçirmem, geçirmeme, geçirmemek, geçirmemeleri, geçirmemeli, geçirmemesi, geçirmemi, geçirmemiz, geçirmemize, geçirmemizi, geçirmemizin, geçirmemiş, geçirmemişse, geçirmemiştim, geçirmemiştir, geçirmen, geçirmenin, geçirmeniz, geçirmenizde, geçirmenize, geçirmenizi, geçirmeseydik, geçirmesi, geçirmesidir, geçirmesin, geçirmesinde, geçirmesinden, geçirmesine, geçirmesini, geçirmesinin, geçirmesiyle, geçirmeye, geçirmeyecek, geçirmeyeceğiz, geçirmeyen, geçirmeyi, geçirmeyin, geçirmez, geçirmezlik, geçirmezliği, geçirmiyor, geçirmiyorum, geçirmiyoruz, geçirmiş, geçirmişim, geçirmişiz, geçirmişler, geçirmişlerdi, geçirmişlerdir, geçirmişse, geçirmişti, geçirmiştik, geçirmiştim, geçirmiştir, geçirse, geçirsek, geçirseler, geçirsin, geçirsinler, geçirten, geçirtmek, geçirtti.

“geçir” köküyle başlayan sözcük sayısı 303. Bu listede yer almayan başka ekler de bulunabilir. Çünkü bu listeyi, sadece 260 bin sözcükten oluşan bir “derlem” listesinden elde ettik. Daha kapsamlı bir derlem listesinden elde edebileceğimiz olası başka ekler de bulunabilir.

“geç” köküyle başlayan ve yine aynı derlem listesinden elde ettiğimiz sözcük sayısı ise 628. Bu sayıya “geçir” kökü ile elde edilenleri de eklersek toplam sayı 931 oluyor.

Türkçemizin zenginliğini bu sistematik üretkenlikte arasak yeridir.

Bir diğer fiilden fiil üreten ek grubu ise “dIr” ve “tIr” ekleriyle üretilir. Bu grupta yer alan fiil sayısı çok daha yüksektir.

Örneğin:
kaydır: kay + dır
bildir: bil + dir
bozdur: boz + dur
güldür: gül + dür
kıstır: kıs + tır
kestir: kes + tir
koştur: koş + tur
tüttür: tüt + tür

Bu grupta yer alan fiillerin sayısı yüze yakındır. Dolayısıyla olası ek sayısı da bir önceki gruba kıyasla çok daha yüksek olacaktır.

Ir, dIr ve tIr fiilden fiil üreten ekin oluşturduğu yeni fiil sayısı ve bunlara ulanabilecek ek sayıları karşılaştırıldığında, “kalbur” projemizdeki kök+ek ayırma kodlarımızın üretilen fiilleri de “kök” olarak ele alması işimizi kolaylaştıracak demektir. Bu yaklaşım, eklerinden arındırılmış sözcüklerin yer aldığı “derin öğrenme” verilerinin çok daha gerçekçi sonuçlar vermesini sağlayacaktır.

Ahmet Aksoy

Mar 112017
 
5.378 views

Zemberek kütüphanesindeki bir kök sorunu

Zemberek kütüphanesindeki bir kök sorunuBir kaç gün önce zemberek kütüphanesiyle köklerini belirlemeye çalıştığım sözcüklerden birinin yanlış çözümlendiğini farkettim. Fiil olması gereken bir kök, İsim olarak tanımlanmıştı. Benzer sözcüklerin durumuna bakınca, bunun sistematik bir sorun olduğunu farkettim.

Zemberek kütüphanesini geliştiren arkadaşlar bu projeyi daha fazla sürdürmeme kararı aldıkları için sözkonusu hatayı gidermek – bu konuda bir gönüllü çıkmazsa- pek mümkün gibi görünmüyor. Yine de, bu kütüphaneyi kullanmakta olan arkadaşları uyarmış olayım.

Sorun, “edebil” ile başlayan sözcüklerle ilgili. Üstelik hepsi sorun yaratmıyor. Sorunlu olarak gördüğüm sözcüklerden bazılarını aşağıda listeledim. Bu sözcüklerinin hepsinin asıl kökü et ve tipleri fiil.

Sorunun, kodlamadaki küçük bir problemden kaynaklandığını sanıyorum.
Kullandığım kütüphane: zemberek-tum-2.0.jar
Çağrıları jpype aracılığıyla yaptım.

Zemberek-tum-2.0.jar dosyasını kullanan arkadaşların bu ayrıntıya dikkat etmelerini öneriyorum. Bu kütüphaneyi Python 3 üzerinde çalıştırmak isteyenler http://gurmezin.com/python-ile-zemberek-kutuphanesini-kullanmak/ adresindeki yazıma göz atabilirler.

Sorunlu çözümlenen sözcükler (Hepsi için kök=et, tip =FIIL olmalı)
edebiliyoruz,edebi,ISIM
edebiliyorumdur,edebi,ISIM
edebiliyorum,edebi,ISIM
edebiliyorsunuzdur,edebi,ISIM
edebiliyorsunuz,edebi,ISIM
edebiliyorsundur,edebi,ISIM
edebiliyorsun,edebi,ISIM
edebiliyorsanız,edebi,ISIM
edebiliyorsan,edebi,ISIM
edebiliyorsam,edebi,ISIM
edebiliyorsak,edebi,ISIM
edebiliyorsa,edebi,ISIM
edebiliyormuşuz,edebi,ISIM
edebiliyormuşum,edebi,ISIM
edebiliyormuşsun,edebi,ISIM
edebiliyormuş,edebi,ISIM
edebiliyorlarsa,edebi,ISIM
edebiliyorlarmış,edebi,ISIM
edebiliyorlardı,edebi,ISIM
edebiliyorlar,edebi,ISIM
edebiliyorken,edebi,ISIM
edebiliyordur,edebi,ISIM
edebiliyordunuz,edebi,ISIM
edebiliyordun,edebi,ISIM
edebiliyordum,edebi,ISIM
edebiliyordular,edebi,ISIM
edebiliyorduk,edebi,ISIM
edebiliyordu,edebi,ISIM
edebiliyor,edebi,ISIM

edebilince,edebi,ISIM

edebilen,edebi,ISIM
edebilemezsiniz,edebi,ISIM
edebilemez,edebi,ISIM
edebilemeyiz,edebi,ISIM
edebilemeyeceğimin,edebi,ISIM
edebilemenin,edebi,ISIM
edebilemem,edebi,ISIM
edebilemek,edebi,ISIM
edebileme,edebi,ISIM

Oysa aşağıdaki örneklerde ve benzer diğer yüzlerce örnekte herhangi bir sorun bulunmuyor:
edebilelim,et,FIIL
edebileceğiz,et,FIIL
edebileceğiyle,et,FIIL
edebileceğiydi,et,FIIL
edebileceğinizin,et,FIIL
edebileceğinizi,et,FIIL
edebileceğinize,et,FIIL
edebileceğinizdir,et,FIIL
edebileceğinizden,et,FIIL
edebileceğiniz,et,FIIL
edebileceğinin,et,FIIL
edebileceğini,et,FIIL
edebileceğine,et,FIIL
edebileceğinden,et,FIIL
edebileceğinde,et,FIIL
edebileceğin,et,FIIL
edebileceğimizin,et,FIIL
edebileceğimizi,et,FIIL
edebileceğimize,et,FIIL
edebileceğimizdir,et,FIIL
edebileceğimizdi,et,FIIL
edebileceğimizden,et,FIIL
edebileceğimizde,et,FIIL
edebileceğimiz,et,FIIL


Ahmet Aksoy

Linkler:
http://gurmezin.com/python-ile-zemberek-kutuphanesini-kullanmak/

Kas 072016
 
4.434 views

Türkçe Kelimelerde Hecelerin Sayısal Dağılımı

Türkçe Hecelemede 6 Temel Kural başlıklı yazımda Türkçe hecelemede kullanılan 6 temel kuralı aktarmıştım. Bu kuralların bir kısmı, yabancı kökenli sözcükleri de kapsıyordu.

Bu kez, elimizdeki derlem veritabanından yararlanarak Türkçe kelimeleri hecelerine ayırdım ve kullanım sıklıklarını belirledim. Sonuçları üç ayrı kategoride ele aldım:

1- Sadece öztürkçe kelimeler
2- Öztürkçe ve yabancı kökenli kelimeler
3- Derlem dosyasındaki sözcüklere filtreleme uygulamadan bulunan kelimeler

Yine de olası hataları en aza indirgemek amacıyla frekansı 100’den düşük olan heceleri iptal ettim.

Değerlendirmede kullandığım ayrık kelime sayısı 1 milyon 754 bin 466’dır.
Bulunan hece sayıları yaklaşık 500 milyon civarındadır. Bulduğum rakamları yazının içinde ayrıntılı olarak bulabilirsiniz.

Sadece öztürkçe sözcüklere ait heceler

Türkçe Kelimelerde Hecelerin Sayısal Dağılımı

  • 1 hece: 22,122,931
  • 2 hece: 282,731,240
  • 3 hece: 171,238,129
  • 4 hece: 3,515,399

Öztürkçe ve yabancı kökenli sözcüklere ait heceler

Öztürkçe ve yabancı kökenli sözcükler

  • 1 hece: 22,259,705
  • 2 hece: 285,575,208
  • 3 hece: 174,653,474
  • 4 hece: 4,941,535
  • 5 hece: 247,814
  • 6 hece: 9,492

Filtreleme yapmaksızın bulunan heceler:

Filtresiz kelimeler

  • 1 hece: 22,632,219
  • 2 hece: 285,584,079
  • 3 hece: 174,661,739
  • 4 hece: 4,971,179
  • 5 hece: 254,565
  • 6 hece: 15,577
  • 7 hece: 2359
  • 8 hece: 436
  • Doğal olarak, 4 harften fazlasını içeren hece sayısı dikkate almaya değmeyecek kadar az. Üstelik bunlardan bir çoğu muhtemelen hatalı yazım gibi nedenlerle zaten devre dışı bırakılması gereken sözcüklere aittir.

    Elde ettiğimiz sonuçları şu şekilde özetlemek mümkün:
    1- Türkçe sözcükler en fazla 4 harf içeren hecelere sahiptir.
    2- İki harften oluşan heceler en büyük grubu oluşturur.
    3- En az rastlanan heceler, 4 harf içerenlerdir.

    Yazıda sözünü ettiğim istatiski verilerin elde edilmesi ve grafik halinde görselleştirilmesi Python 3.5.2 ile sağlanmıştır. Grafik paketi matplotlib‘dir.

    Dilimize özgü istatistik değerlendirmelere yönelik yazılarıma fırsat buldukça devam edeceğim.

    Beni izleyin!

    Ahmet Aksoy

    Türkçe Kelimelerde Hecelerin Sayısal Dağılımı: http://gurmezin.com/turkce-kelimelerde-hecelerin-sayisal-dagilimi/

    Ağu 262016
     
    4.274 views

    Eğitilmiş word2vec datasını nasıl kullanırız?

    Eğitilmiş word2vec datasını nasıl kullanırız?

    Elbette bu tür çalışmalarımızı Python ile yapıyoruz. Üstelik interaktif denemeler yapıyorsak, iPython kullanmamız daha doğru. iPython son dönemde jupyter ile entegre çalışıyor.

    Bu yüzden önce kullanmakta olduğunuz Python sürümünü aktif hale getirin. Ben Python 3.5.1 kullanıyorum ve bunun için tanımladığım evp35 isimli bir sanal ortamım var.

    Sanal ortamımı devreye sokuyorum:

    Artık “python” komutum doğrudan python 3.5.1 sürümünü devreye sokuyor. Gerekli modülleri de bu sanal ortam üzerinden yükledim.

    Aynı şey jupyter için de geçerli. Yüklemek için vereceğiniz komut şöyle:

    Çalışmamızda word2vec modülünü kullanacağız. Onu da yükleyelim:

    Artık iPython’u jupyter üzerinden devreye sokabiliriz. Bunun için:

    komutunu kullanın ve “New” kutucuğundan “python 3” seçin.

    Aşağıdaki kodları kullanabilmeniz için eğitilmiş veri kümemizi de indirmeniz gerekiyor.

    https://drive.google.com/drive/folders/0B_iRLUok9_qqOFozeHNFMjRHTVk adresinden hnz_2010.bin isimli dosyayı indirin. Eğitilmiş vektörlerimiz bu dosyaya kayıtlıdır.

    Hazırlıklarınız tamamsa, aşağıdaki işlemleri siz de kendi bilgisayarınızda uygulayabilir, yeni denemeler yapabilirsiniz.

    Deneyimlerinizi benimle paylaşmayı da lütfen unutmayın!

    Ahmet Aksoy
    Açık Kaynak DerlemTR Proje Yöneticisi

    [gist https://gist.github.com/ahmetax/58200ef5014176438aea2ad78624686a]

    Takıldığınız yerler olursa, Yorum bölümünden bana ulaşabilirsiniz.

    Ağu 262016
     
    5.087 views

    Hürriyet Gazetesi Datasıyla Derin Öğrenme Çalışmaları

    Açık Kaynaklı DerlemTR Projesi‘nin yeni aşamasında, Hürriyet Gazetesi yetkilileri “derin öğrenme” (deep learning) konulu çalışmalarımızda gazete arşivlerinden yararlanma isteğimizi yine olumlu karşıladı. Başta Sayın Ersay Dizman olmak üzere, gazete yetkililerine tekrar teşekkür ediyorum.

    Hürriyet Gazetesi Datasıyla Derin Öğrenme Çalışmaları

    Bu aşamada yine python dilini kullandım ve 2010 yılı Hürriyet Gazetesi arşivlerini taratarak “uygun” haberleri bir araya topladım. Haberlerin tarihi, başlığı, muhabiri veya yazarı belli değil. Çünkü bu bilgilere ihtiyacımız yok.

    Yapacağımız çalışmalar “word2vec” yöntemine odaklanmış durumda. Bu yöntem, sözcüklerin komşuluk ilişkilerini vektörel olarak değerlendirerek “müdahalesiz” bir eğitim mekanizması oluşturuyor ve buna bağlı sonuçlar üretiyor. Daha önce yazdığım “Word2vec yöntemiyle Türkçe sözcüklerin ilişkilendirilmesi” isimli yazıma bir göz atmak isteyebilirsiniz.

    Bu tür çalışmaların en zor tarafı yeterli büyüklükte, düzgün ve güvenilir veri kümelerine (dataset) sahip olmanın zorluğu. Hele Türkçe için alan neredeyse tamamiyle boş. Sağlıklı bir eğitim sağlayabilmek küçük veri kümeleriyle mümkün olmuyor.

    Bu yüzden DerlemTR projesi bünyesinde yapacağımız çalışmalarda kullanacağımız veri kümelerini aynı zamanda bu konularda çalışmak isteyen diğer araştırmacılara da karşılıksız olarak açıyoruz. Böylece dilimize yönelik araştırma ve değerlendirmelere bir katkımız olacağına inanıyorum.

    Yeni çalışmamızın ilk veri kümesi Hürriyet gazetesinin 2010 yılı arşivindeki haberlerden türetildi. Diğer yıllarla ilgili çalışmalarımız devam ediyor.

    Çalışmamızda sözcükleri cümle, paragraf, haber gibi gruplaşmalardan bağımsızlaştırdık. Noktalama işaretlerini, durak sözcüklerini ve sayıları kaldırdık. Sonuçta sadece bir ardışık sözcükler listesi elde ettik.

    Sözcükleri düzenlerken inceltme/uzatma işaretlerini temizledik. Çok sık kullanılan, ama kullanılmadığında cümlenin anlamını pek fazla değiştirmeyen durak sözcüklerini (stop-words) listeden sildik. Bütün sözcükleri küçük harfe çevirdik ve sadece geçerli sözcükleri bıraktık. Böylece elimizde birbirinden birer boşluk işaretiyle ayrılan, peşpeşe dizilmiş sözcükler kaldı. Bu yapı CBOW (continuous bag of words), yani “sürekli sözcük torbası” olarak adlandırılıyor. Dosya aslında bir metin dosyası. Ama bu dosyayı bir metin editörüyle incelemek pratik olarak mümkün değil. Çünkü noktalama işaretleri yok. Bu yüzden milyonlarca sözcükten oluşan tek bir cümleden oluşuyormuş gibi davranacaktır.

    Word2vec sistemini kullanarak sonuç almak için önce bu sistemi eğitmek gerekiyor:
    1- Ardışık olarak kullanılan sözcük çiftlerini belirle ve “_” işaretiyle bağla
    2- Sözcük listesindeki kümeleşmeleri sapta (clustering)
    3- Sözcük listesini eğit
    4- Eğitilmiş dosya bilgilerini kullanarak ilişki raporları üret

    Bu amaçla, ben de https://github.com/danielfrg/word2vec adresinde ayrıntılı bir şekilde açıklanan işlemleri kullandım. Seçtiğim vektör boyutu: 100.

    Eğitim dosyası (hurriyet_2010.txt) ve eğitilmiş veri dosyasına (hurriyet_2010.bin) https://drive.google.com/drive/folders/0B_iRLUok9_qqOFozeHNFMjRHTVk adresinden ulaşabilirsiniz.

    “turkce-stopwords.txt” isimli dosya da aynı adreste yer alıyor. (İlk çalışmalarımızdan elde ettiğimiz derlem dosyası da gensozluk.txt adıyla aynı yerde.)

    Word2vec veya benzeri yöntemlerle ilgili çalışmaların pek çoğu hala araştırma düzeyinde. O yüzden etkin bir sonuca ulaşmak için farklı parametreler kullanmak gerekebiliyor. Örneğin ardışık kelimeleri sadece 2 ile sınırlı tutmak yerine bu sayıyı arttırabilirsiniz.

    Ya da vektör boyutunu 100 yerine 300 veya 500 yapabilirsiniz. Ancak veri kümesi ve vektör boyutları büyüdükçe daha fazla bellek ve işlemci gücüne gerek duyuluyor. Kendi çalışmalarımda 4 çekirdekli ve 4GB belleğe sahip bir bilgisayar kullanıyorum. Bu özellikler Yapay Zeka veya Derin Öğrenme türü çalışmalarda oldukça zayıf. O yüzden ben vektör boyutunu 100 ile sınırladım. Siz bu sayıyı makinenizin gücüne bağlı olarak istediğiniz kadar yukarı çekebilirsiniz.

    Yazımı sonlandırmadan önce, önceki yazımda da kullandığım bazı sözcüklerle ilişkisi saptanan sözcük listelerini paylaşayım: (benzeşen sözcükler yüklenen modelin sözcük vektörlerinin kosinüsü alınarak bulunuyor. Benzer -birbiriyle yakından ilişkili- sözcükler benzer şekilde kümeleniyor.)

    insan: [‘insanın’ ‘insana’ ‘insanı’ ‘insanların’ ‘insanlar’ ‘insanlardan’
    ‘insanlara’ ‘insanımız’ ‘bitmek_tükenmek’ ‘insanoğlunun’]

    macera: [‘masal’ ‘eğlenceli’ ‘büyülü’ ‘geceler’ ‘nostalji’ ‘romantizm’ ‘hikayeler’
    ‘dövüş’ ‘romantik’ ‘sahneleri’]

    öfke: [‘korku’ ‘huzursuzluk’ ‘kızgınlık’ ‘derinden’ ‘umutsuzluk’ ‘öfkeyi’
    ‘öfkesini’ ‘üzüntü’ ‘endişeyi’ ‘tavırları’]

    karanlık: [‘kirli’ ‘derin’ ‘izlerini’ ‘hüzünlü’ ‘görünmeyen’ ‘vahşi’ ‘dramatik’
    ‘geçmişin’ ‘bakılırsa’ ‘gürültülü’]

    öykü: [‘şiir’ ‘tiyatro_oyunu’ ‘müziklerini’ ‘eserlerini’ ‘piyano’ ‘şiirler’
    ‘türküler’ ‘ali_poyrazoğlu’ ‘drama’ ‘bale’]

    cumhuriyet: [‘mustafa_kemal’ ‘cumhuriyetin’ ‘atatürk’ ‘dersim’ ‘cumhuriyetimizin’
    ‘kemal_atatürk’ ‘gazi_mustafa’ ‘istiklal’ ‘ismet_inönü’ ‘ulu_önder’]

    savaş: [‘savaşı’ ‘savaşın’ ‘savaşta’ ‘sovyet’ ‘savaşa’ ‘soğuk_savaş’ ‘çatışma’
    ‘çatışmalar’ ‘saddam’ ‘savaştan’]

    ayşe: [‘hülya’ ‘aysel’ ’emine’ ‘derya’ ‘gamze’ ‘zehra’ ‘hatice’ ‘esra’ ‘fatma’
    ‘elif’]

    recep: [‘kadir’ ‘necati’ ‘erdal’ ‘muharrem’ ‘ismail’ ‘arif’ ‘sedat’ ‘orhan’
    ‘ibrahim’ ‘suat’]

    Ham veri miktarı arttıkça daha sağlıklı ilişkiler yakalamak mümkün oluyor.

    Veri dosyasının eğitilmesi sürecini bir başka yazımda örnekleyeceğim.

    Konuya bir programcı olarak ilgi duyuyorsanız https://github.com/danielfrg/word2vec adresini ayrıntılı bir şekilde incelemeyi sakın ihmal etmeyin.

    Ahmet Aksoy

    May 242016
     
    17.049 views

    Python ile Zemberek Kütüphanesini Kullanmak

    Python ile Zemberek Kütüphanesini Kullanmakhttp://www.b4deploy.com/sorular/zemberek-example-for-python/ adresindeki örneklerden yararlanarak yaptığım denemelerin sonunda jpype modülünü kullanarak zemberek-tum-2.0.jar kütüphanesini sorgulayabilen kodları elde ettim.

    Bu çalışmalar sırasında jnius kütüphanesini ne Python2.x serisinde, ne de Python 3.x serisinde yüklemem mümkün oldu. Pek çok deneme yaptım ama bu kütüphaneyi yükleyip test edemedim.

    Oysa jpype modülü kolayca yüklendi. Aşağıdaki kodları da bu sayede Python 3.5.1 üzerinde sorunsuz bir şekilde çalıştırabildim.

    Programın çıktısı şöyle:

    zemberek-tum-2.0.0.jar dosyasını http://www.java2s.com/Code/Jar/z/zemberek.htm adresinden indirebilirsiniz.

    jar dosyasının içeriği:

    Bu yöntemle, kısmen de olsa zemberek kütüphanesini Python programı üzerinden kullanmak mümkün. Diliyorum ki daha ileride bu güzel kütüphaneyi doğrudan Python ile kullanmamız mümkün olsun!

    Ahmet Aksoy