Bu yazıda bir Java projesine zemberek kütüphanesini dahil etmeyi ve temel işlevlerini nasıl kullanabileceğimizi göreceğiz.


Zemberek Türkçe için bir doğal dil işleme kütüphanesidir. Şu anda eski zemberek2 projesi yerine Zemberek-NLP projesi geliştiriliyor.

Projenin github sayfasından gerekli bilgilere, Examples kısmından ise örnek kodlara ulaşabiliriz.

  • Projenin googledocs sayfasından 0.11.1 versiyonun tüm modüllerini içeren aşağıdaki dosyayı indirelim.
    • zemberek-all-0.11.1.jar
  • Yine aynı sayfadan dependencies klasörünü indirelim. İçerisindeki dosyalar:
    • guava-18.0.jar
    • antlr4-runtime-4.6.jar
    • args4j-2.0.25.jar

Diğer gereksinimlerimiz ise jdk’nın öncelikle sistemimizde hazır olarak bulunması. IDE olarak NetBeans kullanacağız ve herhangi bir framework kullanmadan yalnızca temel işlevleri kullanabilir hale gelmeyi amaçlıyoruz.

Örnek Projenin Oluşturulması

Netbeans içersisinden File > New Project diyerek Zemberek1 isimli bir Java Application oluşturuyoruz.

Ardından yukarıdaki 4 jar dosyasını projemize ekliyoruz.

Add Jar File NetBeans

Dosyalar eklendikten sonra artık Zemberek1.java dosyası içerisine ilk kodlarımızı yazmaya başlayabiliriz.

Zemberek Jar Files

Aşağıdaki örnekte zemberekten morphology modülünü kullanarak “şimdilerde” kelimesini analiz etmesini istiyoruz.

Analizin sonucuna bakacak olursak “şimdilerde” kelimesinin zarf olduğunu anladığını, şimdi’nin zaman bildirdiğini ve isim olduğunu tespit ettiğini görüyoruz.

Zemberek Output NetBeans

  • Analiz sonuçlarında Türkçedeki soneklerin kodlarını görüyoruz. (morpheme names) Detaylı açıklama burada mevcut.
  • 7 saniye çok uzun fakat burada esas zamanı morphology nesnesinin oluşturulması alıyor. Burada amacımız en kısa sürede çalıştırmak olduğundan nesne yönelimli yaklaşıma dikkat etmedik.
  • Dilin kendisindeki belirsizlikten dolayı analizin sonuçları birden fazla olabiliyor. Aynı zamanda zemberek kütüphanesi henüz stabil olmadığından bug’lar ve yanlış sonuçlarla karşılaşabiliyoruz.