06 Eylül 2009

Yapisal cozumleme adaptoru

Bu aralar Zemberek ile Kemal Oflazer hocanin yapisal analiz cikti formati arasinda donusum yapacak bir adaptor uzerinde calisiyorum. Oflazer hoca gercekten titiz bir calisma yapmis, Zemberek uzerinde bir iki degisiklik gerceklestirmek gerekebilecek gibi. Kabul edilebilir bir basari ile aralarinda donusumu gerceklestirecek yapinin kurulmasinin mumkun olabilecek.

Bu konuda yeni bir yazi yazacagim ama sadece donusumdeki zorluklarin gorulmesi acisindan asagidaki ornegin yeterli olacagini dusunuyorum. "yemek" kelimesinin fiil cozumu icin asagidaki cikislar veriliyor
Zemberek: ye:FIIL+FIIL_MASTAR_MEK
Oflazer : ye+Verb+Pos^DB+Noun+Inf1+A3sg+Pnon+Nom


12 Mayıs 2009

Chrome Turkce imla denetimi


Google Chrome tarayicisi icin Turkce imla denetimi konusunda Google muhendislerinden Mehmet Akin ve Hironori Bono ile kucuk bir calisma yapmistik (Issue 4782). Imla denetim mekanizmasi olarak Zemberek degil, Zemberek kullanilarak urettigimiz tr-spell projesinden ortaya cikan Hunspell formatindaki bir sozluk kullanildi. Turkce imla denetimi destegi henuz su anki kararli surumlerde yer almiyor. Ama beta kanalini aktiflestirdiginizde gelen guncellemeler ile (2.0.166 sonrasi surumler) Turkce imla denetimi destegi calisir hale geliyor.

02 Mayıs 2009

Jcaki


Evde arta kalan zamanlarimin bir kisminda kucuk bir yazilim kutuphanesi gelistiriyorum. Son zamanlarda Mehmet de biraz kodda duzeltmeler yapiyor. Kutuphane aslinda ufak ve basit bir sey. Buna ragmen hemen her projede benim icin vaz gecilmez bir hal aldi diyebilirim. Java dilinde yazilim gelistirirken bazi konularda isleri yapmak icin uzunca kod parcalari yazmaniz gerekebilir. Mesela bir metin dosyasinin satirlarini okumak, ya da elinizdeki bir String'i bir dosyaya kaydetmek, muhtelif dosya ve String islemleri gibi. Jcaki projesi ile bu islemler cok daha kolay bir hale geliyor (caki -> çakı). Ornegin bir metin dosyasini okumak icin SimpleTextReader sinifini kullanip sunu yapmaniz yeterli:

List<String> list = new SimpleTextReader("foo.txt").asStringList();
Eger dosya cok buyuk ise satir satir islem yapmak icin IterableReader mekanizmasi kullanilabilir mesela;
for(String s: new SimpleTextReader("foo.txt").getIterableReader())
out.println(s);
Daha karmasik bir ornek olarak, bir metin dosyasindan sadece INFO ve DEBUG kelimelerini iceren satirlari bas ve sondaki bosluklari kirparak okumak isterseniz, su sekilde bir kod ile uretilen SimpleTextReader isinizi gorecektir.
SimpleFileReader
.Builder("foo.text")
.encoding("utf-8")
.trim()
.ignoreWhiteSpaceLines()
.allowMatchingRegexp("INFO|WARNING")
.build();
Benzeri sekilde yazma siniflari da mevcut.
new SimpleTextWriter("foo.txt").writeLines("Hello","World");
dikkat edilirse bu durumda Writer nesnesini kapatmaniza gerek kalmiyor, cunku sistem verileri yazar yazmaz acilan OutputStream'i kapatiyor. ama istenirse acik kalmasi da saglanabilir. Ornegin:
SimpleTextWriter.keepOpenWriter("foo.txt","utf-8").writeLines("Hello","World");
Pek cok String islemleri de Strings sinifi uzerinden yapilabiliyor. Wiki sayfasindan cesitli kullanim sekillerini gorebilir, javadoc ile siniflari ve metotlari inceleyebilir, 1.0 Alpha surumunu indirebilirsiniz.
Aslinda buna benzeyen yardimci kutuphaneler (Apache commons gibi) mevcut, ama proje gelistirirken karsilastigim ihtiyaclar biraz farkli oldugundan ve daha modern Java 5 ozelliklerini kullanmak istedigimden bu sekilde bir yola girdim. Kod ve API henuz duragan ve olgun degil, o nedenle hata olma olasiligi her zaman var. Ama ben projelerde su ana kadar sorunsuz sekilde kullandim.

