Eyl 212018
 
alice ekler
9.881 kez okundu



Python ile Türkçe Kelime Eklerinin Dağılımı

Türkçe “eklemeli” bir dildir. Bu nitelikteki diğer iki dil Macarca ve Moğolcadır.

Türkçede kullandığımız kelimeleri türeten eklerin konumlarını ve frekanslarını belirleyen bir çalışma yaptım.

Bu amaçla ekleri ayrıştırıp sınıflandırmak için Zemberek kütüphanesinden yararlandım.

Çalışmamın bir bölümünde derlem dosyasındaki kelimeleri kullandım.

Rekorumuz “ilişki” isminde.

Bu isme 10 ayrı ek ulanarak “ilişkilendirilemeyeceklerini” sözcüğünün oluştuğunu görüyoruz.

Daha fazla kök içeren başka kelimeler de bulunabilir. Ama bu tür örnekler büyük olasılıkla uygulanabilirlikten uzak olacaklardır.

Bu sözcüğün Zemberek ile elde ettiğimiz kırılım yapısı şu şekilde:
ilişkilendirilemeyeceklerini
ilişki ISIM_KOK 0
ilişki-le ISIM_DONUSUM_LE 1
ilişki-le-n FIIL_EDILGENSESLI_N 2
ilişki-le-n-dir FIIL_ETTIRGEN_TIR 3
ilişki-le-n-dir-il FIIL_EDILGEN_IL 4
ilişki-le-n-dir-il-e FIIL_YETERSIZLIK_E 5
ilişki-le-n-dir-il-e-me FIIL_OLUMSUZLUK_ME 6
ilişki-le-n-dir-il-e-me-yecek FIIL_DONUSUM_ECEK 7
ilişki-le-n-dir-il-e-me-yecek-ler ISIM_COGUL_LER 8
ilişki-le-n-dir-il-e-me-yecek-ler-in ISIM_TAMLAMA_IN 9
ilişki-le-n-dir-il-e-me-yecek-ler-in-i ISIM_BELIRTME_I 10

Aynı yöntemle alice.txt öyküsünü sözcüklerine, sözcükleri de eklerine ayrıştırdım ve konum frekanslarını saptadım.

Öyküde kullanılan kelimelerin ek kırılım tablosu aşağıdaki gibidir:

Şimdi toplam ek frekanslarını görselleştirelim:

Türkçe Kelime Eklerinin Dağılımı

Konum 0’daki ek sayısı, aslında hiç ek almayan kelime sayısına karşılık geliyor.
Sadece bir ek alan kelimelerin toplamı, 4545.
6 ek alan kelime ise öyküde sadece 1 kez kullanılmış:(alamadıklarından: al-a-ma-dık-lar-ın-dan)
5 ek alan kelimeler şunlar: (toplandıklarında, resimlerindekine, mırıldandığından, kestiremiyordu, götüremeyeceğini, olamayacağını, kullanmamalıydın, bahsedemezdiniz, kesilemezdi, dolamadığını, söyleyebileceklerimin, beceremiyormuşum)

Sınırlı sayıda kelime kökü (20 bin civarı) ile kısıtlı sayıda ekin (yaklaşık 100 civarı) kombinasyonu, Türkçenin zenginliğini oluşturuyor.

Siz de aşağıda verdiğim kodlardaki kaynak dosyayı değiştirerek benzer incelemeler yapabilirsiniz.

Beni izlemeye devam edin.

Ahmet Aksoy

Keywords: türkçe kökler, kelime kökleri, türkçe kelime ekleri, zemberek, python, türkçe, eklemeli dil

Ara 062017
 
4.135 kez okundu

Python Zemberek Masaüstü

Herhangi bir yazının içinde geçen tüm Türkçe sözcükleri topluca kök ve eklerine ayırmak için Zemberek java kütüphanesini kullanan basit bir masaüstü uygulama geliştirmeye başladım.

Java dönüşümünü yine jpype aracılığıyla yapıyorum. Grafik kullanıcı arayüzü kütüphanesi olarak da tkinter’den yararlanıyorum.

Python Zemberek Masaüstü

Pek çok python kullanıcısı tkinter’e uzak duruyor. Bence tkinter’e biraz haksızlık ediliyor. Üstelik en güncel python GUI’si olarak bu kütüphane var. Her yeni python sürümüyle birlikte en uyumlu tkinter bileşenleri de geliyor.

Uygulamamızda iki Text kutucuğu bulunuyor. Bunlardan birisi çözümlemek istediğimiz metni barındırıyor. Diğer kutucukta ise elde ettiğimiz sonuçları raporluyoruz.

Şimdilik çok işlevsel olmasa da bir arama kutucuğumuz mevcut. Ek olarak çeşitli butonlarımız var. Bu butonların adı ve işlevi zaman içinde değişebilir.

Betiğimizin adı, zembil.py.

Kodların ayrıntılı açıklamasına girmiyorum. Sormak istediğiniz sorular olursa yazının altındaki yorum alanını kullanabilirsiniz.

Bu da zemberek_cozum.py dosyası:

Ahmet Aksoy
(Python Zemberek Masaüstü)

Ara 012017
 
4.881 kez okundu

Python Zemberek Bağlantısını Güncelleyelim

Python Zemberek Bağlantısı2016 Mayısında yazdığım Python ile Zemberek Kütüphanesini Kullanmak makalesini artık güncellemenin zamanı geldi.

Aslında güncellenecek pek fazla şey yok.
Çünkü: zemberek-tum-2.0.jar kütüphane dosyası yine aynı.
JPype1-py3 bileşeninin sürüm numarası değişmedi: 0.5.5.2.
Sadece benim şimdiki Ubuntu sürümüm 16.04 ve Python sürümüm ise 3.6.3.

Önceki yazımda verdiğim kodlar bire bir geçerli.

Yine de kodları son haliyle anımsamakta yarar var:

Önceki yazımda zemberek-tum-2.0.jar dosyasının içindeki (veya herhangi bir jar dosyasının içindeki) sınıfların listesini nasıl elde ettiğimi belirtmemişim.
Aşağıdaki komut, bu listeyi elde etmemizi sağlıyor:

jar dosyasının adını değiştirerek istediğiniz sınıf listesini dökebilirsiniz.

Bu arada sevindirici bir başka haber: Zemberek projesi yeni bir yapılanmayla tekrar gündemde: Zemberek-NLP
Akın kardeşler Zemberek projesini eskisinden bağımsız bir şekilde yeniden geliştiriyorlar.
Sonucu ben de merakla bekliyorum.

Ahmet Aksoy