JRuby 1.0.2 Yayımlandı 01/11/07
JRuby’nin 1.0.2 numaralı sürümü bugün duyuruldu [ »» ]
İyileştirmeler içeren yeni sürüm 1.2.5 numaralı Rails sürümünü de desteklemeye başladı. “Practical JRuby on Rails Web 2.0 Projects: Bringing Ruby on Rails to Java” adlı kitapta geçen günlerde yayımlanmıştı. JRuby’yi zevkle izlemeye devam ediyoruz.
Yükleme dosyalarına buradan ulaşabiliriz.
JRuby ile Zemberek Kullanımı (2) 18/10/07
Bundan önceki yazımda JRuby ile Zemberek kütüphanesinin nasıl kullanılabileceğini basitçe görmüştük. Yazıda yer alan örneklere göz attığımızda Zemberek kütüphanesini kullanırken Java’da izlenen yolu birebir izledik.
Yani bir kelimeye ait önerileri bulmak için şu kodu kullandık.
oneriler.each_with_index do |oneri, i|
...
...
Oysa bu kod Ruby programcıları için pek de güzel sayılmayacaktır.
Şöyle bir erişimin daha güzel olacağı aşikar.
oneriler = "Meraba".oneriler
# Meraba'nın yazımı doğru mu?
puts "Meraba".yazim_dogru?
# Merhaba'yı heceler, heceleri kullanıma sunar
"Merhaba".hecele { |hece| print "#{hece}-" }
Bunları yapmak için öncelikle ufak bir sınıf ve modül yazmalı daha sonra bunu String sınıfına dahil etmeliyiz.
ZemberekJRuby sınıfı
#
# Murat ÇELİKER, murat.celiker@gmail.com
# http://ikinoktayazilim.com/wordpress/
#
require 'java'
require 'singleton'
# Basit Zemberek Ayrıştırıcımız
# Yalnızca bazı methodlar yer almaktadır
#
class ZemberekJRuby
include Singleton
# zemberek kütüphanemizi dahil edelim
require 'zemberek-tum-2.0.jar'
# zemberek sınıflarımızı dahil edelim
include_class 'net.zemberek.erisim.Zemberek'
include_class 'net.zemberek.tr.yapi.TurkiyeTurkcesi'
# bir tane zemberek oluşturalım
def initialize
@zembo = Zemberek.new(TurkiyeTurkcesi.new)
end
# kelimeDenetle çevirisi
def kelime_denetle(kelime)
@zembo.kelimeDenetle(kelime)
end
# hecele çevirisi
def kelime_hecele(kelime)
@zembo.hecele(kelime)
end
# oner çevirisi
def kelime_oner(kelime)
@zembo.oner(kelime)
end
end
Gördüğünüz gibi basit bir Zemberek JRuby sınıfı yazdık. Singleton kullanarak yalnızca bir kez oluşturulmasını da sağladık. Şimdi artık modülümüzü de yazıp String sınıfına dahil edip daha bi rubysel kullanım yapabiliriz.
TurkceJRb::Katar
#
# örn: "deneme".denetle
#
module TurkceJRb
module Katar
def yazim_dogru?
ZemberekJRuby.instance.kelime_denetle(self)
end
def hecele
heceler = ZemberekJRuby.instance.kelime_hecele(self)
if block_given?
heceler.each { |hece| yield(hece) }
else
return heceler
end
end
def oneriler
oneri_listesi = ZemberekJRuby.instance.kelime_oner(self)
if block_given?
oneri_listesi.each { |oneri| yield(oneri) }
else
return oneri_listesi
end
end
end
end
Katar sınıfını dahil edelim
#
class String
include TurkceJRb::Katar
end
Yeni Örneğimiz
İlk yazıdaki örneğimiz artık şu hale geldi:
#
# String.oneriler , String.denetle gibi
#
yazi = ARGV.shift || 'meraba'
if yazi.yazim_dogru?
puts "#{yazi} dogru yazilmis"
yazi.hecele { |hece| print "#{hece}-" }
else
oneriler = yazi.oneriler
# önerilerimizi ekrana yazdıralım
puts "#{yazi} icin size #{oneriler.length} tane onerim var:"
oneriler.each_with_index do |oneri, i|
puts "Oneri #{i+1}: #{oneri}"
end
# yahut
yazi.oneriler { |oneri| puts "#{oneri}" }
end
Dosyanın tamamına ait kaynak kod yazının devamında yer almaktadır. Devamını Okumak İstiyorum
JRuby ile Zemberek Kullanımı (1) 18/10/07

Zemberek ülkemizde yazılım adına yapılan en önemli çalışmalardan biridir bana göre. Eğer Pardus ya da OpenOffice kullandıysanız zemberek’in ne denli düzgün çalıştığına şahit olmuşsunuzdur.
Bu yazıda, JRuby[1] üzerinden Zemberek kütüphanelerine erişim konusuna değineceğim.
Sisteminizde JRuby’nin kurulu olduğu varsayılmıştır.
[1] JRuby %100 java ile yazılmış Ruby yorumlayıcısıdır.
Zemberek & JRuby
Öncelikle Zemberek ile çalışabilmek için Zemberek kütüphanelerine sahip olmamız gerekmektedir. Bu kütüphaneye ait dosyaları buradan bulabilir ya da zembereğin tüm modüllerini tek jar dosyası altında toplayan zemberek-tum-2.0.jar dosyasını indirebilirsiniz.
Bu dosyayı Java’nın hali hazırda bulabileceği bir yere kaydedebilir ya da oluşturacağımız dosya ile aynı yere kaydedebilirsiniz. (JRuby’ye require ile kolayca belirtmek için)
Dosyamızı kaydettikten sonra editörümüzü açıp zemberek kullanımına geçebiliriz.
zem.rb
İlk önce JRuby’ye zemberek kütüphanesini dahil etmesini söyleyelim.
# zemberek kütüphanemizi dahil edelim
require 'zemberek-tum-2.0.jar'
Zemberek kütüphanesinde kullanacağımız sınıfları projemize dahil edelim.
include_class 'net.zemberek.tr.yapi.TurkiyeTurkcesi'
Zemberek için nesnemizi oluşturalım
Artık şöyle bir kullanım yapabiliriz.
yazi = ARGV.shift || 'meraba'
# belirtlen yazı için öneriler isteyelim
oneriler = zembo.oner(yazi)
# önerilerimizi ekrana yazdıralım
puts "#{yazi} icin size #{oneriler.length} tane onerim var:"
oneriler.each_with_index do |oneri, i|
puts "Oneri #{i+1}: #{oneri}"
end
Yazının devamında dosyaya ait kaynak kodları bulabilirsiniz.