15 Nisan 2009

Kelime Üretimi

Zemberek kullanarak kelime üretimi konusunda kod örnekleri içeren küçük bir yazı yazdım, ilgilenenler okuyabilir.

09 Nisan 2009

Zemberek Web AppEngine'de

AppEngine Java desteği haberini duyurduktan sonra Zemberek-web'i bu hizmet ile yayınlamaya karar verdim. SVN'de yer alan özelliklerinden önemli bir kısmını aktardım (Web servisi şu an için aktif değil) Aktarım esnasında Zemberek kütüphanesinde Java'nın konsol kayıtçısının kullanımını AppEngine ile kullanılamaz sınıflardan olduğundan kaldırmam gerekti. Bunun için yerel dosya sistemimde özel bir Bazaar dalı açtım. Ve bu şekilde çalıştırmayı başardım. Ardından kodda ufak düzenlemeler de yaparak şu anki haline[1] getirdim. Bu şekilde Ekşisözlük'te de bilinen[2] zemberek-web uygulaması tekrar hayata dönmüş oldu.

Bu aşamadan sonraki hedefim GWT inceleyerek arayüzü GWT ile yazmak.

1: http://zemberek-web.appspot.com/
2: http://sozluk.sourtimes.org/show.asp?id=9157957

08 Nisan 2009

Zemberek Ubuntu paketleri hazırlandı

Daha önceki yazımda Rail ALİEV'in Ubuntu paketlerinin hazırlanmasına yönelik çalıştığından bahsetmiştim. Evet, çalışmaları meyvelerini verdi ve kütüphane, sunucu, zpspell (Zemberek KDE3 eklentisi için gerekli program) Openoffice.org ve Firefox eklentileri için hazırlanan paketler kendisinin kişisel paket arşivinde (PPA) yerini aldı. Bağlantıda yer alan depo adreslerini kullanarak paketleri kurup kullanmaya başlayabilirsiniz.

02 Nisan 2009

Zemberek2 Javadoc belgelendirmesi

GSOC için Türkçe LT desteği projesinde çalışmak isteyen arkadaşlar Zemberek dokümanlarına ulaşmak istedi. Önceden wikide bağlantıları varolan belgelerin yanında Javadoc belgelerini de sunmak fikri ortaya çıktı. Geçici olarak yerel kod ağacımdan oluşturduğum belgeyi Gentoo alanımda yayınladım ve daha sonra Javadoc belgelerinin paketlenmesi için kayıt açtım.

28 Aralık 2008

Zemberek-server Firefox Türkçe yazım denetim eklentisi

Daha önceki bir yazıda Ahmet hunspell sözlükleri oluşturarak Firefox'ta yazım denetimi yapılabilmesi için olan çalışmalarından bahsetmişti. Şimdi ise uzun zamandır düşündüğüm ve yapılabileceğini bildiğim bir çalışma Rail ALİEV tarafından başlatıldı. Firefox, Thunderbird 3 ve Xulrunner 1.9 yeni yazım denetim motorlarının yazılabilmesine ve eklenti olarak paketlenebilmesine olanak veriyor. Bu alanda yapılmış olan örnek bir çalışma da var aslında. Voikko Fince yazım denetim kütüphanesi için mozvoikko adında bir eklenti var. Ancak bunun yapılabileceği bilinmesine rağmen daha önceden uğraşan olmamıştı. Rail ise tam da bu boşluğu doldurdu. Eklenti kodu şu anda Pardus ekibi tarafından geliştirilen ve Zemberek-server kullanan yamayı baz alıyor ve üstüne eklenti eklenti olarak paketlenebilmesi için gereken altyapıyı ekliyor. Şu an deneysel aşamada olsa da çalışır durumda. Eklenti Firefox eklenti sitesinden[1] indirilebilir, eklentinin kodlarına da SVN deposundan[2] erişilebilir. Rail'e eline sağlık diyor, Zemberek şemsiyesi altındaki çalışmalarının devamını bekliyoruz.

Not: Eklenti şu anda tamamen deneysel aşamada olduğundan testiniz ve geri bildirimleriniz ciddi katkı sağlayacaktır.

1: https://addons.mozilla.org/en-US/firefox/addon/10183
2: http://zemberek.googlecode.com/svn/trunk/mozzemberek/

26 Aralık 2008

Zemberek'in dağıtımlardaki durumu

Pek çok yerde dağıtımlarda Zemberek'in nasıl kurulacağına dair sorular ya da belgeler görüyorum. Onun için bunları tek yerden ulaşılabilir bir döküman haline getirmek istedim.

Pardus: Zemberek-server KDE ve GTK/GNOME etkileşimleriyle beraber entegre edilmiş durumda. Openoffice.org eklentisinin de eski bir sürümünü içeriyor. Firefox ve Thunderbird kullanırken Zemberek ile yazım denetimi yapılabiliyor.

Gentoo: Zemberek kütüphanesi, Zemberek-server KDE ve GTK/GNOME etkileşimleriyle beraber entegre edilmiş durumda. Openoffice.org eklentisi ve Firefox Zemberek eklentisi (MozZemberek) layman ile geliştirici depomu kullanarak kurulabilir. Kurulum ile ilgili kişisel günlüğümde yazdığım yazılar[1][2][3] incelenebilir.

Arch Linux: Zemberek kütüphanesi, Zemberek-server KDE ve GTK/GNOME etkileşimleriyle beraber entegre edilmiş durumda. Firefox kullanırken Zemberek ile yazım denetimi yapılabiliyor. Openoffice.org eklentisi programın kendi eklenti yöneticisi ile kurulabiliyor. Arch Linux paketleme çalışmaları için Samed BEYRİBEY'e ve Alper KANAT'a teşekkürler. Alper KANAT'ın duyurusuna http://raptiye.org/blog/2008/10/13/arch-linuxda-turkce-yazim-kontrolu/ adresinden ulaşılabilir.

Lapis Linux: Zemberek-server KDE ve GTK/GNOME etkileşimleriyle beraber entegre edilmiş durumda. Openoffice.org eklentisi de birlikte geliyor. Firefox ve Thunderbird kullanırken Zemberek ile yazım denetimi yapılabiliyor.

Debian ve Ubuntu için Rail ALİEV'in çalışmaları sürüyor. Tamamlandığında Zemberek kütüphanesi, Zemberek-server KDE ve GTK/GNOME etkileşimleri ve Openoffice.org eklentisi olacak. Bu iki dağıtım için de bilgileri tamamlandığında vereceğiz.

1: http://serkank.wordpress.com/2008/07/19/zemberek-gentoo-ile-bulustu/
2: http://serkank.wordpress.com/2008/11/22/zemberek-ooo-eklentisi-layman-ile-kurulabilir/
3: http://serkank.wordpress.com/2008/12/28/zemberek-firefox-eklentisi-layman-ile-kurulabilir/

Düzenleme: Pardus paketi kaldırıldıktan sonra Zemberek Openoffice eklenti listesinde görünmeye devam ediyor(muş)
Ekleme: Lapis Linux bilgileri
Ekleme: MozZemberek Gentoo için paketlendi.

15 Kasım 2008

Zemberek Openoffice.org eklentisinin yeni sürüm adayı yayınlandı.

Önceki duyurumuzda Openoffice.org eklentisinin daha ileriki tarihlerde yayınlanacağını belirtmiştik. Openoffice.org'un 3.0 sürümümün çıkışının beklenmesi ve eklentiyi Gentoo'da kaynak kodundan derleyip paketleme çalışmalarımın yakın zamana kadar başarısız olması sebebiyle sürüm sürekli ertelendi. Şimdi kararlı sürümden önce bir önceki sürüm adayından bu yana yapılan değişikliklerle yeni bir sürüm adayı çıkarmak istedim. Her zamanki gibi http://code.google.com/p/zemberek/downloads/list adresinden dosyalar indirilebilir. Bu sürüm adayıyla beraber:

  • Openoffice.org 2.x ve 3.x ile derlenebilme özelliği eklendi. Dizin yapılarının değişmesi sebebiyle 3.0'da kütüphaneler bulunamıyordu.
  • Zemberek kütüphanesinin son sürümü olan 2.1.1 kullanılmaya başlandı.
  • Eklentinin kaynak kod paketi oluşturulmaya başlandı.
  • Eklentinin harici zemberek kütüphanesi dosyalarını kullanabilecek şekilde paketlenebilmesi de sağlandı.
Buradan eklentide proje grubu haricinde emeği geçen Rail Aliev'e teşekkür etmek isterim. Kendisinin paketleme konusunda yardımları büyük.