<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1720576558802393126</id><updated>2012-01-30T14:44:01.091+02:00</updated><category term='debian'/><category term='archlinux'/><category term='jubler'/><category term='pardus'/><category term='eclipse'/><category term='zemberek'/><category term='ubuntu'/><category term='appengine'/><category term='nzemberek'/><category term='gentoo'/><category term='zemberek-web'/><category term='google'/><title type='text'>Zemberek NLP</title><subtitle type='html'>Bu sayfada Zemberek, NZemberek ve Doğal Dil İşleme (NLP - Natural Language Processing) ile ilgili konulardan bahsedilir.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>M.D.A</name><uri>http://www.blogger.com/profile/17275949971136439559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-4014632015542353371</id><published>2011-04-10T13:43:00.011+03:00</published><updated>2011-04-10T15:17:33.743+03:00</updated><title type='text'>Zemberek-3 Durum</title><content type='html'>&lt;div style="text-align: justify;"&gt;Bu aralar boş bulabildiğimiz zamanlarda (bebekler elverdiğince) Zemberek-3 ile çalışmaya devam ediyoruz. Şu anda temel çözümleme yeteneği kazanmış durumda. Daha yapacak çok iş var. Neler yapıldığına dair bir şeyler yazmak istedim. Bu nedenle Zemberek-2 ve 3 (Z2 ve Z3 diyeceğim yazının diğer kısmında) arasındaki bazı farklardan bahsedeceğim.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Daha akıllı sözlük&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Z2 sözlüğü içerisinde kelimelerin her birinde türü ve özel durumları kodlanıyordu. Z3 ile sözlük içerisinde çok daha az etiketleme yapılıyor. Çoğu bilgi otomatik olarak tespit ediliyor. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Bilgiler kod içinde&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Aşağıdaki şekilde Z2 ve Z3 çözümleme mekanizmasının kabaca bir hali görülüyor. Z2, çözümleme yapmak için gereken çoğu bilgiyi düz yazı ya da xml dosyalardan alır. Bu başta iyi bir şeymiş gibi görünse de dil içerisindeki istisnaların fazlalığı karmaşık kuralların dış veri üzerinde gösterimini güçleştirdiğinden bu kolaylık bir süre sonra ayak bağı halini almaya başlar. Z3 içinde özellikle ek dizilim ve üretim gibi kuralları aşina olduğumuz kod içerisine almayı yeğledik. Bu bizi karmaşık ve yavaş xml çözümleme işleminden kurtardı ve karmaşık bazı işlemleri kod ile daha rahat yaptık.&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center; "&gt;&lt;a href="http://1.bp.blogspot.com/-ehFJBg5KH9I/TaGVKLwhHAI/AAAAAAAARpI/6f4482slSOs/s1600/Zemberek2-Blok.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://1.bp.blogspot.com/-ehFJBg5KH9I/TaGVKLwhHAI/AAAAAAAARpI/6f4482slSOs/s400/Zemberek2-Blok.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5593916214358383618" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 260px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/-Dg322Pt9uFs/TaGVKBuVegI/AAAAAAAARpQ/yR0d630Wh1U/s1600/Zemberek3-Blok.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://1.bp.blogspot.com/-Dg322Pt9uFs/TaGVKBuVegI/AAAAAAAARpQ/yR0d630Wh1U/s400/Zemberek3-Blok.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5593916211664878082" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 244px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Daha doğru bilgi&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Z2'nin yapısı bazı ek dizlim kurallarının girilmesini imkansız yapıyordu. Z3 ile daha doğru çözümleme işlemi gerçekleştirileibliyor. Ayrıca diğer çözümleyicilerde yer alan "dönüşümsel sınır -  derivational boundary" adı verilen kelime türü geçiş bilgisi de yer alabilecek&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Kelimeler Çizgesi (Lexicon Graph)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Z3'ün Z2'den asıl farkı sistemin çözümleme mekanizmasının basitleştirilmesi. Z2 çözümleme mekanizması son derece karışık ve tabiri caizse amele idi ( Çözümleme kodunun sadece bir &lt;a href="http://code.google.com/p/zemberek/source/browse/trunk/zemberek2/src/cekirdek/net/zemberek/islemler/cozumleme/StandartCozumleyici.java"&gt;parçası&lt;/a&gt; ). Z3 ile  daha önce yapılan başka Türkçe ayrıştırıcıların (Kemal Oflazer'in çalışması gibi) yapısına benzer bir mekanizma oluşturuldu . Z3, tüm sözlük ve ek bilgilerini kullanıp büyük bir çizge (Graf) yapısı oluşturuyor. Bu yapı içindeki düğümlerde köklerin ve eklerin farklı formları ve birbirlerine nasıl bağlandıkları bilgisi yer alıyor. Bu çizgeyi üretmek oldukça karmaşık bir iş. Ama bir kere bu üretildi mi bunun üzerinden çözümleme ya da üretim yapmak çok daha basit bir kod ile mümkün (Optimize edilmemiş bir parser kodu &lt;a href="http://code.google.com/p/zemberek3/source/browse/trunk/src/zemberek3/parser/morphology/DumbParser.java?r=178"&gt;örneği&lt;/a&gt;). &lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Dinamik çizge&lt;/b&gt;&lt;/div&gt;&lt;div&gt;En azından belirli seviyede çizge oluşum yapısının dinamik olmasını istiyoruz. Yani sisteme çalışma anında Kök ya da kısıtlı da olsa ek bilgisi eklenebilecek ya da çıkarılabilecek. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Çözümleme ve başka programlama dilleri&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Z3'ün bir avantajı da çözümleme işleminin farklı programlama dilleri ile de yapılmasına izin vermesi. Çizge bilgisi bir kez üretildikten sonra az bir gayret ile (yine de kod yazmak gerekiyor.) farklı programlama dilleri ile çözümleme ya da imla denetimi gibi işlemler yapılabilir.  Şimdilik çizge bilgisini farklı bir formatta kaydetmeyip doğrudan Java içerisinden kullandığımız için bu özellik henüz mevcut değil.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Hız&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Z3'ün Z2 ve diğer tüm Türkçe analiz yazılımlarından çok daha hızlı çözümleme yapmasını bekliyoruz. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Uyumluluk&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Diğer çözümleme formatlarına (Özellikle K. Oflazer'in sistemi ile) büyük oranda doğru dönüşüm yapmasını istiyoruz.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;İngilizce :(&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Z3 kodu içerisindeki terimler İngilizce olacak. Z2 Türkçe yazılmıştı ancak bunun pek bir kazancı olmadı, hatta yabancıların kodu anlamasını imkansızlaştırdı. Onun yerine kod içerisindeki kelimeleri İngilizce yazıp çift dilde döküman yazmayı yeğleyeceğiz. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Diğer Türk dilleri&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Z3 sadece Türkiye Türkçesi için çalışacak. Başka bir dilin eklenmesi güç değil ama şu anki ana amacımız bu değil. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-4014632015542353371?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/4014632015542353371/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=4014632015542353371' title='3 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4014632015542353371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4014632015542353371'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2011/04/zemberek-3-durum.html' title='Zemberek-3 Durum'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ehFJBg5KH9I/TaGVKLwhHAI/AAAAAAAARpI/6f4482slSOs/s72-c/Zemberek2-Blok.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-5953700780751291546</id><published>2010-11-19T20:12:00.021+02:00</published><updated>2011-02-11T08:37:42.952+02:00</updated><title type='text'>Dil modeli sıkıştırma</title><content type='html'>Konuşma tanıma ve makine çevirisi gibi pek çok NLP çalışmasında ihtiyaç duyulan verilerden birisi de dile ilişkin temel istatistiksel bilgidir. Kabaca bu sistemler ellerine gelen bir kelime ya da kelime altı dizisinin o dilde ne olasılıkla ortaya çıkabileceği bilgisine ihtiyaç duyar. Bu bilgi Dil Modeli adı verilen mekanizmadan elde edilir. Bu konuda basitliği nedeniyle popüler olan bir yaklaşıma "n-gram Dil Modeli" adı verilir. Basitçe, bu model size birli, ikili ya da daha çok kelime dizisinin belirli metinlerde hangi sıklıkla yan yana bulunduğu bilgisini taşır. "kedi" "tekir kedi" "sevimli tekir kedi" kelime dizileri için bir olasılık rakamı verir. n-gram gelimesindeki "n" yan yana gelen kelime sayısını ifade eder. "tekir kedi" 2-gram ya da bigram, "sevimli tekir kedi" ise 3-gram ya da "trigram"dır . &lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;Bu bilgi genellikle büyük çaplı metin yığınlarından kelimelerin yan yana bulunma sayılarının sayılması ile elde edilir. Doğal olarak "tekir kedi" için elde edilecek olasılık değeri "tekir köpek" için elde edilecek olandan daha yüksektir.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;Dil modellerin üretilmesi başlı başına bir çalışma konusudur. Modelde olmayan kelime dizilerinin olasılığı, Türkçe gibi yüksek sayıda 1-gram içeren diller için kelime altı yapıların modele eklenmesi gibi konularda halen çalışmalar yapılmaktadır. Temel n-gram modellerini üretmek için hali hazırda araçlar bulunmaktadır (SRILM ya da CMU Language Modelling Toolkit). &lt;/div&gt;&lt;div&gt;Dil modellerinin  kullanımında ortaya çıkan sorunlardan birisi de modellerdeki veri miktarının çok yüksek olması nedeniyle uygulamalara kolayca adapte edilememesidir. Bir milyar tane kelimeden oluşan bir İngilizce metinden yapılan sayımlar sonunda yüz binlerce 1-gram on milyonlarca bigram ve trigram ortaya çıkabilir.  Bu tür bir metinden üretilen 5-gram bir model açık metin olarak sakladığınızda 10GB disk alanına ihtiyacınız olabilir. Bu model üzerinden doğrudan işlem yapmak güç olduğu için dil modeli verisinin sıkıştırılması yoluna gidilir. Amaç veriyi daha az yer kaplayacak şekilde küçültürken erişim hızını mümkün olduğunca yüksek tutmaktır. Özellikle çeviri uygulamalarında bir cümle için bile yüz binlerce hatta yerine göre milyonlarca kez dil modelinin sorgulandığı düşünülürse bu konunun önemi anlaşılabilir.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bu konuda çeşitli yöntemler kullanılagelmiştir (look-up tabloları, trie yapıları, bloom filtreleri vs.) Son bir kaç haftada yaptığım bir çalışma ile&lt;a href="http://www.blogger.com/David%20Guthrie,%20Mark%20Hepple,%20Wei%20Liu's%20Ef%EF%AC%81cient%20Minimal%20Perfect%20Hash%20Language%20Models%202010"&gt; &lt;/a&gt;&lt;a href="https://docs.google.com/document/d/1MtNAyyMZ2lX-LvvWbZvDOX-RE6n24gIvkzPpWIgxTlc/edit?hl=en"&gt;Mükemmel kıyım fonksiyonu &lt;/a&gt;diye çevirdiğim (&lt;a href="http://en.wikipedia.org/wiki/Perfect_hash_function"&gt;Perfect Hash Function&lt;/a&gt;) mekanizmayı kullanan bir dil modeli sıkıştırma yöntemini gerçekleştirecek basit bir kütüphane oluşturdum. Yöntem olarak&lt;span&gt;&lt;span&gt; &lt;i&gt;Guthrie, Hepple ve Liu'nun Efﬁcient Minimal Perfect Hash Language Models 2010&lt;/i&gt; makalesini temel aldım (makale ile birebir uyuşmuyor).&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; "&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bu kütüphane başka araçlar kullanılarak düz metin olarak oluşturulmuş bir dil modelini alıp onu oldukça yüksek bir oranda sıkıştırarak iyi sayılabilecek bir hızla olasılık verilerine erişim sağlayacak işlevleri sunuyor. Sonuçta n-gram başına ortalama 27,5 bit ya da daha az disk alanı ya da bellek kullanacak şekilde bir sıkıştırılmış dil modeli ortaya çıkıyor. Elimdeki 200 milyon n-gramdan oluşan bir 5-gram dil modelini 500MB alana sıkıştırabildi. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dil modeli disk üzerinden rastgele erişim ile kullanılabildiği gibi tamamen belleğe de yüklenebiliyor. Bu durumda yaklaşık dört-beş kat daha hızlı şekilde n-gram olasılık verisine ulaşılabiliyor. &lt;/div&gt;&lt;div&gt;Hız konusunda hala tam istediğim noktaya gelmedi. Bu yöntem ile daha ne kadar hızlanır onu da bilemiyorum. Belki bu aşamadan sonra başka yöntemleri denemek daha akıllıca olabilir. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Kod Java ile yazıldı, Java NLP sistemlerine entegre edilebileceğini sanıyorum. Detay bir konu bu, ilgilenenler API kullanımına ilişkin &lt;a href="http://code.google.com/p/smooth-nlp/w/list"&gt;sayfalara&lt;/a&gt; ve &lt;a href="http://code.google.com/p/smooth-nlp/downloads/list"&gt;kütüphaneye&lt;/a&gt; göz atabilir.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Not: Bu çalışma büyük oranda Tübitak BİLGEM'in Konuşma ve Dil Teknolojileri laboratuvarında gerçekleştirilmiştir.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-5953700780751291546?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/5953700780751291546/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=5953700780751291546' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5953700780751291546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5953700780751291546'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2010/11/dil-modeli-skstrma.html' title='Dil modeli sıkıştırma'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-4683271353994633428</id><published>2010-11-01T16:14:00.009+02:00</published><updated>2011-12-12T19:18:53.572+02:00</updated><title type='text'>Mükemmel Hash Fonksiyonu ve Inception</title><content type='html'>Biraz farklı bir konuda kısa bir çalışma yaptım. İlginç bir macera olduğu için yazmak istedim.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Büyük n-gram dil modellerinin sıkıştırılması konusunda &lt;i&gt;Efficient Minimal Perfect Hash Language Models&lt;/i&gt; adında bir makaleye rastladım (&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.166.145&amp;amp;rep=rep1&amp;amp;type=pdf"&gt;pdf&lt;/a&gt;, &lt;a href="http://www.lrec-conf.org/proceedings/lrec2010/slides/860.ppt"&gt;sunum&lt;/a&gt;) . Aslında bu konuda epey bir çalışma olmuş (mesela &lt;a href="http://research.google.com/pubs/pub35612.html"&gt;Google&lt;/a&gt; ). Bu en yüksek sıkıştırma oranlarını elde ettiklerini iddia ettiğinden incelemek istedim. Makaleyi kabaca okudum, yöntem çok karmaşık gelmedi ve bir hevesle bunu Java ile gerçeklemeya karar verdim. Yazarlar sonuç değerler verse de ortada kod yoktu. Gerçekleme işlemine niyetlendiğimde En Küçük Mükemmel Hash Fonksiyonu diye Türkçeye çevirdiğim Minimal Perfect Hash Fonksiyonu - MPHF kullanmam gerektiğini anladım.&lt;div&gt;&lt;br /&gt;&lt;div&gt;Makalede MPFH için &lt;i&gt;Belazzougui, Botelho ve Dietzfelbinger’in Hash, Displace and Compress&lt;/i&gt; (&lt;a href="http://cmph.sourceforge.net/papers/esa09.pdf"&gt;pdf&lt;/a&gt;) makalesindeki yöntemi kullanılmış. Aslında başka MPHF yöntemleri de var (&lt;a href="http://sux.dsi.unimi.it/"&gt;Sux4j&lt;/a&gt;) ama bu en kalite malzeme diye iddia edilince yine bir heves ile onu kullanayım dedim. Arkadaşlar C ile yazmışlar &lt;a href="http://cmph.sourceforge.net/"&gt;kodu&lt;/a&gt;. Kodu javaya dönüştürmeye çalıştım ama çabam tam bir kabusa dönüştü  ve pes ettim. Hatta sinirle akademisyenlerin C ile kod yazmaları konusunda verdim veriştirdim Buzz'da. Kendim baştan makaledeki yöntemi gerçeklemeye karar verdim.&lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Her şey iyi gidiyordu. Yöntemin sonunda Tamsayı Dizi sıkıştırma denen bir işlemin kullanıldığını okuyana kadar. Bunun için makalede &lt;i&gt;Fredriksson ve Nikitin'in Simple Random Access Compression&lt;/i&gt; (&lt;a href="http://www.cs.uku.fi/~fredriks/pub/papers/fi09.pdf"&gt;pdf&lt;/a&gt;)  makalesindeki yöntem kullanılmış. O makaleyi de okudum, aslında kolay bir yöntem ile oldukça iyi metin ve tamsayı sıkıştırma gerçekleştirilebiliyor. Gerçeklemeye başladım ki.. Makalede bir bit dizisindeki n. 1 bitini bulan select1 işleminin tam olarak nasıl yapıldığının anlatılmadığını farkettim. Bunu için türlü makalelere referans verilmişti. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Kendimi Inception filminin üçüncü katman rüyasına dalmış hissettim. &lt;i&gt;Vigna'nın Broadword Implementation of Rank/Select Queries&lt;/i&gt; (&lt;a href="http://vigna.dsi.unimi.it/ftp/papers/Broadword.pdf"&gt;pdf&lt;/a&gt;) makalesinin içindeydim. Kısmen okudum, şansıma java kodu da vardı yazarın, iki farklı select yöntemi hem de. Ama o kütüphanenin çok bağımlılığı olduğundan yine tahta yontmaya devam edip &lt;i&gt;Fredriksson ve Nikitin'in &lt;/i&gt;makalesinde kabaca bahsettiği yöntemden anladığım kadarı ile yazmayı yeğledim, oldu. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sonra rüyalardan birer birer uyanır gibi sınfları tamamladım ve Mükemmel ve En Küçük Mükemmel Kıyım Fonksiyonlarını gerçekleştiren kodu yazıp ilk makaleye geri döndüm. Yani aslında işe daha yeni başlayacağım. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yazdığım kod o kadar efektif ya da güzel değil ve henüz API halinde sayılmaz. İlgilenenler &lt;a href="http://code.google.com/p/smooth-linguist/source/browse/trunk/src/lm/hash/"&gt;inceleyebilir&lt;/a&gt;. Bu konuda &lt;a href="https://docs.google.com/document/edit?id=1MtNAyyMZ2lX-LvvWbZvDOX-RE6n24gIvkzPpWIgxTlc&amp;amp;hl=en"&gt;Mükemmel Kıyım Fonksiyonu Gerçeklemesi&lt;/a&gt; adında henüz tamamlanmamış bir de döküman yazdım. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Biliyorum ki bunu yapmak zorunda değildim, Sux4j kullanabilirdim. Ama bunu yapmakla bir kaç yeni numara öğrenmiş olduğumu sanıyorum. Eğlence de cabası. İnşallah işimize yarar. &lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-4683271353994633428?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/4683271353994633428/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=4683271353994633428' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4683271353994633428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4683271353994633428'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2010/11/mukemmel-kym-fonksiyonu-ve-inception.html' title='Mükemmel Hash Fonksiyonu ve Inception'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-8733608553237984426</id><published>2010-09-11T18:39:00.003+03:00</published><updated>2010-09-27T15:59:59.244+03:00</updated><title type='text'>Zemberek 3</title><content type='html'>Uzun süren uykudan sonra Mehmet ile birlikte ilerde Zemberek 3'e dönüşebilecek bir çalışmaya başladık. Sonu nasıl gelir bilmem. Aklımıza gelen şeyleri yığdığımız bütünlüğü olmayan gayri resmi bir doküman yazmaya &lt;a href="https://docs.google.com/document/view?id=1bUW6i5KrjkeID8GD7rs8tbGWapZooLmt2gmdAUvPHW8"&gt;başladık&lt;/a&gt;. &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-8733608553237984426?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/8733608553237984426/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=8733608553237984426' title='5 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/8733608553237984426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/8733608553237984426'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2010/09/zemberek-3.html' title='Zemberek 3'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-1113173278744831575</id><published>2010-05-01T20:46:00.010+03:00</published><updated>2010-05-03T10:02:03.864+03:00</updated><title type='text'>Kelime hataları</title><content type='html'>&lt;span&gt;&lt;span&gt;Zemberek içerisinde olmayan ya da hatalı olan kelime köklerini ortaya çıkarmak için gazete haberlerinden derlenmiş oldukça büyük bir derlem (350 milyon kelime civarında) üzerinden basit kelime frekans bilgileri çıkarırdım. Sonuçlar TDK (web sayfası) referans alarak kontrol edildiğinde ortaya çıkan bazı bilgiler:&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;iki yüz kereden fazla geçen bin beş yüzden fazla kelime TDK genel sözlüğünde yer almıyor. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;Yabancı kelimeler (frekans sırasına gore):&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;euro, ribaunt, rock, stand, online, neo, biyo, gay, kriminal, sendikasyon, provokatif, punk, ultra, tekno, depresif, blog, akredite, siber, manipüle, psikiyatrik, istihbari, gribal, östrojen, konjonktürel, reflü, marker, spam, segment, depresan, tiroid, outlet, bonus, kompakt, botoks, omega,  reality, romatizmal, modifiye, pivot, domine, cover, aktivist, proaktif, anksiyete, genital, terörize, oligarşik,  libor, enfekte, teatral, popstar, kanola,  pandemik, mental, apne, hegemonik, minimalist, kote, modernite, entellektüel, elitist, jazz, kondisyoner, chip, protest, etnisite, senkronize, detoks, network, editoryal, pasifize,  stilize, pitbull, reforme, draft, psiko, modunda, konteynır, kardiyovasküler, militer, onore, avangard, influenza, ekber, hamd, digital, retro, tabloid, paparazzi, enstalasyon, pilates, spa, paramiliter, moderatör, fiziken, maksimize, bowling, manik, jammer, marin, embriyonik, finansör, brunch, risotto, volatilite, panelvan, serotonin, psikanalitik, hatchback, residence, manipülatif, playboy, premium,  magazinel, fiks, coupe, glisemik, otokratik,  koleksiyoner, speküle, lokasyon, hologram, karaoke&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Bu kelimelerden bir kısmı tıbbi terimler olduğu için kullanılabilir (östrojen, tiroid gibi). Bir kısmı  belki eklenebilir (kanola, hologram, karaoke gibi ). &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;Bazı yabancı kelimeler ise genel sözlükte yer bulmuş, çoğu durumda sadece türkçe eşleniğine referans verilmiş.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;i&gt;mortgage:tutulu satış, motive, aktivite, sektörel, stoper, hit:liste başı, provoke, medyatik, dokunmatik:dokunmalı, kaotik, rehabilite, promil, single:tekli, chat:sanal sohbet, travmatik, inovasyon:yenileşim, fitness:sağlıklı yaşam, küratör, sistemik, kruvaziyer, gey, eko, kümülatif, heteroseksüel, tork, multimedya, tolere, metafor, panoramik, virtüöz, politize, ötanazi, perküsyon, gurme, charter:dolmuş uçak, reformist, sprinter, idol, kuantum, rating, türbülans:burgaç, kredibilite, feminen:kadınsı, mamografi, stabil, osteoporoz, ritüel, suşi, melamin, guru, krampon, idealize,floresan:Florışıl, sinematografik, ontolojik, realizasyon, opsiyonel, kreatif, peeling:soyum, antiviral, optimal, lümpen, holigan, trekking, radyolojik, metaforik, obsesif, nevrotik, plaza, endoskopik, monşer, mantalite, metroseksüel, semitizm, liposuction, stratejist, regülasyon, formel, alzaymır, dekoder, &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;Her ne kadar yerleşmiş olsalar da bu kelimelerin büyük kısmı sözlüğe hiç alınmayabilirmiş.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Bir iki türetilmiş yeni kelime tutmuş gibi ama çok az sayıda. 200 kullanıma erişebilen tek kelime &lt;i&gt;tutsat&lt;/i&gt; idi.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;En yaygın yazım yanlısları birlesik kelimelerle ilgili. Bu konu tartısmalı ama TDK referans alındıgında hatalı kullanımlardan sadece bır kısmı:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;i&gt;doğalgaz, işadamı, işyeri, yanısıra, eşzamanlı, herşey, hammadde, varolmak, evsahibi, sevketmek, pekçok, karayolu, havayolu, demiryolu, eşgüdüm, içiçe, elele, terketmek, tersyüz, aslolan, özgüven, farketmek, eşanlamlı, terketmek, sözümona, safkan, uluorta&lt;/i&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;Bazı yaygın kelime hataları (sadece küçük bir kısmı):&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;içerde, dışardan, orda, nerdeyse, suiistimal, nerde, mahçup, ünvan, tamamiyle, aksesuvar, orjinal, müşahade, bazan, kasedi, taksidi, burdan, nesile, yukarda, traş, veliahtı, diyaloga, kampus, tabiki, rüştünü, yanlız, ağıza, şahadet, ağbi, üzerleri, bişey, umrunda, tereddüte, açıkca, üstad, fiziken, esamisi, dersane, antreman, tevbe, hemşeri, cüppe, gönüle, konservatuar, repertuar, döküman, küsür, kolestrol, diyerekten, zaafiyet, takiyye, alıcam, alırkan, aralıka, barışcı, başlıyan... &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;Alüminyum kelimesini doğru yazana rastlamak oldukça güç&lt;/span&gt;. aliminyum, alimünyum, aluminyum &lt;/i&gt;şeklinde kullanılmış&lt;i&gt;.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;Bazı  kelimeler TDK'da yok ama olmasını beklerdim: kaale, &lt;i&gt;istihbari, takdiren, cansiperane&lt;/i&gt;, gibi.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;Bunlardan baska Zemberek'te olmayan ya da hatalı yazılmış pek çok kelime de ortaya çıktı. &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'Trebuchet MS';color:#060606;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;div   style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-color: transparent; color: rgb(0, 0, 0);  white-space: normal;  font-family:'Times New Roman';font-size:medium;"&gt;&lt;span class="Apple-style-span"   style="font-family:'Trebuchet MS';color:#060606;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;div  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-color: transparent; color: rgb(0, 0, 0);  white-space: normal; font-family:'Times New Roman';"&gt;&lt;span id="internal-source-marker_0.7973354458808899"    style="  color: rgb(6, 6, 6); background- font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-family:'Trebuchet MS';font-size:12pt;color:transparent;"&gt;&lt;div   style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-color: transparent; color: rgb(0, 0, 0);  white-space: normal;  font-family:'Times New Roman';font-size:medium;"&gt;&lt;span class="Apple-style-span"   style="font-family:'Trebuchet MS';color:#060606;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-1113173278744831575?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/1113173278744831575/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=1113173278744831575' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1113173278744831575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1113173278744831575'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2010/05/kelime-hatalar.html' title='Kelime hataları'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-4400810498361350219</id><published>2010-01-23T15:15:00.002+02:00</published><updated>2010-01-23T15:18:03.276+02:00</updated><title type='text'>Firefox 3.5-3.6 icin imla denetimi</title><content type='html'>Tr-spell projesinde yer alan turkce imla denetimi paketini Firefox 3.5 ve 3.6 ile calisir hale getirdim. Isteyenler &lt;a href="http://code.google.com/p/tr-spell/downloads/list"&gt;indirebilir &lt;/a&gt;. Kurulum icin: &lt;a href="http://code.google.com/p/tr-spell/wiki/FirefoxEklentisininKurulmasi"&gt;http://code.google.com/p/tr-spell/wiki/FirefoxEklentisininKurulmasi&lt;/a&gt; . Chrome kullaniyorsaniz zaten kendi icerisinde turkce imla destegi var.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-4400810498361350219?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/4400810498361350219/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=4400810498361350219' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4400810498361350219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4400810498361350219'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2010/01/firefox-35-36-icin-imla-denetimi.html' title='Firefox 3.5-3.6 icin imla denetimi'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-6219658591643196130</id><published>2009-09-06T23:48:00.003+03:00</published><updated>2009-09-07T00:03:54.990+03:00</updated><title type='text'>Yapisal cozumleme adaptoru</title><content type='html'>Bu aralar Zemberek ile &lt;a href="http://people.sabanciuniv.edu/oflazer/"&gt;Kemal Oflazer&lt;/a&gt; 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. &lt;div&gt; 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&lt;/div&gt;&lt;div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Zemberek: &lt;i&gt;ye:FIIL+FIIL_MASTAR_MEK &lt;/i&gt;&lt;/div&gt;&lt;div&gt;Oflazer : &lt;i&gt;ye+Verb+Pos^DB+Noun+Inf1+A3sg+Pnon+Nom&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-6219658591643196130?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/6219658591643196130/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=6219658591643196130' title='3 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/6219658591643196130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/6219658591643196130'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2009/09/yapisal-cozumleme-adaptoru.html' title='Yapisal cozumleme adaptoru'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-5461697552021055379</id><published>2009-05-12T18:52:00.004+03:00</published><updated>2009-05-12T20:16:29.841+03:00</updated><title type='text'>Chrome Turkce imla denetimi</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fE0EePCZGQY/SgmfEEjoH-I/AAAAAAAALsc/4M_Z2VIsw1E/s1600-h/Google-Chrome-Browser-Logo.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 174px; height: 200px;" src="http://4.bp.blogspot.com/_fE0EePCZGQY/SgmfEEjoH-I/AAAAAAAALsc/4M_Z2VIsw1E/s200/Google-Chrome-Browser-Logo.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5334970125888528354" /&gt;&lt;/a&gt;&lt;br /&gt;Google Chrome tarayicisi icin Turkce imla denetimi konusunda &lt;span&gt;&lt;span&gt;Google muhendislerinden Mehmet Akin ve Hironori Bono ile kucuk bir calisma yapmistik (&lt;a href="http://code.google.com/p/chromium/issues/detail?id=4782"&gt;Issue 4782&lt;/a&gt;). Imla denetim mekanizmasi olarak Zemberek degil, Zemberek kullanilarak urettigimiz &lt;a href="http://code.google.com/p/tr-spell/"&gt;tr-spell &lt;/a&gt;projesinden ortaya cikan Hunspell formatindaki bir sozluk kullanildi. Turkce imla denetimi destegi henuz su anki kararli surumlerde yer almiyor. Ama &lt;a href="http://dev.chromium.org/getting-involved/dev-channel"&gt;beta kanalini&lt;/a&gt; aktiflestirdiginizde gelen guncellemeler ile (2.0.166 sonrasi surumler) Turkce imla denetimi destegi calisir hale geliyor.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  white-space: pre; font-family:-webkit-monospace;font-size:12px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-5461697552021055379?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/5461697552021055379/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=5461697552021055379' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5461697552021055379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5461697552021055379'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2009/05/chrome-turkce-imla-denetimi.html' title='Chrome Turkce imla denetimi'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fE0EePCZGQY/SgmfEEjoH-I/AAAAAAAALsc/4M_Z2VIsw1E/s72-c/Google-Chrome-Browser-Logo.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-7999868736368148580</id><published>2009-05-02T17:20:00.008+03:00</published><updated>2009-05-03T11:35:42.901+03:00</updated><title type='text'>Jcaki</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fE0EePCZGQY/SfxZR96--FI/AAAAAAAALpY/d7hCk_y0WPo/s1600-h/jcaki.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 184px; height: 200px;" src="http://4.bp.blogspot.com/_fE0EePCZGQY/SfxZR96--FI/AAAAAAAALpY/d7hCk_y0WPo/s200/jcaki.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5331234224114432082" /&gt;&lt;/a&gt;&lt;br /&gt;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. &lt;a href="http://code.google.com/p/jcaki/"&gt;Jcaki&lt;/a&gt; projesi ile bu islemler cok daha kolay bir hale geliyor (caki -&gt; çakı). Ornegin bir metin dosyasini okumak icin &lt;a href="http://code.google.com/p/jcaki/wiki/SimpleTextReader"&gt;SimpleTextReader &lt;/a&gt;sinifini kullanip sunu yapmaniz yeterli:&lt;div&gt;&lt;span class="Apple-style-span"   style="  ;font-family:arial;font-size:13px;"&gt;&lt;pre class="prettyprint"  style=" margin-left: 2em; padding-top: 0.5em; padding-right: 0.5em; padding-bottom: 0.5em; padding-left: 0.5em; border-left-width: 3px; border-left-style: solid; border-left-color: rgb(204, 204, 204); font-size:12px;"&gt;&lt;span class="typ" style="color: rgb(102, 0, 102); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;List&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="typ" style="color: rgb(102, 0, 102); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;String&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; list &lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="kwd" style="color: rgb(0, 0, 136); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="typ" style="color: rgb(102, 0, 102); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;SimpleTextReader&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span class="str" style="color: rgb(0, 136, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"foo.txt"&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;).&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;asStringList&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;();&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Eger dosya cok buyuk ise satir satir islem yapmak icin IterableReader mekanizmasi kullanilabilir mesela;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  ;font-family:arial;font-size:13px;"&gt;&lt;pre class="prettyprint"  style=" margin-left: 2em; padding-top: 0.5em; padding-right: 0.5em; padding-bottom: 0.5em; padding-left: 0.5em; border-left-width: 3px; border-left-style: solid; border-left-color: rgb(204, 204, 204); font-size:12px;"&gt;&lt;span class="kwd" style="color: rgb(0, 0, 136); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span class="typ" style="color: rgb(102, 0, 102); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;String&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; s&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="kwd" style="color: rgb(0, 0, 136); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="typ" style="color: rgb(102, 0, 102); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;SimpleTextReader&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span class="str" style="color: rgb(0, 136, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"foo.txt"&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;).&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;getIterableReader&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;())&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="kwd" style="color: rgb(0, 0, 136); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;out&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;println&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;s&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  ;font-family:arial;font-size:13px;"&gt;&lt;pre class="prettyprint"  style=" margin-left: 2em; padding-top: 0.5em; padding-right: 0.5em; padding-bottom: 0.5em; padding-left: 0.5em; border-left-width: 3px; border-left-style: solid; border-left-color: rgb(204, 204, 204); font-size:12px;"&gt;&lt;span class="typ" style="color: rgb(102, 0, 102); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;SimpleFileReader&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span class="typ" style="color: rgb(102, 0, 102); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Builder&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span class="str" style="color: rgb(0, 136, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"foo.text"&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;encoding&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span class="str" style="color: rgb(0, 136, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"utf-8"&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;trim&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;ignoreWhiteSpaceLines&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;allowMatchingRegexp&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span class="str" style="color: rgb(0, 136, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"INFO|WARNING"&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;build&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;();&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Benzeri sekilde yazma siniflari da mevcut.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  ;font-family:arial;font-size:13px;"&gt;&lt;pre class="prettyprint"  style=" margin-left: 2em; padding-top: 0.5em; padding-right: 0.5em; padding-bottom: 0.5em; padding-left: 0.5em; border-left-width: 3px; border-left-style: solid; border-left-color: rgb(204, 204, 204); font-size:12px;"&gt;&lt;span class="kwd" style="color: rgb(0, 0, 136); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="typ" style="color: rgb(102, 0, 102); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;SimpleTextWriter&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span class="str" style="color: rgb(0, 136, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"foo.txt"&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;).&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;writeLines&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span class="str" style="color: rgb(0, 136, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"Hello"&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span class="str" style="color: rgb(0, 136, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"World"&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;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:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  ;font-family:arial;font-size:13px;"&gt;&lt;pre class="prettyprint"  style=" margin-left: 2em; padding-top: 0.5em; padding-right: 0.5em; padding-bottom: 0.5em; padding-left: 0.5em; border-left-width: 3px; border-left-style: solid; border-left-color: rgb(204, 204, 204); font-size:12px;"&gt;&lt;span class="typ" style="color: rgb(102, 0, 102); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;SimpleTextWriter.&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;keepOpenWriter&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;("foo.txt"&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;,"utf-8"&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;).&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="pln" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;writeLines&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span class="str" style="color: rgb(0, 136, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"Hello"&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span class="str" style="color: rgb(0, 136, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"World"&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="color: rgb(102, 102, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Pek cok String islemleri de &lt;a href="http://code.google.com/p/jcaki/wiki/Strings"&gt;Strings &lt;/a&gt;sinifi uzerinden yapilabiliyor. &lt;a href="http://code.google.com/p/jcaki/w/list"&gt;Wiki &lt;/a&gt;sayfasindan cesitli kullanim sekillerini gorebilir, &lt;a href="http://jcaki.googlecode.com/svn/trunk/docs/javadoc/index.html"&gt;javadoc &lt;/a&gt;ile siniflari ve metotlari inceleyebilir, 1.0 Alpha surumunu &lt;a href="http://code.google.com/p/jcaki/downloads/list"&gt;indirebilirsiniz&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-7999868736368148580?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/7999868736368148580/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=7999868736368148580' title='3 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7999868736368148580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7999868736368148580'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2009/05/jcaki.html' title='Jcaki'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fE0EePCZGQY/SfxZR96--FI/AAAAAAAALpY/d7hCk_y0WPo/s72-c/jcaki.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-2970584022283185757</id><published>2009-04-15T14:21:00.002+03:00</published><updated>2009-04-15T14:25:13.676+03:00</updated><title type='text'>Kelime Üretimi</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 12px; "&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;Zemberek kullanarak kelime üretimi konusunda kod örnekleri içeren küçük bir yazı yazdım, ilgilenenler okuyabilir.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;a href="http://docs.google.com/Doc?id=ah8p92nkjzcw_133f6qg5bx8"&gt;http://docs.google.com/Doc?id=ah8p92nkjzcw_133f6qg5bx8&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-2970584022283185757?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/2970584022283185757/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=2970584022283185757' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/2970584022283185757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/2970584022283185757'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2009/04/kelime-uretimi.html' title='Kelime Üretimi'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-1587133104549772215</id><published>2009-04-09T00:36:00.003+03:00</published><updated>2009-04-09T00:50:53.111+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zemberek-web'/><category scheme='http://www.blogger.com/atom/ns#' term='zemberek'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='appengine'/><title type='text'>Zemberek Web AppEngine'de</title><content type='html'>AppEngine Java desteği haberini &lt;a href="http://serkank.wordpress.com/2009/04/08/google-appengine-java-destegini-duyurdu/"&gt;duyurduktan&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;Bu aşamadan sonraki hedefim GWT inceleyerek arayüzü GWT ile yazmak.&lt;br /&gt;&lt;br /&gt;1: &lt;a href="http://zemberek-web.appspot.com/"&gt;http://zemberek-web.appspot.com/&lt;/a&gt;&lt;br /&gt;2: &lt;a href="http://sozluk.sourtimes.org/show.asp?id=9157957"&gt;http://sozluk.sourtimes.org/show.asp?id=9157957&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-1587133104549772215?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/1587133104549772215/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=1587133104549772215' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1587133104549772215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1587133104549772215'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2009/04/zemberek-web-appenginede.html' title='Zemberek Web AppEngine&apos;de'/><author><name>Serkan Kaba</name><uri>http://www.blogger.com/profile/03745950208384224604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-qZsDnXs-CXw/TcIyRG1DYaI/AAAAAAAAAF8/8_dLE-9rW1o/s220/dsc_2773.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-7727313412489962986</id><published>2009-04-08T11:33:00.004+03:00</published><updated>2009-04-08T11:47:30.908+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zemberek'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Zemberek Ubuntu paketleri hazırlandı</title><content type='html'>Daha önceki &lt;a href="http://zembereknlp.blogspot.com/2008/12/zemberekin-datmlardaki-durumu.html"&gt;yazımda&lt;/a&gt; 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 &lt;a href="https://launchpad.net/%7Erail/+archive/ppa"&gt;kişisel paket arşivinde&lt;/a&gt; (PPA) yerini aldı. Bağlantıda yer alan depo adreslerini kullanarak paketleri kurup kullanmaya başlayabilirsiniz.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-7727313412489962986?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/7727313412489962986/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=7727313412489962986' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7727313412489962986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7727313412489962986'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2009/04/zemberek-ubuntu-paketleri-hazrland.html' title='Zemberek Ubuntu paketleri hazırlandı'/><author><name>Serkan Kaba</name><uri>http://www.blogger.com/profile/03745950208384224604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-qZsDnXs-CXw/TcIyRG1DYaI/AAAAAAAAAF8/8_dLE-9rW1o/s220/dsc_2773.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-2992558664174811890</id><published>2009-04-02T22:15:00.002+03:00</published><updated>2009-04-02T22:25:27.133+03:00</updated><title type='text'>Zemberek2 Javadoc belgelendirmesi</title><content type='html'>GSOC için &lt;a href="http://en.pardus-wiki.org/SummerOfCode2009Ideas#OpenOffice.org_Turkish_Grammar_Support"&gt;Türkçe LT desteği projesinde&lt;/a&gt; çalışmak isteyen arkadaşlar Zemberek dokümanlarına ulaşmak istedi. Önceden wikide &lt;a href="http://code.google.com/p/zemberek/wiki/CesitliDokumanlar"&gt;bağlantıları&lt;/a&gt; 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 &lt;a href="http://dev.gentoo.org/%7Eserkan/zemberek-javadoc/"&gt;yayınladım&lt;/a&gt; ve daha sonra Javadoc belgelerinin paketlenmesi için &lt;a href="http://code.google.com/p/zemberek/issues/detail?id=84"&gt;kayıt&lt;/a&gt; açtım.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-2992558664174811890?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/2992558664174811890/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=2992558664174811890' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/2992558664174811890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/2992558664174811890'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2009/04/zemberek2-javadoc-belgelendirmesi.html' title='Zemberek2 Javadoc belgelendirmesi'/><author><name>Serkan Kaba</name><uri>http://www.blogger.com/profile/03745950208384224604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-qZsDnXs-CXw/TcIyRG1DYaI/AAAAAAAAAF8/8_dLE-9rW1o/s220/dsc_2773.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-4239467354502948425</id><published>2008-12-28T15:12:00.000+02:00</published><updated>2008-12-28T22:35:03.520+02:00</updated><title type='text'>Zemberek-server Firefox Türkçe yazım denetim eklentisi</title><content type='html'>Daha önceki bir &lt;a href="http://zembereknlp.blogspot.com/2008/10/tr-spell-ve-firefox-turkce-imla-denetim.html"&gt;yazıda&lt;/a&gt; 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. &lt;a href="http://voikko.sourceforge.net/"&gt;Voikko&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Not:&lt;/span&gt; Eklenti şu anda tamamen deneysel aşamada olduğundan testiniz ve geri bildirimleriniz ciddi katkı sağlayacaktır.&lt;br /&gt;&lt;br /&gt;1: &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/10183"&gt;https://addons.mozilla.org/en-US/firefox/addon/10183&lt;/a&gt;&lt;br /&gt;2: &lt;a href="http://zemberek.googlecode.com/svn/trunk/mozzemberek/"&gt;http://zemberek.googlecode.com/svn/trunk/mozzemberek/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-4239467354502948425?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/4239467354502948425/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=4239467354502948425' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4239467354502948425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4239467354502948425'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2008/12/zemberek-server-trke-yazm-denetim.html' title='Zemberek-server Firefox Türkçe yazım denetim eklentisi'/><author><name>Serkan Kaba</name><uri>http://www.blogger.com/profile/03745950208384224604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-qZsDnXs-CXw/TcIyRG1DYaI/AAAAAAAAAF8/8_dLE-9rW1o/s220/dsc_2773.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-8079039769448546474</id><published>2008-12-26T10:38:00.003+02:00</published><updated>2009-01-01T20:13:16.598+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='archlinux'/><category scheme='http://www.blogger.com/atom/ns#' term='pardus'/><category scheme='http://www.blogger.com/atom/ns#' term='zemberek'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Zemberek'in dağıtımlardaki durumu</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pardus:&lt;/span&gt; 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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Gentoo:&lt;/span&gt; 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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Arch Linux:&lt;/span&gt; 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 &lt;a href="http://eventualis.org/" target="_blank"&gt;Samed BEYRİBEY&lt;/a&gt;'e ve &lt;a href="http://raptiye.org/"&gt;Alper KANAT&lt;/a&gt;'a teşekkürler. Alper KANAT'ın duyurusuna &lt;a href="http://raptiye.org/blog/2008/10/13/arch-linuxda-turkce-yazim-kontrolu/"&gt;http://raptiye.org/blog/2008/10/13/arch-linuxda-turkce-yazim-kontrolu/&lt;/a&gt; adresinden ulaşılabilir.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lapis Linux:&lt;/span&gt; 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;1: &lt;a href="http://serkank.wordpress.com/2008/07/19/zemberek-gentoo-ile-bulustu/"&gt;http://serkank.wordpress.com/2008/07/19/zemberek-gentoo-ile-bulustu/&lt;/a&gt;&lt;br /&gt;2: &lt;a href="http://serkank.wordpress.com/2008/11/22/zemberek-ooo-eklentisi-layman-ile-kurulabilir/"&gt;http://serkank.wordpress.com/2008/11/22/zemberek-ooo-eklentisi-layman-ile-kurulabilir/&lt;/a&gt;&lt;br /&gt;3: &lt;a href="http://serkank.wordpress.com/2008/12/28/zemberek-firefox-eklentisi-layman-ile-kurulabilir/"&gt;http://serkank.wordpress.com/2008/12/28/zemberek-firefox-eklentisi-layman-ile-kurulabilir/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Düzenleme:&lt;/span&gt; Pardus paketi kaldırıldıktan sonra Zemberek Openoffice eklenti listesinde görünmeye devam ediyor(muş)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ekleme:&lt;/span&gt; Lapis Linux bilgileri&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ekleme:&lt;/span&gt; MozZemberek Gentoo için paketlendi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-8079039769448546474?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/8079039769448546474/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=8079039769448546474' title='4 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/8079039769448546474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/8079039769448546474'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2008/12/zemberekin-datmlardaki-durumu.html' title='Zemberek&apos;in dağıtımlardaki durumu'/><author><name>Serkan Kaba</name><uri>http://www.blogger.com/profile/03745950208384224604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-qZsDnXs-CXw/TcIyRG1DYaI/AAAAAAAAAF8/8_dLE-9rW1o/s220/dsc_2773.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-7419690319042559685</id><published>2008-11-15T20:29:00.000+02:00</published><updated>2008-11-15T20:39:41.378+02:00</updated><title type='text'>Zemberek Openoffice.org eklentisinin yeni sürüm adayı yayınlandı.</title><content type='html'>Önceki &lt;a href="http://zembereknlp.blogspot.com/2008/07/zemberek-projelerinin-kararl-srmleri.html"&gt;duyurumuzda&lt;/a&gt; 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 &lt;a href="http://code.google.com/p/zemberek/downloads/list"&gt;http://code.google.com/p/zemberek/downloads/list&lt;/a&gt; adresinden dosyalar indirilebilir. Bu sürüm adayıyla beraber:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Zemberek kütüphanesinin son sürümü olan 2.1.1 kullanılmaya başlandı.&lt;/li&gt;&lt;li&gt;Eklentinin kaynak kod paketi oluşturulmaya başlandı.&lt;/li&gt;&lt;li&gt;Eklentinin harici zemberek kütüphanesi dosyalarını kullanabilecek şekilde paketlenebilmesi de sağlandı.&lt;/li&gt;&lt;/ul&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-7419690319042559685?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/7419690319042559685/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=7419690319042559685' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7419690319042559685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7419690319042559685'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2008/11/zemberek-openofficeorg-eklentisinin.html' title='Zemberek Openoffice.org eklentisinin yeni sürüm adayı yayınlandı.'/><author><name>Serkan Kaba</name><uri>http://www.blogger.com/profile/03745950208384224604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-qZsDnXs-CXw/TcIyRG1DYaI/AAAAAAAAAF8/8_dLE-9rW1o/s220/dsc_2773.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-4218921104133609737</id><published>2008-10-06T05:43:00.000+03:00</published><updated>2008-10-14T05:02:36.894+03:00</updated><title type='text'>Tr-spell ve Firefox Turkce imla denetim eklentisi.</title><content type='html'>Bundan bir sure once Hunspell uyumlu turkce imla denetim dosyalarinin uretilmesi konusunda dusunup ardindan bir kac deneme yapmistik. Sonucta ortaya kelime tabanli basit bir sozluk cikmisti. Bu konuda biraz daha calisip yeni bir surum cikardik. Bu paketleri otomatik olusturabilmek icin de Google code hosting kapsaminda &lt;a href="http://code.google.com/p/tr-spell/"&gt;tr-spell &lt;/a&gt;adinda bir proje olusturduk. Projedeki kodlar ile cesitli kademelerle Hunspell icin gerekli .dic ve .aff dosyalarinin yani sira Firefox icin eklenti de uretebiliyoruz. Firefox eklentisinin uretimi asagidaki diyagramda gosterilmistir (buyutmek icin resme tiklayin):&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_fE0EePCZGQY/SOl8kWOsbbI/AAAAAAAAGzs/7nh_HVqhTM4/s1600-h/tr-spell-uretim.png"&gt;&lt;img src="http://1.bp.blogspot.com/_fE0EePCZGQY/SOl8kWOsbbI/AAAAAAAAGzs/7nh_HVqhTM4/s400/tr-spell-uretim.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5253867404188741042" style="cursor: pointer; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ilk asamda elimizdeki elektronik kitaplardan yararlanmistik. ancak oradaki 12 milyon civarindaki kelimeden ancak 350.000 civarinda tekil kelime uretebilmistik. Daha sonra gazete arsvilerinden yararlanmayi dusunduk. Bazi gazetelerin online arsivlerinden onlarin sunucularini da zorlamadan yuksek oranda haberi cekip icerisindeki yazilari ayiklayip binlik bloklar halinde dosyalara kaydedttik (ilgili kodlari projeden inceleyebilirsiniz.). Elimizde 2GB'den fazla duz metin dosyasi olustu. burdan 200 milyon civarindaki kelimeyi zemberek ile denetleyip cozup geri olusturarak 1.2 milyon civarinda tekil turkce kelime uretildi. &lt;/div&gt;&lt;div&gt;Burada bir sorunla karsilastik. her ne kadar mehmet hunspell icin ozel ek(.aff) dosyasi yazmayi basarsa da Hunspell'in genel yapisinin turkceye cok uygun olmadigini anladik. Bu konuda halen umit olsa da su an icin farkli bir yolu tercih ettik. Elimizdeki kelimeleri kullanarak yapay bir ek dosyasi uretmeye karar verip ekleri dilbilgisi kurallarina gore tanimlamaktansa tum kelimeleri Kok+ekler seklinde ayirip ekler kismini ayri ayri orjinal ek olarak kabul eden bir mekanizma kurduk. Yani mesela "kitaplar" ve "ktaplara" icin "lar" ve "lara" adinda iki ayri ek tipi uretiliyor. Bu sekilde ekleri ayirip bir ek dosyasi urettik. 70.000'e yakin ek blogu ortaya cikti. Daha sonra bu ek bloklarinin en cok kullanilan 20.000 tanesi ile Hunsepll ek (.aff) dosyasi ve bu ekleri kullanan kokleri kullanarak hunspell sozluk dosyasi (.dic) uretmek oldukca kolay oldu. Firefox icin gerekli dosyalaru da kullanip yeni bir firefox eklentisi olusturduk. eklentiyi proje ana sayfasindaki baglantidan indirebilirsiniz. Firefox ile [ File -&gt; Open File ] seceneginden dosyayi secip eklentiyi kurabilirsiniz.&lt;/div&gt;&lt;div&gt;Aslinda halen basarim istedigimiz duzeyde degil ve bunu arttirmak icin bir iki calisma daha yapabileceigmizi saniyorum. Ancak su an icin eklentinin idare edecek duzeyde is gorecegini saniyoruz. &lt;/div&gt;&lt;div&gt;Eger pardus kullaniyorsaniz, bu eklentiyi kurmaniza gerek yok, cunku pardusta Firefox zemberek mekanizmasini kullaniyor. Ve 400KB'lik zemberek acik hali 10Mb olan bu eklentiden cok daha yuksek basarim ile isliyor. Bu eklenti Windows ya da Mac altinda Firefox kullananlar icin faydali olacaktir. Eklentinin icindeki dic ve aff dosyalarini kullanarak hunspell kullanan farkli uygulamalar icin de eklentiler yazilabilir. &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-4218921104133609737?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/4218921104133609737/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=4218921104133609737' title='12 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4218921104133609737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4218921104133609737'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2008/10/tr-spell-ve-firefox-turkce-imla-denetim.html' title='Tr-spell ve Firefox Turkce imla denetim eklentisi.'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_fE0EePCZGQY/SOl8kWOsbbI/AAAAAAAAGzs/7nh_HVqhTM4/s72-c/tr-spell-uretim.png' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-4523629581152657477</id><published>2008-10-05T19:48:00.001+03:00</published><updated>2008-10-06T07:11:10.681+03:00</updated><title type='text'>Tr2sql, Turkce'den SQL'e donusum denemesi</title><content type='html'>&lt;span class="Apple-style-span"  style=" ;font-family:'Times New Roman';"&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;Zemberek kutuphanesinin kullanildigi calismalardan birisi de Turkce'den veri tabani sorgu dili SQL'e donusum yapilmasini amaclayan &lt;span style="font-weight: bold; "&gt;tr2sql &lt;/span&gt;projesi. Proje cok basit denilebilecek bir yontem ile Turkce cumleleri kistli bir alanda kabul edilebilir bir basari ile SQL'e donusturebiliyor. Donusum adimlari asagidaki gibi isliyor:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Veri tabani tanimlama dosyasindan veri tabani birimlerinin (tablolar, sutunlar) hangi turkce dogal dil kavrama karsilik dustugu okunuyor.&lt;/li&gt;&lt;li&gt;Ayni anlama karsilik dusen kokler tek bir kavrama karsilik dusuruluyor. Bu bilgi yine bir dosyada saklaniyor. (Burada bir wordnet cok ise yarardi.)&lt;/li&gt;&lt;li&gt;Girilen cumle ayiklaniyor. Ardindan her bir kelimenin hangi kavrama ve ne tur bir veri tabani birimine karsilik dustugu kestiriliyor. Cumle "Cumle Bileseni" katarina donusuyor. Bu islem sirasinda Zemberek'ten yararlaniliyor. (Burada da gercek bir cumle cozumleyici cok makbule gecerdi)&lt;/li&gt;&lt;li&gt;Olusan "Cumle bileseni" katari basit bir durum makinesine gonderiliyor. Durum makinesi art arda gelen bilesenlere gore SQL Sorgu Tasiyici adindaki bir nesneye sorgu verilerini yigiyor. Durum makinesi tamamen elle kodlandi.&lt;/li&gt;&lt;li&gt;SQL Sorgu Tasiyici nesnesindeki veriler kullanilarak gercek SQL cumlesi uretiliyor. Asagida adimlar basitlestirilmis olarak gosterilmistir.&lt;/li&gt;&lt;/ul&gt;&lt;div id="tbxh" style="padding-top: 1em; padding-right: 0pt; padding-bottom: 1em; padding-left: 0pt; text-align: center; "&gt;&lt;img id="cia." src="http://docs.google.com/File?id=ah8p92nkjzcw_77zvjppmft_b" style="width: 291px; height: 467px; " /&gt;&lt;/div&gt;Elbetteki ciddi kisitlamalari da mevcut donusumun, bunlarin ana nedeni zaman azligi ve eldeki NLP araclarinin yetersizligi. Kisitlamalara dair bilgileri proje dokumanindan inceleyebilirsiniz.&lt;br /&gt;&lt;br /&gt;Sonucta proje icinde calisanlara ait temel bilgileri barindiran bir veri tabani tablosu uzerinde asagidaki tur sorgulari basari ile donusturebiliyor:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;işçileri listele&lt;/li&gt;&lt;li&gt;çalışanları göster&lt;/li&gt;&lt;li&gt;çalışanların adlarını yaz&lt;/li&gt;&lt;li&gt;işçilerin isim ve soyadlarını göster&lt;/li&gt;&lt;li&gt;ilk 5 işçiyi listele&lt;/li&gt;&lt;li&gt;çalışanların ilk 5 inin adını ve numarasını göster&lt;/li&gt;&lt;li&gt;adı "Ali" olan çalışanları göster&lt;/li&gt;&lt;li&gt;adı "Ali", soyadı "Er" ya da "Erkan" olan çalışanları göster&lt;/li&gt;&lt;li&gt;adı "Ali", soyadı "Er" olan ilk 5 çalışanın numara ve adını göster&lt;/li&gt;&lt;li&gt;numarası "9" dan büyük işçileri listele&lt;/li&gt;&lt;li&gt;numarası "9" dan büyük kaç kişi var&lt;/li&gt;&lt;li&gt;işçilerden kaçının numarası "9" dan büyük&lt;/li&gt;&lt;li&gt;ismi "A" ile başlayan çalışanları göster&lt;/li&gt;&lt;li&gt;adı "A" ile başlamayan çalışanları göster&lt;/li&gt;&lt;li&gt;ismi "A" ile başlamayan, numarası "9" dan büyük olmayan ilk 100 çalışanın numara ve adını göster&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Cumlelere dikkat edilirse bilgi kisitlayan bilesenlerin tirnak isareti icerisinde yazildigi, kesme isaretinin kullanilmadigi ve sayilarin rakam kullanarak yazildigi gozlemlenebilir. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Bu calisma sadece bir deneme olarak gorulse de basit bir yontem ile bile oldukca basarili sonuclarin elde edilmesi bu konuda daha ileri calismalar icin umit oldugunu gosteriyor.&lt;br /&gt;Proje sayfasina &lt;a href="http://code.google.com/p/tr2sql/"&gt;http://code.google.com/p/tr2sql/&lt;/a&gt; , oldukca ayrintili olan proje dokumanina ise su &lt;a href="http://docs.google.com/Doc?id=dg4w3cq4_2mt7jffff"&gt;baglantidan&lt;/a&gt; erisebilirsiniz.&lt;br /&gt;&lt;br /&gt;Proje Suleyman Demirel Universitesi Elektronik Bilgisayar Egitimi bolumu mezunlarindan Dilek Semiz'in lisans tezi kapsaminda gerceklestirildi. Yazilimin gerceklenmesinde benim de yonlendirmem ve dogrudan katkim oldu.&lt;br /&gt;&lt;br /&gt;Bu noktada Turkiyedeki akademi camiasina da kucuk bir tas atmak isterim. &lt;span class="Apple-style-span" style="font-weight: bold; "&gt;tr2sql &lt;/span&gt;calismasi alaninda ilk degil. Bu konuda Bogazici universitesinde gelistirilen TOY kutphanesini kullanan Nalan TS (&lt;a href="http://cse.yeditepe.edu.tr/~eozcan/research/papers/TBD20_2.pdf"&gt;pdf&lt;/a&gt;) adinda onceden gerceklestirilen baska bir proje de var. Bu proje daha ileri islemleri de daha az kisitlama ile gerceklestirebiliyor. Ama ne o projeye ne de universitelerimizde gerceklestirilen calismalarin buyuk cogunlugunun ise yarar calistirilabilir koduna erismek cok zor. Google code hosting ya da diger benzeri sitelerde proje acmak 5 dakika aliyor sadece. Duyrulur.&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-4523629581152657477?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/4523629581152657477/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=4523629581152657477' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4523629581152657477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4523629581152657477'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2008/10/tr2sql-turkceden-sqle-donusum-denemesi.html' title='Tr2sql, Turkce&apos;den SQL&apos;e donusum denemesi'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-6321228302898550093</id><published>2008-10-02T06:54:00.000+03:00</published><updated>2008-10-02T07:16:56.216+03:00</updated><title type='text'>Zemberek 2.1.1</title><content type='html'>Zemberek 2.1.1 surumu cikti. Bu surumdeki bazi degisiklik ve duzeltmeler sunlar:&lt;div&gt;&lt;br /&gt;&lt;div&gt;- Olmayan bazi kelimeler eklendi, eskik tanimlanan bazi kelimeler duzeltildi. Bunlardan bazilari:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;[kitabevi, Finlandiya, obezite, icirmek, kesinkes, karaborsa, cemevi, emlak, genelev, olur, derlem, abi, subjektif, tereddut, selulit, arazoz, cezaevi, titanyum, dedektif, sehadet, kilometrekare, avro, nanoteknoloji, klasik, suistimal, livata, Bahattin, rutin, gunubirlik, duvak ]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;- &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Soluktu, yapmakti &lt;/span&gt;gibi kelimeler cozulemiyordu. ilgili ekin uretim kurali duzeltildi.&lt;/div&gt;&lt;div&gt;- Kelime ureticideki dil bagimli son harf yumusama ozelligi duzeltildi. Oradaki bir yanlislik da giderildi.&lt;/div&gt;&lt;div&gt;- ILI fiil eki eklendi (serili, yapili, gerili..). &lt;/div&gt;&lt;div&gt;- Kelime sinifindaki diziye donusturme metodu duzeltildi.&lt;/div&gt;&lt;div&gt;- SonHarfYumusamaOzelDurumu sistemden kaldirildi. ek ureticide hallediliyor.&lt;/div&gt;&lt;div&gt;- Cesitli kod duzeltmeleri, paketleme ile iliskili duzenlemeler.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yapilan degisikliklerin detaylarini proje kod degisiklikleri sayfasindan inceleyebilirsiniz ( &lt;a href="http://code.google.com/p/zemberek/source/list"&gt;http://code.google.com/p/zemberek/source/list &lt;/a&gt;).  Her zamanki gibi kodu ve kutuphaneyi ( &lt;a href="http://code.google.com/p/zemberek/downloads/list"&gt;http://code.google.com/p/zemberek/downloads/list &lt;/a&gt;) adresinden indirebilirsiniz. Serkan, Mehmet ve emegi gecen herkese tesekkurler.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-6321228302898550093?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/6321228302898550093/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=6321228302898550093' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/6321228302898550093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/6321228302898550093'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2008/10/zemberek-211.html' title='Zemberek 2.1.1'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-5152566524327240612</id><published>2008-09-08T15:32:00.000+03:00</published><updated>2008-09-09T13:01:32.479+03:00</updated><title type='text'>Deneysel kelime tabanli Firefox imla denetim eklentisi</title><content type='html'>Hafta sonu bos zamanda onceden e-posta listelerinde tartistigimiz , sonradan dusunup yapmaya usendigim bir seyi denedim. Ozellikle Windows altinda firefox kullanan kisilerin imla denetimi ihtiyaclarini kismen karsilamak icin kelime tabanli bir imla denetimi eklentisi denemesi yaptim. Mekanizma basit, imla denetimi icin zemberek gibi yapisal analiz yapmak yerine devasa bir kelime yigininda kelimenin var olup olmadigina bakiliyor. Bu isi yapan firefox icindeki Hunspell. Bu yontemin kotulugu imla denetim basariminin dusuk olmasi. Avantaji ise pek cok uygulama ile butunlestirilmesi.&lt;br /&gt;Turkce gibi eklemeli dillerde bu yontemi kullanarak orta seviye kabul edilebilir bir duzeyde basarim ile imla denetimi yapmak icin elde cok yuksek sayida kelime olmasi gerekiyor. Bu kelime listesini olusturmak icin internette buldugumuz 170 civarinda cesitli elektronik kitap, sozluk ve dokumani taradim (okuma degil sadece kelime toplama amacli kullanildi). Kelimeler zemberek kullarak denetlenip bir dosyaya yigildi. Bu kaynaklardan ortaya 330.000 kelimelik bir kelime listesi ortaya cikti. Bu liste kullanilarak taranmamis dokumanlar uzerinde yaptigim testler zemberek'in %95-96'si basarim ile calistigini gosterdi. Ancak kalan %4-5 lik alanin kelime ekleme ile doldurulmasi guc cunku 200.000 kelimelik bir listede basarim %94 civarinda idi. Yani bir sure sonra basarim artisi cok yavasliyor. O nedenle bu yontemin zemberek kalitesinde cozumleme yapmasi mumkun degil gorunuyor.&lt;br /&gt;Daha sonra kelimeleri hunspell formatina koyup basitce paketleyip bir Firefox eklentisi olusturup Firefox add-on sitesine yolladim. Su anda deneysel eklenti kapsaminda gorunuyor, indirebilmeniz icin siteye uye olmaniz gerekiyor. Indirip test eder ve siteye review yazarsaniz sanirim gercek bir eklenti haline donusebilir. &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/8794"&gt;Suradan &lt;/a&gt;firefox'a ekleyebilirsiniz. Bunun icin Google code hosting altinda bir proje acacagim ama taranan kaynaklar orada yer almayacak sadece kelime listesini olusturan kod ve eklentiler yer alacak.&lt;br /&gt;&lt;br /&gt;Notlar:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Bu yontem ozellesmis konularda cok daha kotu bir basarim ile calisacaktir. Ornegin saglik konulu bir yazida basarim %90 civarina dusebilir.&lt;/li&gt;&lt;li&gt;Bu yontem hunspell-affix dosyasi kullanilarak gelistirilebilir. Hic olmazsa iki derinlikli eklerin kok kelimelere eklenmesini saglayacak sekilde basarim cok daha iyi olabilirdi. Bunun icin hunspell affix dosyasinin duzgun sekilde yazilmasi gerekiyor.&lt;/li&gt;&lt;li&gt;Kelime sayisi farkli turden dokumanlarla zenginlestirilebilir. Bu konuda universite tezleri ve gazete arsivleri iyi bir kaynak olabilir.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Pardus ya da zemberek kullanan diger Linux dagitimlarinda bu eklentinin &lt;span style="font-weight: bold;"&gt;kullanilmamasi &lt;/span&gt;gerekir. Denemedim ancak problemlere yol acabilir. Zaten zemberek cok daha iyi bir is cikariyor ;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-5152566524327240612?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/5152566524327240612/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=5152566524327240612' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5152566524327240612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5152566524327240612'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2008/09/deneysel-kelime-tabanli-firefox-imla.html' title='Deneysel kelime tabanli Firefox imla denetim eklentisi'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-2543371428742680756</id><published>2008-08-08T04:44:00.000+03:00</published><updated>2008-08-08T18:06:15.591+03:00</updated><title type='text'>Hunspell ve Turk Dilleri</title><content type='html'>Zemberek kütüphanesini yazmaya başladıktan sonra bize en çok gelen sorulardan birisi windows ortamında Firefox, OpenOffice gibi uygulamalar için imla denetiminde kullanılıp kullanılamayacağı idi. İşin aslı Zemberek'in asıl yazılma amacı başından beri imla denetimi değil, NLP uygulamalrinda kullanılacak temel araçların sağlanması idi. Bununla birlikte ortadaki ihtiyaç ve gönüllülerin güzel çalışmaları ile Zemberek Linux dağıtımlarında ve OpenOffice uygulamasında biraz dolambaçlı bir şekilde de olsa en azından Türkiye Türkçesi için var olan bir boşluğu doldurabilmiştir.&lt;br /&gt;Genellikle işletim sistemleri ya da popüler uygulamalar alt seviye C ve C++ gibi dillerde yazıldığından imla denetim ihtiyaçları da yine alt seviye dillerle yazılmış araclar vasıtası ile sağlanagelmiştir. Bunlardan aspell ya da myspell yapıları itibarı ile eklemeli dillere uygun değildi zaten, ama Zemberek ile benzer zamanda László Németh tarafından geliştirilmeye başlayan &lt;a href="http://hunspell.sourceforge.net/"&gt;Hunspell&lt;/a&gt; hem eklemeli diller verdiği destek hem de daha modern bir yapıya sahip olduğundan bugün OpenOffice ve Firefox 3 gibi uygulamarda tercih nedeni olmuştur. Hunspell de tıpkı Zemberek gibi yapısal çözümleme, kelime üretimi ve kök bulma desteği sunuyor. Üstelik genel amaçlı yapışı ile bunu çoğu dil için yerine getirebiliyor. Dil gerceklemeleri cogu zaman hic kodlama gerektirmeden yapilabiliyor.&lt;br /&gt;Hunspell gerçekten pek çok dile destek veriyor ( Liste için &lt;a href="http://wiki.services.openoffice.org/wiki/Dictionaries"&gt;tıklayınız&lt;/a&gt; ) Listede  Türk dili olarak Özbekçe ve Azeri görünüyor. Bununla birlikte, bu dillere destek gerçek ek-kök tanımlamalarından ziyade köklere çok kullanılan eklerin eklenmesi ile oluşturulmuş kelime yığınlarından ibaret. Yani Hunspell için özel çalışma yapılmamış. imla denetimi başarımı bu nedenle oldukça düşük olacaktır.&lt;br /&gt;Bu yazıyı yazma amacım ise Türkçe için Hunspell gerçeklemesinin oluşturup oluşturamayacağı konusunun gündeme getirilmesidir. Bu şekilde alternatif bir çalışmanın özellikle Windows altında Firefox kullananlar için büyük yararı olacağını sanıyoruz. Bu konudaki sorunlardan birisi ise Hunspell'in Turkceye tam olarak uygun olup olmadigindan bile emin olmamamiz (Turkce gibi eklemeli Macarca icin gercekleme mevcut, ancak Fince icin kullanilmasi onerilmemis.)&lt;br /&gt;Başka bir seçenek de Linux dağıtımlarında olduğu gibi Zemberek server uygulamasının Windows paketlerinin hazırlanması ve buna erişim sağlayan Windows Firefox eklentisinin yazılması olabilir. Bu konuların herhangi birisinde çalışmak isteyenlere elimizden gelen yardımı yapmaya çalışacağız.&lt;br /&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_CreateLink" title="Bağlantı" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-2543371428742680756?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/2543371428742680756/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=2543371428742680756' title='5 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/2543371428742680756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/2543371428742680756'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2008/08/hunspell-ve-turk-dilleri.html' title='Hunspell ve Turk Dilleri'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-7374382751643017408</id><published>2008-08-03T22:28:00.000+03:00</published><updated>2008-08-03T22:51:47.524+03:00</updated><title type='text'>Zemberek'e Php ve JRuby ile erisim</title><content type='html'>Zemberek fonksiyornlarina Php uzerinden erismek icin Ismail Ata Kurt sunucu uzerinden erisim saglayacak bir sinif yazmis. Ornek kullanim ve kod icin blog girdisini &lt;a href="http://blog.livaxmedia.com/2008/08/01/php-ile-zemberek-server-kullanimi/"&gt;okuyabilirsiniz&lt;/a&gt;.&lt;br /&gt;Murat Arif Celiker arkadasimiz ise onceden  JRuby kullanarak Ruby dili ile zemberek kutuphanesine dogrudan nasil erisilebilcegini anlatan bir blog girdisi &lt;a href="http://www.ikinoktayazilim.com/wordpress/2007/10/18/jruby-ile-zemberek-kullanimi-1/"&gt;yazmisti&lt;/a&gt;. Bu yaklasimin farki zemberek sunucusunu gerektirmemesi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-7374382751643017408?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/7374382751643017408/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=7374382751643017408' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7374382751643017408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7374382751643017408'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2008/08/zembereke-php-ve-jruby-ile-erisim.html' title='Zemberek&apos;e Php ve JRuby ile erisim'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-4648158733595252837</id><published>2008-07-21T12:51:00.000+03:00</published><updated>2008-07-21T15:13:32.913+03:00</updated><title type='text'>Akademik çalışmalarda Zemberek</title><content type='html'>Ara ara çeşitli universitelerden Zemberek kullanımına ilişkin sorular yöneltiliyor. Anladığımız kadarı ile özellikle linsans ve bazen yüksek lisans tezlerinde ve araştırmalarda Zemberek kullanılıyor. Bu gerçekten güzel bir şey. Bunun için Google Scholar'da bir araştırma yapınca epey bir makale bağlantısı ile karşılaştık. Bunlardan bir kısmı şu şekilde (Bağlantılar genellikle pdf):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://nlp.stanford.edu/courses/cs224n/2006/fp/jonsid-gorkem-4-final-writeup.pdf"&gt;Turkalator, A Suite of Tools for Augmenting English-to-Turkish Statistical Machine Translation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jas.cankaya.edu.tr/jas7/13-TUFANTAS.pdf"&gt;Author Identification for Turkish Texts&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Aşağıdaki makale ilginç. TDK'nin destek olmaması nedeni ile TDK web sitesinden bilgileri nasıl çektikleri anlatılıyor.&lt;br /&gt;&lt;a href="http://www.cmpe.boun.edu.tr/%7Egungort/undergraduateprojects/Semantic%20Categorization%20of%20Turkish%20Language%20Elements.pdf"&gt;Semantic categorization of Turkish language elements&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="headNavBlueXLarge2"&gt;&lt;a href="http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4298870"&gt;A New Feature Extraction Method for Text Classification&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="headNavBlueXLarge2"&gt;&lt;a href="http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4298786"&gt;Turkish Document Classification Using Shorter Roots&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4456860"&gt;&lt;span class="headNavBlueXLarge2"&gt;Turkish keyphrase extraction using KEA&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.waset.org/pwaset/v17/v17-3.pdf"&gt;Advanced Information Extraction with n-gram based LSI&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bu makalelerin büyük kısmında kütüphane kök bulucu (stemmer) olarak kullanılmış. Bir kısmında işe yapısal çözümleyici sonuçlarından yararlanılmış. Yöneltilen sorulardan birisi de makalelerde Zemberek'i referans olarak kullanmak için bir yayının olup olmadığı yönünde. Bundan bir kaç sene önce yazdığımız bir makale kabul edilmediğinden sadece proje sayfasının referans verilmesi yeterli olacaktır.&lt;br /&gt;Yukarıdaki makalelerden başka özellikle lisans bitirme projelerinde Zemberek'in kullanıldığını tahmin ediyorum. Eğer bağlantı gönderenler olursa memnun oluruz.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-4648158733595252837?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/4648158733595252837/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=4648158733595252837' title='3 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4648158733595252837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4648158733595252837'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2008/07/akademik-calismalarda-zemberek.html' title='Akademik çalışmalarda Zemberek'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-4910250572240998732</id><published>2008-07-07T13:07:00.000+03:00</published><updated>2008-07-10T10:35:16.380+03:00</updated><title type='text'>Zemberek projelerinin kararlı sürümleri yayınlandı.</title><content type='html'>27 Haziran 2008'de projelerin rc1 sürümlerini &lt;a href="http://tinyurl.com/6bceov"&gt;duyurmuştuk&lt;/a&gt;. Tesbit edilen diğer hataları da gidererek zemberek ve zemberek-server projelerine ait yeni sürümleri yayınlıyoruz. Zemberek Openoffice eklentisi de ileriki bir tarihte yayınlanacak. Dosyalar yine &lt;a href="http://code.google.com/p/zemberek/downloads/list"&gt;http://code.google.com/p/zemberek/downloads/list&lt;/a&gt; adresinden indirilebilir.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;zemberek-2.1&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tercihen kelimesi eklendi. (&lt;a href="http://code.google.com/p/zemberek/issues/detail?id=56"&gt;Issue #56&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Ses düşmesine uğraması gereken kelimelerle ilgili hata düzeltildi. (&lt;a href="http://code.google.com/p/zemberek/issues/detail?id=44"&gt;Issue #44&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Demo uygulamasına hatalı kelimeleri renklendirme özelliği eklendi. (&lt;a href="http://code.google.com/p/zemberek/issues/detail?id=66"&gt;Issue #66&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Bağ-Kur kısaltması ile ilgili problem gideildi. (&lt;a href="http://code.google.com/p/zemberek/issues/detail?id=57"&gt;Issue #57&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Bankamatik kelimesi yumuşamaya uğrayacak şekilde işaretlendi.&lt;/li&gt;&lt;li&gt;Kısayol kelimesi bilişim sözlüğüne eklendi. (&lt;a href="http://code.google.com/p/zemberek/issues/detail?id=53"&gt;Issue #53&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;"ğ" ve "ş" içeren kişi adları ile ilgili öneriler düzeltildi.&lt;/li&gt;&lt;li&gt;unit-test işlemi çalışır hale getirildi.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Bağımlı kütüphanelerin yer almadığı kaynak dağıtımı eklendi.&lt;/li&gt;&lt;li&gt;Dağıtımla ilgili düzenlemeler.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;zemberek-server-0.7.1&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;jar dosyası classpath düzenlemesi.&lt;/li&gt;&lt;li&gt;JNI kütüphaneleri optimizasyon bayrakları olmadan derlenip pakete eklendi.&lt;/li&gt;&lt;li&gt;Bağımlı kütüphanelerin yer almadığı kaynak dağıtımı eklendi.&lt;/li&gt;&lt;li&gt; Dağıtımla ilgili düzenlemeler.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-4910250572240998732?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/4910250572240998732/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=4910250572240998732' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4910250572240998732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/4910250572240998732'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2008/07/zemberek-projelerinin-kararl-srmleri.html' title='Zemberek projelerinin kararlı sürümleri yayınlandı.'/><author><name>Serkan Kaba</name><uri>http://www.blogger.com/profile/03745950208384224604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-qZsDnXs-CXw/TcIyRG1DYaI/AAAAAAAAAF8/8_dLE-9rW1o/s220/dsc_2773.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-1596583691020568815</id><published>2008-06-27T15:02:00.000+03:00</published><updated>2008-07-01T10:34:50.237+03:00</updated><title type='text'>Zemberek projelerinin yeni sürümleri yayınlandı.</title><content type='html'>Zemberek NLP projesinde yeralana 3 alt projenin yeni sürümleri yayınlandı. Aşağıda sürümlerle ilgili değişiklik ve düzeltmelere ait ayrıntıları bulabilirsiniz. Projelere ait kaynak ve binary dağıtımlar &lt;a href="http://code.google.com/p/zemberek/downloads/list"&gt;http://code.google.com/p/zemberek/downloads/list&lt;/a&gt; adresinden indirilebilir.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;zemberek-2.1_rc1&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Giderilen hatalar: &lt;a href="http://code.google.com/p/zemberek/issues/detail?id=42"&gt;Issue #42&lt;/a&gt;, &lt;a href="http://code.google.com/p/zemberek/issues/detail?id=46"&gt;Issue #46&lt;/a&gt;, &lt;a href="http://code.google.com/p/zemberek/issues/detail?id=48"&gt;Issue #48&lt;/a&gt;, &lt;a href="http://code.google.com/p/zemberek/issues/detail?id=50"&gt;Issue #50&lt;/a&gt;, &lt;a href="http://code.google.com/p/zemberek/issues/detail?id=51"&gt;Issue #51&lt;/a&gt;, &lt;a href="http://code.google.com/p/zemberek/issues/detail?id=54"&gt;Issue #54&lt;/a&gt;, &lt;a href="http://code.google.com/p/zemberek/issues/detail?id=57"&gt;Issue #57&lt;/a&gt;, &lt;a href="http://code.google.com/p/zemberek/issues/detail?id=59"&gt;Issue #59&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Çözümleme stratejisi eklendi.&lt;/li&gt;&lt;li&gt;Ek üretici düzenlemeleri.&lt;/li&gt;&lt;li&gt;Kelime üretiminde başlangıç eki kullanma şartı artık gerekmiyor.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Demo uygulamasında küçük düzelemeler ve temiz ASCII-Turkce dönüşüm özelliği eklendi.&lt;/li&gt;&lt;li&gt;Küçük yapısal düzeltmeler.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;zemberek-server-0.7.1_rc1&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Komut satırından varsayılan ve dosyada yeralan seçenekler ezilebiliyor. (&lt;a href="http://code.google.com/p/zemberek/issues/detail?id=36"&gt;Issue #36&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Conf.ini dosyası olmaması durumunda yaşanan sorun giderildi.&lt;/li&gt;&lt;li&gt;Kullanılan kütüphaneler yeni sürümlerine güncellendi ve 64 bit kütüphane eklendi: mina-1.1, dbus-java-2.5, zemberek-2.1_rc1&lt;/li&gt;&lt;li&gt;Socket sunucusuna heceleme desteği eklendi.&lt;/li&gt;&lt;li&gt;Scriptler binary dağıtımda çalışacak şekilde düzenlendi.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;zemberek-ooo-1.0_rc1&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;zemberek-2.1_rc1 sürümüne geçildi ve eklenti kodları zemberek2 ye uyumlu hale getirildi.&lt;/li&gt;&lt;li&gt;Uzun süredir hatalı işleyen heceleme işlemi düzeltildi. (&lt;a href="http://code.google.com/p/zemberek/issues/detail?id=49"&gt;Issue #49&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Düzenleme:&lt;/span&gt; Issue #56 kararlı sürümde düzelecek.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-1596583691020568815?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/1596583691020568815/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=1596583691020568815' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1596583691020568815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1596583691020568815'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2008/06/zemberek-projelerinin-yeni-srmleri.html' title='Zemberek projelerinin yeni sürümleri yayınlandı.'/><author><name>Serkan Kaba</name><uri>http://www.blogger.com/profile/03745950208384224604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-qZsDnXs-CXw/TcIyRG1DYaI/AAAAAAAAAF8/8_dLE-9rW1o/s220/dsc_2773.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-161870446707452466</id><published>2007-06-23T06:03:00.000+03:00</published><updated>2007-06-23T07:25:59.389+03:00</updated><title type='text'>Kelime Obekleri denemesi</title><content type='html'>Kelime obekleri (bilesik kelime, coklu kelime, kelime grubu da denilebilir, bu konuda tem bir isimlendirme var mi bilemiyorum. Tankut ve Mert obek demislerdi, begendim, genellikle onu kullaniyorum) uzerinde epeydir calismak istiyordum, ancak islerden ne yazik ki ancak biraz zaman ayirabildim. Oncelikli amac kelime obeklerinin cumle icerisinden tespiti. Bunu yapmak aslinda zor degil, ancak her NLP konusunda oldugu gibi, gene kayaya bilgi eksikligi konusunda carptim. Elimizde var olan obeklerin isaretlenmis bir derlemesinin bulunmasi gerekiyor.&lt;br /&gt;Onceden de bahsi gecmisti, kelime obeklerinin farkli yapilari var. En cok karsilasilani genellikle kendi baslarina ayrik bir kavrami ifade eden [ Kok+ek kalibi, Kok+ek kalibi... ] seklindeki yapilar. Ornegin "abayi yakmak" -&gt; [ aba AD + belirtme(yukleme) eki, yak FIIL + genel ]  seklinde. Bu sekilde farkli ek gruplari ile kelime obeklerinin buyuk kismi isaretlenebilir. Kotu olan sey ise 40-50 bin civarinda (daha da fazla olabilir) bu sekil obegin bulunmasi. Bunlarin tamaminin elle tek kisi tarafindan isaretlenmesi mumkun degil. Bu isin bilgisayar tarafindan yari otomatik olarak koklerin tespiti ve ek kaliplarinin elle secilmesi bu konudaki izlenecek yontem olabilir. Hatta isin basinda sadece koklerin tespiti yeterli olacaktir.&lt;br /&gt;Elimde dogru durust bilgi olmadigindan cok hos olmasa da TDK sitesinden bu bilgileri cekecek minik bir orumcek mekanizmasi yazmaya karar verdim. cektigim bilgileri sadece deney amaciyla kullanacagimdan umarim darilmazlar. Zemberek , Http Client ve Java 5 ThreadPool yapilarini kullanarak  sozlukteki tum kokler icin sirayla ilgili URL'yi olusturup surekli olarak ayni anda 30 gorevi isletecek sekilde mekanizmayi baslattim (daha fazlasini isletseydim DoS saldirisi yapiliyor sanabilirlerdi belki). Gelen HTTP cevabindan bilesik kelimeleri ayiklama kolay olmadi, ama sonucta TDK sitesinden tum koklere karsilik dusen bilesik kelime deyim ve atasozlerini 3 saat gibi oldukca iyi oldugunu dusundugum bir surede indirdim.&lt;br /&gt;&lt;br /&gt;Tabi is bitmiyor burada. gelen bilesik kelimelerin bir depoya atilmasi gerekiyor. Dosyadan bu bilesik kelimeleri okuyup kok bulucu ile koklerini kestirdim. Birden fazla sonucun ciktigi durumlarda hangisinin secilmesi gerektigini kestirmek tam olarak mumkun degil. Simdilik balta bir sekilde en uzun boylu koku sectim. Bu sekilde elimde tum kelime obeklerinin oldugu bir depo oldu. depo icinde istenilen bir ya da birden fazla kokun icinde gectigi tum obekleri bulacak  baska bir mekanizma daha koydum ama henuz kullanilmiyor.. Normalde gercek uygulamada bellek tuketimi nedeniyle kelime obeklerinin nesne ya da ogmulu iliskisel bir veri tabaninda saklanilmasi daha mantikli . o konuda da denemem oldu ama lafi cok uzatmayayim.&lt;br /&gt;&lt;br /&gt;Daha sonraki konu ise asil analiz. Sorun su. elimizde bir dizi kelime olsun: [w1, w2, ..., wn] bunun kok  cozumlenmesinden  elimizde en kotu ihtimalle [ [k11, k12.. k1m], [k21, k22... k2m],....,[kn1,kn2,..,knm]  ] seklinde bir diziler dizisi ortaya cikacaktir. Sonrasi  tum olasi ardisil kok dizilimlerinin kelime obekleri olusturup olusturmadigi akillica yazilmis bir algotma ile depodan bulunmasina bakiyor. simdilik sadece en uzun kokleri secerek [k1, k2,..., kn] diziside yer alabilecek kelime obeklerini bulan basit bir metod yazdim. Deney dizinindeki BasitKelimeObegiBulucu sinifini isleterek ornek cumlelerdeki obeklerin bulunmasini gozleyebilirsiniz. Tabiki cok fazla eksik var,yanlis kokler secildiginden obekleri tam bulamiyor.&lt;br /&gt;&lt;br /&gt;abuk subuk bir ornek:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"Van kedisi tuhaf tuhaf bakıp postu sererek tası tarağı toplayan adama yardım etti."&lt;/span&gt;&lt;br /&gt;Bulunan obek adaylari: [&lt;span style="font-weight: bold;"&gt;van|kedi , post|ser , tas|tarak , yardım|et&lt;/span&gt;]&lt;br /&gt;&lt;br /&gt;Eksiklikler&lt;br /&gt;&lt;ul&gt;&lt;li&gt;oncelikle obeklerin, ozellikle koklerin  isaretlenmesi (etiketleme)&lt;/li&gt;&lt;li&gt;ek sablonlairnin yapilairnin ortaya cikarilmasi. ve analizdeki gorevlerinin belirlenmesi.&lt;/li&gt;&lt;li&gt;analizde koklerin tamaminin testi gerekiyor.&lt;/li&gt;&lt;li&gt;sozlukte yer almayan bilesik kelime yapilarinin incelenmesi . (tekrarlama, fiil obekleri gibi. Ornegin: "abuk subuk", "gelip gelmedigini" gibi.)&lt;/li&gt;&lt;li&gt;obeklerin disk uzerinde saklanmasi ve sorgusu.&lt;/li&gt;&lt;li&gt;icinde bir kelimesi ayri olan ama ayni anlama gelen obekler (abayi sermek, postu sermek.. gibi)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Bu  noktada durup asil sorunumuz olan bilgi girisi konusunda tekrar dusunmek istiyorum. bilgi olmadan algoritmaniz ne kadar sahane olursa olsun bir ise yaramiyor. Biliyorum akademide bunun tersi gecerli ama bana gore algoritma NLP'de bilgiden sonra geliyor. Cok karmasik olmayan ve kelime obeklerinin isaretlenmesini kolaylastiracak cok katilimli bir mekanizmayi yapmak zor degil. Ama isler ve zaman aleyhimize. Bakalim, zaman dar ama bakarsiniz bir seyler cikar ortaya.&lt;br /&gt;&lt;br /&gt;Bu arada memleketten buraya doneli bir ay oldu, askerlik nedeniyle haftaya insallah tekrar donmem gerekiyor. :). gorusmek uzere.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-161870446707452466?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/161870446707452466/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=161870446707452466' title='3 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/161870446707452466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/161870446707452466'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2007/06/kelime-obekleri-denemesi.html' title='Kelime Obekleri denemesi'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-7478274812775079239</id><published>2007-06-01T08:38:00.000+03:00</published><updated>2007-06-03T13:23:22.795+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zemberek'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Eclipse Türkçe imla denetimi eklentisi: Musahhih</title><content type='html'>Daha önce aklıma gelmiş olan fikri hayata geçiren Yusuf Karagöl'e teşekkürler. Eclipse için  javadoc, yorum ve Stringlerde imla denetimi yapan bu eklenti gayet başarılı. Zemberek javadoc larında ascii olarak yazılmış kelimeleri gayet de güzel buldu.  Eline sağlık çalışmalarının devamını bekliyoruz.&lt;br /&gt;&lt;br /&gt;Projenin web sitesi: &lt;a href="http://sourceforge.net/projects/musahhih"&gt;http://sourceforge.net/projects/musahhih&lt;/a&gt;&lt;br /&gt;Projenin ilk duyurusu: &lt;a href="http://liste.uludag.org.tr/pipermail/zemberek-pardus/2007-May/000068.html"&gt;http://liste.uludag.org.tr/pipermail/zemberek-pardus/2007-May/000068.html&lt;/a&gt;&lt;br /&gt;Kullanım belgesi: &lt;a href="http://musahhih.wiki.sourceforge.net/kullan%C4%B1m"&gt;http://musahhih.wiki.sourceforge.net/kullan%C4%B1m&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;E bir de screenshot tabiiki :P&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img529.imageshack.us/my.php?image=screenshotwf0.jpg" target="_blank"&gt;&lt;img src="http://img529.imageshack.us/img529/9265/screenshotwf0.th.jpg" alt="Free Image Hosting at www.ImageShack.us" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Düzenleme:&lt;/span&gt; Siteye son çalışan sürümü eklemiş&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-7478274812775079239?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/7478274812775079239/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=7478274812775079239' title='4 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7478274812775079239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7478274812775079239'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2007/05/eclipse-trke-imla-denetimi-eklentisi.html' title='Eclipse Türkçe imla denetimi eklentisi: Musahhih'/><author><name>Serkan Kaba</name><uri>http://www.blogger.com/profile/03745950208384224604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-qZsDnXs-CXw/TcIyRG1DYaI/AAAAAAAAAF8/8_dLE-9rW1o/s220/dsc_2773.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-8593157299588302327</id><published>2007-04-15T13:22:00.000+03:00</published><updated>2007-04-15T17:40:03.854+03:00</updated><title type='text'>Zemberek nasıl çalışır? 2.Ağaç Performansı ve Kök Seçiciler</title><content type='html'>Bu yazıda Kök ağacı ile ilgili performans verilerinden bahsedip Zemberek kök seçicilerinin yapısını kısaca anlatacağım.&lt;br /&gt;&lt;br /&gt;Daha önceki yazımda zemberek kök ağacının yapısından bahsetmiştim. Yazıda kök ağacının oluşum zamanı ve düğüm sayıları ile ilgili bir şey yazmadığımı fark ettim, önce onları özetlersek:&lt;br /&gt;&lt;pre&gt;Sistem: AthlonXP 2.2Ghz, Pardus 2007.1, Java 6, JVM client modu&lt;br /&gt;&lt;br /&gt;Sözlüğün okunup ağacın oluşturulma süresi: 0.5s.&lt;br /&gt;ikinci ve üçüncü okuyuşlar: 0.2s.&lt;br /&gt;Toplam düğüm sayısı: 46634&lt;br /&gt;Kök taşıyan düğüm sayısı: 33414&lt;br /&gt;Alt düğümü olan düğüm sayısı:21729&lt;br /&gt;Alt düğümü olmayan (yaprak) düğüm sayısı: 24905&lt;br /&gt;&lt;br /&gt;Alt  düğüm dökümü:&lt;br /&gt;1 alt düğümü olanlar: 10979  Yüzde: %50,527&lt;br /&gt;2 alt düğümü olanlar: 6419   Yüzde: %29,541&lt;br /&gt;3 alt düğümü olanlar: 1820   Yüzde: %8,376&lt;br /&gt;4 alt düğümü olanlar: 846    Yüzde: %3,893&lt;br /&gt;5 alt düğümü olanlar: 475    Yüzde: %2,186&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;Herhangi bir kelime için aday köklerin seçilmesini sağlayan basit yapılara kök seçici ismini verdik. Yazım denetimi gibi işlemlerin yapılabilmesi için gerekli olan Morfolojik analiz için verilen bir kelimenin önce kök adaylarının bulunması gerektiğini önceki yazıda ifade etmiştim. Bu işlem için "Kesin kök adayı bulucu" kullanılır. Yapısına bakacak olursak:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jiekG5XBOyk/RiIBqsYrHtI/AAAAAAAAAGw/C4IbZiGN01Q/s1600-h/kesinkokadayibulucu.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_jiekG5XBOyk/RiIBqsYrHtI/AAAAAAAAAGw/C4IbZiGN01Q/s320/kesinkokadayibulucu.png" alt="" id="BLOGGER_PHOTO_ID_5053603564843900626" border="0" /&gt;&lt;/a&gt; Zemberek ağaç üzerinde kelimenin harflerini izleyerek ilerler ve yolda rastladığı tüm kökleri toplar, yani "elmaslarının" kelimesi için aday kök olarak "el", "elma" ve "elmas" kelimeleri seçilir. Daha sonra Çözümleme işlemine geçilir ve bu adaylar tek tek denenir. Genelde en uzun olan kök adayı uygun seçim olacağından denemelere uzun olan kökten (seçilenlerin en sonuncusundan) başlanır.&lt;br /&gt;&lt;br /&gt;Zemberek'in yazım denetimi sırasında hatalı kelimeler için öneri de verdiğini biliyoruz. Öneri işlemi nispeten karmaşık bir kök seçici ve özel bir çözümleyici kullanır. Bu özel seçici ağaç üzerinde ilerlerken belli bir hata toleransını da hesaba katar.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jiekG5XBOyk/RiIDbsYrHuI/AAAAAAAAAG4/uONdsq0gtkg/s1600-h/toleranslikokadayibulucu.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_jiekG5XBOyk/RiIDbsYrHuI/AAAAAAAAAG4/uONdsq0gtkg/s320/toleranslikokadayibulucu.png" alt="" id="BLOGGER_PHOTO_ID_5053605506169118434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Örneğin "elxalarının" hatalı kelimesi için ağaç üzerinde ilerlerken sadece "ela, elma ve elmas" değil "ela" kökü de seçilir. Zemberek te bu kelime için "elmaslarının ve elalarının" önerilerini üretir. Ağaç üzerinde ilerleme hata toleransı ile sınırlıdır, yani algoritma "Hata toleransı belli bir değeri aşıncaya kadar ağaçta ilerle ve rastladığın kökleri seç" ifadesi ile özetlenebilir. . Zemberek kelimelerin birbirlerine ne kadar benzediğini bulmak için şimdilik sadece Damerau-Levenshtein düzeltme mesafesi algoritmasını kullanıyor, ancak  denemek isteyen biri farklı kelime benzerlik algoritmalarını kullanan bir seçici yazabilir, Örneğin  Zemberek içerisinde gerçeklemesi bulunan Jaro-Winkler benzerlik algoritması uygun olabilir.&lt;br /&gt;&lt;br /&gt;Son olarak ta Türkçe klavyesi olmayan veya (nedense) Türkçe harfleri tercih etmeyen kişilerin yazdıkları kelimelerin Türkçe'deki karşılıklarını bulmaya yarayan Ascii-&gt;Türkçe dönüşümünde kullandığımız Ascii Toleranslı Kök seçici'nin yapısı da şu şekildedir:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jiekG5XBOyk/RiIFFsYrHvI/AAAAAAAAAHA/Ve96T1BepKM/s1600-h/asciikokadayibulucu.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_jiekG5XBOyk/RiIFFsYrHvI/AAAAAAAAAHA/Ve96T1BepKM/s320/asciikokadayibulucu.png" alt="" id="BLOGGER_PHOTO_ID_5053607327235251954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Bu seçici de nispeten toleranslı kök seçiciye benzer, ancak bu sefer kelime benzerlik algoritmaları kullanmak yerine kelime için ağacı tararken u,i,s,o,g,c harfleri için ve Türkçe'deki karşılıkları olabilecek ü,i,ş,ö,ğ,ç düğümlerinde de ilerler. Yani yazar "durumunun" demişse sadece "dur", "duru" ve "durum" değil "dür" ve "dürüm" kökleri de aday olarak seçilir.&lt;br /&gt;&lt;br /&gt;Peki seçicilerin performansı nasıl? Değerleri yaklaşık olarak veriyorum, sanırım toleranslı seçici performansı üzerinde biraz daha çalışmamız gerekiyor :) tabi burada önemli bir nokta var, yaptığım testte türkçe bir metni toleranslı seçici kullanarak taradım, yani hatalı kelimeler yerine doğru kelimeler için toleranslı seçim yapıldı, bu da ağaç üzerinde gezinilen düğüm sayısını çok arttırıyor, yani performans bozuk bir metinde çok daha yüksek olacaktır.&lt;br /&gt;&lt;br /&gt;Yine aynı sistemde (AthlonXP 2.2Ghz, Pardus 2007.1, Java 6 -client)&lt;br /&gt;Kesin kök seçici: 600.000 kelime/s&lt;br /&gt;ASCII toleranslı seçici: 100.000 kelime/s&lt;br /&gt;Toleranslı seçici: 300 kelime/s&lt;br /&gt;&lt;br /&gt;Kök seçicilerinin bize getirisi bu üç farklı işlem için de aynı veri yapısının (ağaç) kullanılması ve kodlarının çok basit olmasıdır. Merak edenler aşağıdaki adresten kök ağacı ve seçicilerle ilgili kodlara erişebilirler:&lt;br /&gt;&lt;a href="http://zemberek.googlecode.com/svn/trunk/zemberek2/src/cekirdek/net/zemberek/bilgi/kokler/"&gt;http://zemberek.googlecode.com/svn/trunk/zemberek2/src/cekirdek/net/zemberek/bilgi/kokler/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-8593157299588302327?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/8593157299588302327/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=8593157299588302327' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/8593157299588302327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/8593157299588302327'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2007/04/zemberek-nasl-alr-2aa-performans-ve-kk.html' title='Zemberek nasıl çalışır? 2.Ağaç Performansı ve Kök Seçiciler'/><author><name>M.D.A</name><uri>http://www.blogger.com/profile/17275949971136439559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_jiekG5XBOyk/RiIBqsYrHtI/AAAAAAAAAGw/C4IbZiGN01Q/s72-c/kesinkokadayibulucu.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-8918816317695336804</id><published>2007-03-28T11:31:00.000+03:00</published><updated>2007-03-28T11:39:23.553+03:00</updated><title type='text'>Zemberek belgeleri</title><content type='html'>&lt;span&gt;Java.net sitemizden &lt;a href="http://code.google.com/p/zemberek/"&gt;google sitemize&lt;/a&gt; taşınırken belgeleri de güncelleyerek aktarıyoruz.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Geliştirici belgeleri&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;a href="http://docs.google.com/Doc?id=ah8p92nkjzcw_8dhssst" rel="nofollow"&gt;Zemberek projesinin indirilmesi ve farkli Java gelistirme ortamlarinda acilmasi&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt; &lt;a href="http://docs.google.com/Doc?id=ah8p92nkjzcw_17fmfqtq" rel="nofollow"&gt;Zemberek Kutuphanesine Java projelerinden erisim&lt;/a&gt; &lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt; &lt;a href="http://docs.google.com/Doc?id=ah8p92nkjzcw_13c7zfq9" rel="nofollow"&gt;Turk Dili gelistirici Belgesi&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;SSS&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;a href="http://docs.google.com/Doc?id=ah8p92nkjzcw_18d5bv6d" rel="nofollow"&gt;Soru-Cevap&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-8918816317695336804?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/8918816317695336804/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=8918816317695336804' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/8918816317695336804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/8918816317695336804'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2007/03/zemberek-belgeleri.html' title='Zemberek belgeleri'/><author><name>Serkan Kaba</name><uri>http://www.blogger.com/profile/03745950208384224604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-qZsDnXs-CXw/TcIyRG1DYaI/AAAAAAAAAF8/8_dLE-9rW1o/s220/dsc_2773.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-1286321339186635934</id><published>2007-03-22T03:11:00.000+02:00</published><updated>2007-03-22T06:09:20.303+02:00</updated><title type='text'>Tatarça-Törekçä</title><content type='html'>Gectigimiz gunlerde Open Office.org Turkiye'den Rail bir mesaj yolladi. Open Office'in Tatarca  icin yerellestirilmesi konusunda bir projenin olabileceginden bahsetti ve Zemberek ile tatarca imla denetimi ve dil servilerinin verilip verilemeyecegini sordu (&lt;a href="http://en.wikipedia.org/wiki/Tatar_language"&gt;Tatarca&lt;/a&gt;, &lt;a href="http://tr.wikipedia.org/wiki/Tataristan"&gt;Tataristan &lt;/a&gt;'da konusulan dil. &lt;a href="http://en.wikipedia.org/wiki/Crimean_Tatars"&gt;Kirim Tatar&lt;/a&gt;larinin yurdu ve kullandiklari dil olan Kirim Tatarcasi &lt;a href="http://tr.wikipedia.org/wiki/K%C4%B1r%C4%B1m_Tatarcas%C4%B1"&gt;farkli&lt;/a&gt; gorunuyor). Zemberek2 yapisini elimizden geldigince dilden bagimsiz ve yeni dil eklemeyi kolaylastiracak sekilde degistirdigimizden tatarcayi eklemenin mumkun oldugunu soyledik. Tabiki bunu kendi basimiza gerceklestirmemiz mumkun degil. Tatarca konusunda uzman birisinin yardimci olmasi , ve mumtemelen baska kisilerin de veri girisi saglamasi gerkiyor. Zemberek ve diger dil isleme sistemlerindeki temel sorun aslinda bilgiye olan erisim ve bilgi toplama problemi. Butun bunlar oldukca zaman isteyen isler, isin programlama kismini cekridek gelistiriciler nispeten hizla halledebilir gorunuyor.&lt;br /&gt;Son iki gunde biraz arastirma yaptim, gorunuse gore  Tatarca Turkmence ya da Azerice'den ayri bazi zorluklar iceriyor. Ilk sorun alfabe. Ortada &lt;a href="http://en.wikipedia.org/wiki/Tatar_alphabet"&gt;uc farkli alfabe&lt;/a&gt; mevcut; ikisi latin, digeri Kril alfabesi. Wikipedia'da okuduguma gore Ne yazik ki Rus hukumeti resmi olarak kril disi alfabelerin kullanimina izin vermiyor, ancak biz saniyorum genede en son kullanilan latin alfabesi icin bu isi gerceklestirmeye calisacagiz. Kril alfabesindeki semboller bire bir harflere karsilik dustugunden sonradan bir on-art isleyici ile girisi alfabeden bagimsiz yapmak pekala mumkun.&lt;br /&gt;Diger sorun ise Zemberek icindeki bazi yapilarin halen cok genellestirilememis olmasindan kaynaklaniyoru. Tatarca ek uretim kurallari Turkce, Turkmence ve Azerice'den epey farkli gorunuyor. Bu nedenle daha en basta ek konfigurasyonu okuma kodunda bir degisiklik yapmam gerekti.&lt;br /&gt;Tatarca konusunda bulabildigim en iyi internet kaynagi "&lt;a href="http://tugan-tel.noka.ru/"&gt;I tugan tel&lt;/a&gt;". Dilbiglisi konusunda yazilar, sozlukler ve cesitli makaleler mevcut. Ne yazik ki sadece bir iki tanesi Turkce. Simdilik kisa &lt;a href="http://tugan-tel.noka.ru/meqele/dilbilgisi"&gt;Tatarca dilbilgisi &lt;/a&gt;yazisindan yararlanarak bir kac test ek ve koku tanimladim ve sistemi bu basit hali ile calisir hale getirdim (aslinda bir iki saat surebilecek bir isti ama tatar alfabesi ve eklerini ogrenme , ek olusum mekanizmasini degistirme derken 6-7 saat tuttu). Asagida bir ornek gorebilirsiniz:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fE0EePCZGQY/RgHtx4_EpBI/AAAAAAAAAXw/scG7dI1ZGtQ/s1600-h/tatar_demo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_fE0EePCZGQY/RgHtx4_EpBI/AAAAAAAAAXw/scG7dI1ZGtQ/s400/tatar_demo.png" alt="" id="BLOGGER_PHOTO_ID_5044574498997969938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;(tel-&gt;dil, telemne-&gt; dilime, telläremnän-&gt; dillerimden) . Sadece uc dort kok ve on ek ile simdilik isler yuruse de yakinda yapiyi hafifce sarsacak problemlerle karsilasabilecegimizi saniyorum.&lt;br /&gt;Turkceden farkli bir durum ornekte yer aliyor. uzaklasma eki "dan" turkce gibi. "dan, tan, dän, tän" seklinde ureyebiliyor. Ancak eger eklenecegi kelime "n, m ya da ñ" ile biterse "nan, nän" seklinde olusuyor. Bu nedenle ek uretim mekanizmasina ozel kural koymak zorunda kaldim. ispanyolca alfabede yer alan 'ñ' harfi tatarcada anadoluda halen kullanilan genizin ust tarafinin birlesimi ile cikarilan 'n' harfi seklinde okunuyor. Toplam on sesli iceren tatarcadaki 'ä' ise Azericedeki 'ə' harfi ile ayni saniyorum, a ile e arasi bir ses karsilik dusuyor.&lt;br /&gt;Bu konuda Zemberek tek alternatif degil elbette, saf imla denetimine yonelik ve eklemeli dillere uygun C++ tabanli Hunspell mevcut. Biz tabi zamanimiz da el verirse Zemberek ile yola devam edecegiz.&lt;br /&gt;(Not: verdigim bilgiler hatali olabilir, Tatarca bilen arkadaslar duzeltebilir)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-1286321339186635934?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/1286321339186635934/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=1286321339186635934' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1286321339186635934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1286321339186635934'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2007/03/tatara-trek.html' title='Tatarça-Törekçä'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fE0EePCZGQY/RgHtx4_EpBI/AAAAAAAAAXw/scG7dI1ZGtQ/s72-c/tatar_demo.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-9104533244087238148</id><published>2007-02-23T12:51:00.000+02:00</published><updated>2007-02-23T13:18:58.142+02:00</updated><title type='text'>Zemberek Web Servisi ve JAX-WS</title><content type='html'>&lt;p class="western" style="margin-bottom: 0in;"&gt;  Zemberek erişim sınıfındaki metodlar arasında yer alan&lt;br /&gt;&lt;b&gt;List&amp;lt;String[]&amp;gt; kelimeAyristir (String kelime)&lt;/b&gt; imzalı metodu Web servisi olarak açmaya çalışırken başıma gelenler: &lt;/p&gt; &lt;ul&gt;  &lt;li&gt;  &lt;p class="western" style="margin-top: 0.19in; margin-bottom: 0in;"&gt;  Öncelikle JAX-WS arayüzlerle çalışamıyor illa sınıf bekliyor. Web servisinde List yerine ArrayList kullanmak zorunda kaldım. &lt;/p&gt;  &lt;/li&gt;  &lt;li&gt;  &lt;p class="western" style="margin-bottom: 0in;"&gt;  Daha önceden erişim metodu &amp;lt;&lt;b&gt;List&amp;lt;List&amp;lt;String&amp;gt;&amp;gt;&lt;/b&gt;  tanımlı iken ve ben bunu &lt;b&gt;ArryList&amp;lt;ArrayList&amp;lt;String&amp;gt;&amp;gt;&lt;/b&gt;  şeklinde döndürmeye çalışırken dıştaki listeyi WSDL ve XSD lerde List e eşlemesine rağmen içteki listeyi (&lt;b&gt;ArrayList&amp;lt;String&amp;gt;&lt;/b&gt;) elemansız bir sınıf tanımına eşliyordu. &lt;/p&gt;  &lt;/li&gt;  &lt;li&gt;  &lt;p class="western" style="margin-bottom: 0in;"&gt;  Bunun üzerine Ahmet metodu ilk bahsettiğim haline getirdi ve ben de &lt;b&gt;ArrayList&amp;lt;String[]&amp;gt;&lt;/b&gt; döndürmeye çalıştım. Sonuç yine hüsran oldu. &lt;a href="http://jax-ws-sources.dev.java.net/issues/show_bug.cgi?id=42"&gt;http://jax-ws-sources.dev.java.net/issues/show_bug.cgi?id=42&lt;/a&gt; adresindeki hata ile karşılaştım ve bunu hata raporu olarak bildirdim. &lt;/p&gt;  &lt;/li&gt;  &lt;li&gt;  &lt;p class="western" style="margin-bottom: 0.19in;"&gt;  Hep hatalardan bahsettim. Şimdide çözüme gelelim. Şu an için metod String matrisi (&lt;b&gt;String[][]&lt;/b&gt;) döndürüyor. Bu kapsamda matrislerin daha önceden hiç ihtiyacım olmadığı için farkedemediğim bir özelliğini öğrendim. Matrisin her satırı farklı sayıda eleman içerebiliyormuş. &lt;b&gt;String matris[][] = new String[satirsay][];&lt;/b&gt; şeklinde ilklendiğinde matrisin her satırına farklı uzunlukta diziler atanabiliyor. Eh öğrenme hiçbir zaman bitmiyor işte :P. &lt;/p&gt;  &lt;/li&gt; &lt;/ul&gt; &lt;p class="western" style="margin-bottom: 0in;"&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-9104533244087238148?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/9104533244087238148/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=9104533244087238148' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/9104533244087238148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/9104533244087238148'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2007/02/zemberek-web-servisi-ve-jax-ws.html' title='Zemberek Web Servisi ve JAX-WS'/><author><name>Serkan Kaba</name><uri>http://www.blogger.com/profile/03745950208384224604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-qZsDnXs-CXw/TcIyRG1DYaI/AAAAAAAAAF8/8_dLE-9rW1o/s220/dsc_2773.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-3573837254761962558</id><published>2007-02-11T12:18:00.000+02:00</published><updated>2007-02-11T13:00:16.703+02:00</updated><title type='text'>Zemberek nasıl çalışır? 1.Sözlük ve Kök ağacı</title><content type='html'>Zemberek bir kelimenin Türkçe olup olmadığına nasıl karar veriyor? Bu basit sorunun cevabı "verilen bir kelimeyi Türkçe kök ve eklerine ayırabilirseniz Türkçedir, ayıramıyorsanız değildir". Kısacası bir kelimenin Türkçe olup olmamasını anlamak için morfolojik analiz yapabilmelisiniz. Türkçe yazım denetimi yapabilmek için önceleri en sık kullanılan kelimelerin bir dosyaya konulup gelen kelimelerin o dosyadan kontrol edilmesi gibi ilk bakışta mantıklı görünen ama biraz inceleyince pratik olmadığı anlaşılan yöntemler de düşünülmüştü. Bu tür yöntemlerin yetersiz olan %98-99 doğrulukla çalışması için bile milyonlarca kelimeyi içermesi gerekir.&lt;br /&gt;&lt;br /&gt;Zemberek çok basit bir sistemle verilen bir kelimeyi morfolojik olarak inceler. Önce verilen kelimenin kökü olabilecek adayları belirler, sonra da olabilecek ekleri uygun sırayla bu kök'e eklemeye çalışır. Eğer bu işlem sırasında girişteki kelimenin aynısını elde edebilmişse, o zaman uygun kök ve ekleri de bulmuş demektir ve kelime Türkçedir, eğer kök adaylarının hiçbirinden sonuç elde edilememişse o zaman kelime Türkçe değildir. bu işlemin ilk adımı olan kök adaylarının bulunması işlemini inceleyelim. Kök adaylarının bulunabilmesi için öncelikle elimizde Türkçe'deki tüm kök kelimelerinin bulunması gerekiyor. Zemberek Türkiye Türkçesi içi yaklaşık 30.000 kök içeren bir kılavuzu da beraberinde taşır, bu kılavuzda her kök tipine ve özel durumlarına göre etiketlenmiş şekilde bulunur. Diğer Türk dilleri için yapılan gerçeklemeler de benzeri bir kök sözlüğünü taşımalıdırlar. Burada bahsi geçen özel durumlar sondaki sert ünsüz harfin yumuşaması (sağlık -&gt; sağlığa) veya bazı durumlarda sondan bir önceki sesli harfin düşmesi (burun -&gt; burnu) gibi halleri içerir. Kökler için kullanılan etiketler de dile göre değişiklik gösterebilir. Aşağıda Azeri Türkçesi için yazılmış kök sözlüğünün küçük bir bölümü görülmektedir.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;su AD&lt;br /&gt;sağlıq AD YUM&lt;br /&gt;al EY&lt;br /&gt;gel EY&lt;br /&gt;tuz AD&lt;br /&gt;istiot AD&lt;br /&gt;et AD&lt;br /&gt;balıg AD&lt;br /&gt;bir RA&lt;br /&gt;iki RA&lt;br /&gt;dörd RA&lt;br /&gt;dünen ZAMAN&lt;br /&gt;sabah ZAMAN&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Verilen bir kelimenin kök adaylarının bulunması için zemberek bu kökleri özel bir ağaca yerleştirir. bu özel ağaç sayesinde adayların belirlenmesi son derece hızlı şekilde yapılabilmektedir. Bu ağaçta kökler içeriklerine göre yerleşirler, örneğin aşağıdaki örnekte "baz" kökü sırasıyla B- A -Z ile etiketlenmiş düğümlerin en sonuncusuna bağlanmış şekilde durur. Burada dikkati çeken bir nokta da uzun köklerin gereksiz fazladan düğüm oluşturmayacak şekilde ağaca bağlanması ve bellekten tasarruf edilmesidir. yani "Balerin" kökü B-A-L-E düğümlerinden sonra gelen R düğümüne bağlanmıştır.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jiekG5XBOyk/Rc727KV94UI/AAAAAAAAAEs/2ytqMiQAyJ4/s1600-h/agac.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_jiekG5XBOyk/Rc727KV94UI/AAAAAAAAAEs/2ytqMiQAyJ4/s320/agac.png" alt="" id="BLOGGER_PHOTO_ID_5030229330068627778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Kök ağacı kök düğümleri ve bu düğümlerin bağlantılarından oluşur. Kitap gibi bir ek geldiği zaman yumuşama olasılığı olan köklerin değişimiş halleri de kök ağacına eklenir. Ancak bu değişmiş haller de orijinal kökü işaret ederler.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_jiekG5XBOyk/Rc7yWqV94PI/AAAAAAAAAD4/S5w_kOvpVr8/s1600-h/kokdugumu.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_jiekG5XBOyk/Rc7yWqV94PI/AAAAAAAAAD4/S5w_kOvpVr8/s320/kokdugumu.png" alt="" id="BLOGGER_PHOTO_ID_5030224304956891378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Kök ağacının oluşturulması işlemi oldukça ince bazı uç durumları göz önüne almayı gerektirir.  ağacın daha oluşturulurken bellek tasarrufu ve performans için yukarıda anlatılan kuralara göre davranması için aşağıdaki 7-8 durum için farklı önlemler alınması gerekmiştir.  Ağaç oluşum kodları ile ilgili problemli noktalara işaret eden &lt;a href="http://code.google.com/p/nzemberek/"&gt;NZemberek&lt;/a&gt; geliştiricisi Tankut Tekeli'ye de buradan teşekkür etmek isterim.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_jiekG5XBOyk/Rc70_aV94SI/AAAAAAAAAEc/_KN_44pa6IU/s1600-h/agac%282%29.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_jiekG5XBOyk/Rc70_aV94SI/AAAAAAAAAEc/_KN_44pa6IU/s320/agac%282%29.png" alt="" id="BLOGGER_PHOTO_ID_5030227204059816226" border="0" /&gt;&lt;/a&gt;Bu yazıda kısaca kök sözlüğü ve kök ağacının yapısı ve oluşturulmasından bahsettim, daha sonraki yazılarda köklerin nasıl seçildiği, çözümleme işlemi gibi adımların iç yapıları hakkında biraz bilgi vermeye çalışacağım.&lt;br /&gt;&lt;br /&gt;Daha fazla bilgi için genel olarak Zemberek ve işleyişi ile ilgili 8 sayfalık &lt;a href="http://zemberek.googlecode.com/files/zemberek_makale.pdf"&gt;bir makaleyi &lt;/a&gt;okuyabilirsiniz.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-3573837254761962558?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/3573837254761962558/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=3573837254761962558' title='14 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/3573837254761962558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/3573837254761962558'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2007/02/zemberek-nasl-alr-1szlk-ve-kk-aac.html' title='Zemberek nasıl çalışır? 1.Sözlük ve Kök ağacı'/><author><name>M.D.A</name><uri>http://www.blogger.com/profile/17275949971136439559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_jiekG5XBOyk/Rc727KV94UI/AAAAAAAAAEs/2ytqMiQAyJ4/s72-c/agac.png' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-8328992412414866335</id><published>2007-01-13T23:28:00.000+02:00</published><updated>2007-01-13T23:35:47.889+02:00</updated><title type='text'>Dbus performansı</title><content type='html'>Bir önceki yazıda zemberek server'in Dbus üzerinden çalıştığı zaman performansının çok kötü olduğunu belirtmiştim. Serkan'ın yaptığı son güncelleme ile yeni Dbus kütüphanesini kullanmaya başladık ve performans ciddi şekilde arttı. Yaptığım küçük testte artık DBus arayüzü soket arayüzü ile hemen hemen aynı performansı gösteriyor. Pardus ve Zemberek server için DBus'a yeşil ışık yandı demektir. Evdeki makinemdeki sonuçlara göre, iki arayüzün saniyede işledikleri mesaj sayısı şöyle:&lt;br /&gt;&lt;br /&gt;DBus :  2600 - 2800 mesaj/saniye&lt;br /&gt;Soket: 3000 - 3300 mesaj/saniye&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-8328992412414866335?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/8328992412414866335/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=8328992412414866335' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/8328992412414866335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/8328992412414866335'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2007/01/dbus-performans.html' title='Dbus performansı'/><author><name>M.D.A</name><uri>http://www.blogger.com/profile/17275949971136439559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-7123008403314722958</id><published>2006-12-29T16:07:00.000+02:00</published><updated>2006-12-29T16:17:11.356+02:00</updated><title type='text'>Zemberek server TCP-IP ve Dbus performansları</title><content type='html'>Pardus'ta ön tanımlı olarak gelen ve işletim sistemi çapında yazım denetimi servisi sunan Zemberek server ile ilgili olarak Serkan'ın yaptığı Dbus arayüzü çalışmasından sonra ben de eski netty kütüphanesinden Mina 1.1 e geçip kodu iyice temizledim, aceleyle yazılmış gereksiz bir sürü döküntü vardı, iyi oldu yani. Test ederken acaba dbus arayüzü ile TCP-IP soketleri üzerinden çalışan eski arayüzün performansları ne kadar farklı diye küçük bir deneme yaptım. kelimelerin doğrudan denetlenmesi ile soket üzerinden veya dbus gibi bir protokolle gönderilerek denetlenmesi arasında çok performans farkı olacağını biliyordum faka sonuçlar yine de şaşırtıcı geldi. Sadece denetleme işlemi için yaptığım denemeye göre denetleme performansı:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Zemberek kütüphanesi : 70-80 bin kelime/saniye&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Zemberek server TCP-IP : 2700 kelime/s&lt;/li&gt;&lt;li&gt;Zemberek server Dbus : 410 kelime/s&lt;/li&gt;&lt;/ul&gt;Bu rakamlara göre küçük metinlerde dbus arayüzü kullanılabilir gibi görünürken bir kaç bin kelimelik metinlerde performansın bir sorun haline gelmesine neden olabileceğini gösteriyor. DBus arayüzünün yavaşlığın tam nedenini bilemiyorum, aradaki JNI geçişinde bir sorun olabilir veya atladığım başka bir şey var. Pardus için şimdilik soket arayüzünün kullanımı herhalde daha uygun olacakmış gibi görünüyor. Rakamları vaktim olunca daha detaylı olarak vermeye çalışacağım.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-7123008403314722958?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/7123008403314722958/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=7123008403314722958' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7123008403314722958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7123008403314722958'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/12/zemberek-server-tcp-ip-ve-dbus.html' title='Zemberek server TCP-IP ve Dbus performansları'/><author><name>M.D.A</name><uri>http://www.blogger.com/profile/17275949971136439559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-1114042471644025058</id><published>2006-12-23T18:03:00.000+02:00</published><updated>2006-12-25T16:17:49.698+02:00</updated><title type='text'>Zemberek server DBus arayüzü ve enchant</title><content type='html'>Zemberek server DBus arayüzünü svn den indirip derleme enchant ile kullanma üzerine bir belge&lt;br /&gt;&lt;a href="http://ebuild.linux-sevenler.org/zemberek-dbus.pdf"&gt;http://ebuild.linux-sevenler.org/zemberek-dbus.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-1114042471644025058?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/1114042471644025058/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=1114042471644025058' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1114042471644025058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1114042471644025058'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/12/zemberek-server-dbus-arayz-ve-enchant_23.html' title='Zemberek server DBus arayüzü ve enchant'/><author><name>Serkan Kaba</name><uri>http://www.blogger.com/profile/03745950208384224604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-qZsDnXs-CXw/TcIyRG1DYaI/AAAAAAAAAF8/8_dLE-9rW1o/s220/dsc_2773.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-7302796082222521969</id><published>2006-12-17T22:00:00.000+02:00</published><updated>2006-12-17T22:05:53.507+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nzemberek'/><category scheme='http://www.blogger.com/atom/ns#' term='zemberek'/><title type='text'>NZemberek Sürüm 0.1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_gXu65JO3qD0/RYWi7s6BR3I/AAAAAAAAAAM/h83fA8EYe3E/s1600-h/zembereklogo.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_gXu65JO3qD0/RYWi7s6BR3I/AAAAAAAAAAM/h83fA8EYe3E/s320/zembereklogo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5009589307070039922" /&gt;&lt;/a&gt;17 Kasım 2006'da Mehmet'e gönderdiğim bir e-posta ile başlayan çalışmamızın ilk ürününü bugün ortaya çıkardık. Zemberek projesinin .Net portu olan NZemberek'in 0.1 sürümü bugün itibariyle yayınlandı. 17 Kasım'dan sonra kodların .Net (C#) karşılıklarını oluşturduk. Bu iş, bazı araçları ya da otomatikleştirilmiş komutları kullanarak ne kadar hızla yapılsa da birçok zorlukla karşılaşılabiliyor. Zemberek ekibinin de desteğiyle şu anda Zemberek2 projesinin işlevlerini neredeyse tamamıyla yerine getiren bir sürüm mevcut. Mehmet ve Ahmet'e çok teşekkür ediyoruz. Onlar, tek amacımızın bu projeyi .Net platformuna taşımak olmadığını, bilgi ve deneyimimiz ölçüsünde her iki kanatta da elden gelen katkıyı yapmak istediğimizi biliyorlar.&lt;br /&gt;NZemberek için bundan sonraki hedefimiz bir Office Add-in'i sayesinde Office Proofing Tools dışında da sözcük denetimini yapabilmek. Gelişmeleri yine Zemberek ekibinin bizimle paylaştığı bu blogdan sizlerle paylaşmaya devam edeceğiz.&lt;br /&gt;&lt;a href="http://code.google.com/p/nzemberek/"&gt;&lt;/a&gt;&lt;br /&gt;Proje sayfası: http://code.google.com/p/nzemberek/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-7302796082222521969?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/7302796082222521969/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=7302796082222521969' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7302796082222521969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7302796082222521969'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/12/nzemberek-srm-01.html' title='NZemberek Sürüm 0.1'/><author><name>spinodal</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_gXu65JO3qD0/RYWi7s6BR3I/AAAAAAAAAAM/h83fA8EYe3E/s72-c/zembereklogo.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-1669491306356770866</id><published>2006-12-17T05:34:00.000+02:00</published><updated>2006-12-17T06:33:06.354+02:00</updated><title type='text'>Java6 performans -2</title><content type='html'>Mehmet'in testleri uzerine ben de merak edip benzer testler gerceklestirdim. Buna gore 72747 kelimelik bir roman uzerinde denetleme, cozumleme ve heceleme testlerini 3 kere ardi ardina yapip islem hizlarini kaydettim. sonuclar kelime-islem/saniye cinsindendir. Buna gore:&lt;br /&gt;&lt;br /&gt;&lt;table style="width: 415px; height: 266px;" border="1" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center; font-weight: bold;" width="25%"&gt;&lt;span style="font-weight: bold;"&gt;Islem&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold;" width="25%"&gt;Java-5 (u7)&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold;" width="25%"&gt;Java-6&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold;" width="25%"&gt;Fark&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center; font-weight: bold;" width="25%"&gt;denetleme (cepli)&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" width="25%"&gt;81380&lt;br /&gt;99768&lt;br /&gt;99845&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" width="25%"&gt;101762&lt;br /&gt;119248&lt;br /&gt;121063&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" width="25%"&gt;%22&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center; font-weight: bold;" width="25%"&gt;denetleme (cepsiz)&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" width="25%"&gt;57559&lt;br /&gt;63789&lt;br /&gt;64134&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" width="25%"&gt;68256&lt;br /&gt;75772&lt;br /&gt;76727&lt;/td&gt;&lt;td style="text-align: center;" width="25%"&gt;%19&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center; font-weight: bold;" width="25%"&gt;cozumleme&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" width="25%"&gt;11306&lt;br /&gt;11550&lt;br /&gt;11530&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" width="25%"&gt;12668&lt;br /&gt;12760&lt;br /&gt;12926&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" width="25%"&gt;%11&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center; font-weight: bold;" width="25%"&gt;heceleme&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" width="25%"&gt;401815&lt;br /&gt;489596&lt;br /&gt;463607&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" width="25%"&gt;529517&lt;br /&gt;681665&lt;br /&gt;687487&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" width="25%"&gt;%40&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Notlar:&lt;br /&gt;- Java 5 update 8 ile birlikte bazi performans iyilestirmeleri Java 5 uzerinde yapilmisti, eger o surumu kullansam sonuclar biraz daha farkli olabilirdi.&lt;br /&gt;- Java 6 normal modda Hotspot iyilestirmesi yapiyor, yani ayni islemi cok miktarda tekrar ettikce kodu hizlandiriyor. Bu ozellik onceden sadece -server modunda gecerli idi.&lt;br /&gt;- Bu testler tam olarak "mikro benchmark" olmasa da her zaman sonuclari biraz suphe ile degerlerlendirmekte yarar var.&lt;br /&gt;&lt;br /&gt;Test ortami: Athlon 64 3000+ islemci, 512MB bellek (diger 512 MB sizlere omur..) Windows XP SP2. IDE: IntelliJ IDEA 6&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-1669491306356770866?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/1669491306356770866/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=1669491306356770866' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1669491306356770866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1669491306356770866'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/12/java6-performans-2.html' title='Java6 performans -2'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-2095096126790943001</id><published>2006-12-16T00:29:00.000+02:00</published><updated>2006-12-16T00:49:34.730+02:00</updated><title type='text'>Java 6</title><content type='html'>Java 6'nın çıkışının ardından hemen küçük bir deneme yaptım.&lt;br /&gt;Yaklaşık 700 bin kelimeden oluşan kitaplar için yapılan Denetleme  ve Çözümleme işlemlerinin Java 5 ve Java 6 için harcadıkları süre şöyle:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;               Java 5        Java6&lt;br /&gt;            ------------------------&lt;br /&gt;Denetleme 1    10.7s          8.7s&lt;br /&gt;Denetleme 2    10.5s          8.8s&lt;br /&gt;&lt;br /&gt;Çözümleme 1    45.1s          40.1s &lt;br /&gt;Çözümleme 2    45.5s          42.5s&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Görüldüğü gibi Herhangi bir müdahale olmadan sadece Java 5'ten Java 6 ya geçiş %10-15 daha iyi performans kazanmamızı sağlıyor. Kazanç, denetleme işleminde daha belirgin. &lt;br /&gt;&lt;br /&gt;Test Ortamı: Athlon 64 2200mhz, 1GB RAM ve tabi ki Pardus 2007 RC :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-2095096126790943001?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/2095096126790943001/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=2095096126790943001' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/2095096126790943001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/2095096126790943001'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/12/java-6.html' title='Java 6'/><author><name>M.D.A</name><uri>http://www.blogger.com/profile/17275949971136439559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-252521981281032180</id><published>2006-12-15T06:05:00.000+02:00</published><updated>2006-12-15T06:18:12.121+02:00</updated><title type='text'>Coklu kelime islemeye giris</title><content type='html'>Zemberek icinde cok kelimeli ifadelerin islenmesi konusunda yavastan calismaya basladim. Bu konu bizim icin cok onemli, ozellikle belirsizlik giderimi, ve diger  ileri dil isleme konularina girebilmemiz icin atilabilecek en onemli adimlardan birisi. Temelde yapmaya planladigimiz sey bir dizi kelimeden  (cumle diyelim) cok kelimeli ifadelerin tespiti ya da bu yapilarin uretimi. tam Cumle analizinden bir onceki asamada bu zaten sart gorunuyor. Cok kelimeli ifadelerin cok genis bir yelpazesi var, asagidaki orneklerdeki gibi:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Buna ragmen&lt;/li&gt;&lt;li&gt;         hanim hanimcik&lt;/li&gt;&lt;li&gt;         ipe sapa gelmez&lt;/li&gt;&lt;li&gt;         uzum uzume baka baka kararir&lt;/li&gt;&lt;li&gt;         olur mu olur&lt;/li&gt;&lt;li&gt;         kosa kosa, kosmaya kosmaya, &lt;/li&gt;&lt;li&gt;         yapsam mi yapmasam mi&lt;/li&gt;&lt;li&gt;         olup olmayacagini&lt;/li&gt;&lt;li&gt;         Dunya Saglik Orgutu, Chuck Norris&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Bu konuda cala kalem bir &lt;a href="http://docs.google.com/View?docid=ah8p92nkjzcw_6d5twwz"&gt;dokuman &lt;/a&gt;yazmaya basladim, ilgilenen inceleyebilir. Bu konuda kodlamaya girismeden sonradan cikabilecek puruzleri en aza indirmeye calismak iyi olacak gibi..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-252521981281032180?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/252521981281032180/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=252521981281032180' title='4 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/252521981281032180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/252521981281032180'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/12/coklu-kelime-islemeye-giris.html' title='Coklu kelime islemeye giris'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-5995293627171369010</id><published>2006-12-06T00:20:00.000+02:00</published><updated>2006-12-06T01:04:42.817+02:00</updated><title type='text'>F ve Q Problemli ikililer</title><content type='html'>Basitten başlamak için İlk testi on parmak yazarken en çok zaman kaybettiren tek parmakla arka arkaya basılması gereken ikili tuş kombinasyonlarının Türkçedeki toplam oranını hesaplamak için yaptım.&lt;br /&gt;&lt;br /&gt;Örneğin Q klavyede Türkçe'de en çok kullanılan hecelerden olan 'de' yi yazarken orta parmağın mecburen önce d ye sonra e ye arka arkaya basması gerekiyor, ama 'la' olsaydı sağ yüzük ve sol serçe parmakların seri şekilde ardarda basması ile daha yüksek bir hız elde edilecekti. Dolayısıyla parmakların sorumlu olduğu tuşların ikili kombinasyonları Eğer Türkçe'de çok kullanılıyorsa o yerleşim Türkçe bir metni yazarken daha zorlanacaktır. Daha sonra bu ikililerin uzak veya yakın olmaları, örneğin tuşlar ayrık olduğundan 'ce' nin yazılımı 'de' den daha zordur gibi kuralları da ekleyerek bu test hassaslaştırılabilir.&lt;br /&gt;&lt;br /&gt;ilk sonuçlar ve problemli kombinasyonlar şöyle:&lt;br /&gt;5.5 milyon kelimede kullanılan ikili sayısı: 783 (zaten maksimum alfabedeki harf sayısının karesi olabilir)&lt;br /&gt;Bu ikililerin sayısı : 21885913&lt;br /&gt;&lt;br /&gt;Q klavye, problemli kombinasyonlar ve kullanım oranları (sadece binde yarım'a kadar olanlar):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;de 262138 % 1,19775&lt;br /&gt;ol 180592 % 0,82515&lt;br /&gt;ed 138389 % 0,63232&lt;br /&gt;un 131612 % 0,60135&lt;br /&gt;kı 86487 % 0,39517&lt;br /&gt;iş 84469 % 0,38595&lt;br /&gt;nu 79645 % 0,36391&lt;br /&gt;ği 76787 % 0,35085&lt;br /&gt;ce 69903 % 0,31940&lt;br /&gt;ık 61939 % 0,28301&lt;br /&gt;uy 61611 % 0,28151&lt;br /&gt;za 57819 % 0,26418&lt;br /&gt;ec 57256 % 0,26161&lt;br /&gt;iğ 57126 % 0,26102&lt;br /&gt;mu 51323 % 0,23450&lt;br /&gt;az 50166 % 0,22922&lt;br /&gt;nm 47770 % 0,21827&lt;br /&gt;rt 47284 % 0,21605&lt;br /&gt;şi 42356 % 0,19353&lt;br /&gt;ço 41503 % 0,18963&lt;br /&gt;üş 38281 % 0,17491&lt;br /&gt;um 36500 % 0,16677&lt;br /&gt;yu 26899 % 0,12291&lt;br /&gt;şü 23064 % 0,10538&lt;br /&gt;çl 18534 % 0,08468&lt;br /&gt;vr 16613 % 0,07591&lt;br /&gt;kö 15911 % 0,07270&lt;br /&gt;yn 14333 % 0,06549&lt;br /&gt;tr 12849 % 0,05871&lt;br /&gt;rg 12463 % 0,05695&lt;br /&gt;üğ 11274 % 0,05151&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;F klavyedeki  problemli ikililer ve kullanım oranları:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;rd 208208 % 0,95133&lt;br /&gt;kt 92062 % 0,42065&lt;br /&gt;gö 86262 % 0,39414&lt;br /&gt;gi 81392 % 0,37189&lt;br /&gt;eğ 69136 % 0,31589&lt;br /&gt;ca 67735 % 0,30949&lt;br /&gt;st 65667 % 0,30004&lt;br /&gt;ve 61703 % 0,28193&lt;br /&gt;ev 60602 % 0,27690&lt;br /&gt;rk 53743 % 0,24556&lt;br /&gt;ac 53471 % 0,24432&lt;br /&gt;nm 47770 % 0,21827&lt;br /&gt;rt 47284 % 0,21605&lt;br /&gt;çı 44809 % 0,20474&lt;br /&gt;ça 43591 % 0,19917&lt;br /&gt;ço 41503 % 0,18963&lt;br /&gt;rs 38716 % 0,17690&lt;br /&gt;aç 29989 % 0,13702&lt;br /&gt;ks 23757 % 0,10855&lt;br /&gt;zd 20959 % 0,09576&lt;br /&gt;çü 16729 % 0,07644&lt;br /&gt;ğe 16186 % 0,07396&lt;br /&gt;oc 16081 % 0,07348&lt;br /&gt;cı 15710 % 0,07178&lt;br /&gt;üç 14374 % 0,06568&lt;br /&gt;kr 13271 % 0,06064&lt;br /&gt;üc 13223 % 0,06042&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Toplamda ise Q klavyedeki sorunlu ikililerin türkçedeki kullanım oranı : %9.3 F klavyeninki ise %6,6 çıktı.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Buradan çıkan ham sonuçlara göre &lt;span style="font-weight: bold;"&gt;F klavye Q'ya göre yaklaşık %25 daha az problemli karakter çifti kullanımına yol açıyor&lt;/span&gt;. Tabi F klavyede de 'rd' , 'kt', 'gö', 'gi', 'eğ' gibi sorunlu ikililer olması ve belki farklı bir yerleşimle bu oranın daha da iyileştirilebileceği düşüncesine yol açıyor.&lt;br /&gt;&lt;br /&gt;Bu ölçüm işi umduğumdan çok zaman aldı :) daha kapsamlı sonuçlar biraz gecikecek.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-5995293627171369010?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/5995293627171369010/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=5995293627171369010' title='4 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5995293627171369010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5995293627171369010'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/12/f-ve-q-problemli-ikililer.html' title='F ve Q Problemli ikililer'/><author><name>M.D.A</name><uri>http://www.blogger.com/profile/17275949971136439559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-2599045434190161653</id><published>2006-12-04T22:49:00.000+02:00</published><updated>2006-12-05T00:35:29.384+02:00</updated><title type='text'>F ve Q nun savaşı</title><content type='html'>Zemberek'le uğraşırken aklıma eğlenceli bir çalışma geldi. Türkiye'de gündemden hiç düşmeyen F ve Q klavye tartışması ile ilgili olarak yazılan onca şeyden sonra az da olsa ölçüme dayalı bir sonuç çıkarmak.&lt;br /&gt;&lt;br /&gt;Bu yazıda ezeli rakipleri ve maçın kurallarını kısaca açıklayacağım, bir sonraki yazıda da ilk sonuçları açıklayacağım. Bu sırada günlüğü izleyen arkadaşlardan yöntemle ilgili eleştirileri varsa belirtmelerini rica edeceğim, ona göre ölçümleri tekrarlayacağım.&lt;br /&gt;&lt;br /&gt;"QWERTY" olarak ta bilinen Q klavye &lt;a href="http://en.wikipedia.org/wiki/Christopher_Sholes" title="Christopher Sholes"&gt;Christopher Sholes&lt;/a&gt; tarafından geliştirilmiş, patentlenmiş ve Remington firmasına satılmış. Wikipedia'ya göreQ klavye ile ilgili olarak söylenen &lt;span style="font-weight: bold;"&gt;yazım hızını özellikle düşürmek için tasarlandığı&lt;/span&gt; hikayesi doğru. Q klavye ile ilgili detaylı bilgi için wikipedia'daki &lt;a href="http://en.wikipedia.org/wiki/QWERTY"&gt;oldukça detaylı yazıyı&lt;/a&gt; okumanızı tavsiye ederim. Türkçe Q klavye ise standart Q klavyenin sağ tarafına Türkçe harflerin yerleştirilmesinden oluşmuş. Q klavye yerleşimi ve Türkçe'de en çok kullanılan harflerin Q klavye üzerindeki dağılımı şu şekilde:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_jiekG5XBOyk/RXSQEt-_eSI/AAAAAAAAAAM/Hi58McwtgB4/s1600-h/qtustakimi.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_jiekG5XBOyk/RXSQEt-_eSI/AAAAAAAAAAM/Hi58McwtgB4/s320/qtustakimi.png" alt="" id="BLOGGER_PHOTO_ID_5004783496653142306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;F klavye ise 1950 li yıllarda geliştirilmiş ve 1955'te “Türk                  Standardları Enstitüsü” tarafından resmen kabul edilmiş ve sadece                  mekanik, elektrikli ve elektronik daktilolar için değil,                  bilgisayarlar için de “TS 2117 – UDK 681.6.065” kodu ve “İki                  Elle Kullanılan Alfa nümerik Klâvyelerin Temel Düzeni” başlığı                  ile tescil edilmiş. Q'nun tam tersine F klavyede X,Q ve W harfleri klavyenin sağ tarafına itilmiş durumda ve Türkçede en çok kullanılan harfler on parmak yazarken parmakların doğal yerleşim noktalarına yerleştirilmiş.&lt;br /&gt;&lt;br /&gt;İki klavye yerleşiminde Türkçe'de en çok kullanılan harflerin yerleşimi gerçekten de F klavyenin lehinde gibi görünüyor.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jiekG5XBOyk/RXSQkN-_eTI/AAAAAAAAAAU/Vh0POTE1uG0/s1600-h/ftustakimi.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_jiekG5XBOyk/RXSQkN-_eTI/AAAAAAAAAAU/Vh0POTE1uG0/s320/ftustakimi.png" alt="" id="BLOGGER_PHOTO_ID_5004784037819021618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Benim kendimce cevaplamaya çalışacağım sorularsa,&lt;br /&gt;- Gerçekten de sadece en çok kullanılan harfleri parmakların doğal duruş koordinatlarına uygun - yakın yerleştirmek bir yerleşimi diğerinden iyi yapar mı?&lt;br /&gt;- Türkçe için en iyi klavye yerleşimi F mi? F gerçekten de Q dan iyi mi? Daha iyisi yapılabilir mi?&lt;br /&gt;&lt;br /&gt;Yöntem:&lt;br /&gt;On parmak yazı yazarken her parmağın sorumlu olduğu tuşlar vardır, örneğin sol serçe parmak Q klavyede "1,2,q,a ve z" den F de ise "1,2,f,u ve j" den sorumlu oluyor. Önerdiğim ölçme yöntemi de buna dayanıyor ve oldukça basit: Bir metni yazan on parmak bilen kişiyi ve parmaklarını simüle etmek, tüm parmakları, sorumlu oldukları tuşları, hangi elde olduklarını, tanımlamak, tuşlara basarken gerekli kuralları işleterek yazıyı yazarken geçen süreyi hesaplamak,  olabildiğince çok Türkçe metni bu sanal parmaklarla yazdırıp toplam süreyi bulmaya çalışmak. Test ayrıca Türkçede en çok kullanılan ikili ve üçlü harf grupları ile tekrarlanacak. Aşağıda bütün bunları yaparken uyulacak kuralları sıralamaya çalıştım:&lt;br /&gt;&lt;br /&gt;Varsayımlar:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Büyük harf olmadığı varsayılacaktır.&lt;/li&gt;&lt;li&gt;Noktalama işaretleri hesaba katılmayacaktır.&lt;/li&gt;&lt;li&gt;10 Parmak yazım metodu dikkate alınacaktır.&lt;/li&gt;&lt;li&gt;Simülasyonlarda parmak hareketleri dikkate alınacaktır.&lt;/li&gt;&lt;li&gt;Parmakların o anda bulundukları yerin hemen altlarında bulunan harflere minimum zaman değeri verilecektir.&lt;/li&gt;&lt;li&gt;Sağ el parmaklarına daha düşük zaman değeri verilecektir (yazarın Sağlak olduğu varsayımı ile)&lt;/li&gt;&lt;li&gt;İşaret parmakları için daha az zaman değeri verilecektir. &lt;/li&gt;&lt;li&gt;Serçe parmağı için yüksek zaman değeri verilecektir.&lt;/li&gt;&lt;li&gt;Baş parmaklar hep sabit değerler alacaktır (sadece boşluk)&lt;/li&gt;&lt;li&gt;Parmakların sorumlu oldukları tuşlara erişim süreleri hesaplanırken çaprazlarında ve aşağıda kalan tuşlar için daha yüksek zaman değerleri verilecektir.&lt;/li&gt;&lt;li&gt;Arka arkaya yazılan harfler aynı parmak tarafından yapılıyorsa zaman değerleri doğrudan toplanacaktır veya ceza olarak süre arttırılacaktır&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Arka arkaya yazılan harfler aynı elin farklı parmaklarıyla veya farklı ellerin parmakları ile yapılıyorsa harcanacak toplam süre düşürülecektir.&lt;/li&gt;&lt;li&gt; Parmaklar belli bir süre işlev yapmamışsa otomatik olarak doğal konumlarına geri geliyor vasayılacaktır.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Şu anda hesaba katılmayan durumlar:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Akıl :) normalde kelime yazılırken parmaklar otomatik olarak ilerde (2-3 karakter) yazılacak olan tuşa doğru yönelecekti ve parmak hareket cezası azalacaktır&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Bir sonraki yazıda ilk sonuçları vereceğim, bu sırada kurallara eklemek veya çıkarmak istediğiniz bir şeyler varsa lütfen bildirmekten çekinmeyin. Bir de bu çalışmanın eğlence amaçlı olduğunu tekrar hatırlatayım :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-2599045434190161653?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/2599045434190161653/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=2599045434190161653' title='29 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/2599045434190161653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/2599045434190161653'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/12/f-ve-q-nun-sava.html' title='F ve Q nun savaşı'/><author><name>M.D.A</name><uri>http://www.blogger.com/profile/17275949971136439559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_jiekG5XBOyk/RXSQEt-_eSI/AAAAAAAAAAM/Hi58McwtgB4/s72-c/qtustakimi.png' height='72' width='72'/><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-2043824348876488588</id><published>2006-12-03T14:57:00.000+02:00</published><updated>2006-12-03T15:02:15.553+02:00</updated><title type='text'>Firefox2 ve Zemberek</title><content type='html'>&lt;a href="http://www.getfirefox.com"&gt;Firefox 2&lt;/a&gt; web tarayıcısı tüm giriş kutularında herhangi bir eklenti olmadan yazım denetimi desteği sunuyor. ancak myspell tabanlı olduğu için Türkçe yazım denetimi desteği yoktu. Bugün Linux Gezegeninde gördüğüm &lt;a href="http://cekirdek.pardus.org.tr/%7Efaik/images/zemberek-firefox2.png"&gt;ekran görüntüsüne&lt;/a&gt; göre Pardus kullanıcıları Firefox 2 kullanırken Türkçe yazım denetimi desteğine sahip olacaklar. Çalışmaları ve ortaya çıkan güzel ürün için &lt;a href="http://cekirdek.pardus.org.tr/%7Efaik/blog/"&gt;Faik Uygur'a&lt;/a&gt; teşekürü borç biliriz.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-2043824348876488588?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/2043824348876488588/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=2043824348876488588' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/2043824348876488588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/2043824348876488588'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/12/firefox2-ve-zemberek.html' title='Firefox2 ve Zemberek'/><author><name>M.D.A</name><uri>http://www.blogger.com/profile/17275949971136439559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-5168906820636200556</id><published>2006-12-01T15:52:00.000+02:00</published><updated>2006-12-01T16:00:44.612+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zemberek'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='jubler'/><title type='text'>Jubler uygulamasi Zemberek kullaniyor</title><content type='html'>Alt yazi isleme uygulamasi &lt;a href="http://www.panayotis.com/jubler/"&gt;Jubler&lt;/a&gt;'in son surumu (3.0) Turkce icin Zemberek destegi vermis. Bunu saglayan Serkan arkadasimiza katkisindan dolayi tesekkur ediyoruz.  Ayni arkadasimiz ayrica Gentoo icin Zemberek sunucusunun &lt;a href="http://forum.linux-sevenler.org/index.php?topic=6111.msg29208"&gt;paketlenmesi &lt;/a&gt;isini de gerceklestirmisti.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-5168906820636200556?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/5168906820636200556/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=5168906820636200556' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5168906820636200556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5168906820636200556'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/12/jubler-uygulamasi-zemberek-kullaniyor.html' title='Jubler uygulamasi Zemberek kullaniyor'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-7819051415236745191</id><published>2006-11-29T21:44:00.000+02:00</published><updated>2006-11-29T22:16:04.189+02:00</updated><title type='text'>Kelime istatistikleri</title><content type='html'>Biraz da kelime istatistiklerine göz atalım. Sonuçlar Yine aynı 5 milyon kelimelik test kümesi üzerinden alındı.&lt;br /&gt;Önce genel istatistikler:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Toplam kelime sayısı:&lt;/span&gt; 5160619&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Toplam isim sayısı:&lt;/span&gt; 2785055  Oran: %53,967 Ortalama Boy : 6,184&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Toplam sıfat sayısı:&lt;/span&gt; 269701  Oran: %5,226&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Toplam fiil sayısı:&lt;/span&gt; 1414014  Oran: %27,400 Ortalama Boy : 7,645&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Toplam Sayi sayısı:&lt;/span&gt; 232832  Oran: %4,512&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Toplam kok sayısı:&lt;/span&gt; 14531&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Toplam isim kök sayısı:&lt;/span&gt; 11755  Oran: %80,896&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Toplam sıfat kök sayısı:&lt;/span&gt; 570  Oran: %3,923&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Toplam fiil kök sayısı:&lt;/span&gt; 2068  Oran: %14,232&lt;br /&gt;&lt;br /&gt;Görüldüğü gibi 5 milyon Türkçe kelime için 14531 kök kullanılmış, Bu rakam kullanılan metinlerin çeşitliliği ve miktarı arttıkça daha da büyüyecektir, ancak Zemberek'in yaklaşık 22.000 kök, 6000 isim ve bir kaç bin özel isim köklerini tanıdığını hatırlatmakta fayda var.&lt;br /&gt;Dikkati çeken bir başka nokta da isimlerin uzunluğunun yaklaşık 6.1, fiillerin ise 7.6 olması. Eklemeli dillerde özellikle fiillerin eklerle büyüdüğü düşünülünce bu normal bir durum.&lt;br /&gt;&lt;br /&gt;Peki kök kelimelere kaç ek ulanıyor? işte oranlar:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;0 adet ek'e sahip kelime sayısı: 2263846 Oran: %43,868&lt;br /&gt;1 adet ek'e sahip kelime sayısı: 1441162 Oran: %27,926&lt;br /&gt;2 adet ek'e sahip kelime sayısı: 1014500 Oran: %19,658&lt;br /&gt;3 adet ek'e sahip kelime sayısı: 353383 Oran: %6,848&lt;br /&gt;4 adet ek'e sahip kelime sayısı: 62974 Oran: %1,220&lt;br /&gt;5 adet ek'e sahip kelime sayısı: 8965 Oran: %0,174&lt;br /&gt;6 adet ek'e sahip kelime sayısı: 1137 Oran: %0,022&lt;br /&gt;7 adet ek'e sahip kelime sayısı: 115 Oran: %0,002&lt;br /&gt;8 adet ek'e sahip kelime sayısı: 6 Oran: %0,000&lt;br /&gt;9 adet ek'e sahip kelime sayısı: 0 Oran: %0,000&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;En çok kullanılan ilk 20 kelime:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;1.  [ bir ]  Oran: % 3,348 Kapsama: % 3,348&lt;br /&gt;2.  [ ve ]   Oran: % 2,319 Kapsama: % 5,667&lt;br /&gt;3.  [ bu ]   Oran: % 1,353 Kapsama: % 7,019&lt;br /&gt;4.  [ de ]   Oran: % 0,794 Kapsama: % 7,813&lt;br /&gt;5.  [ da ]   Oran: % 0,757 Kapsama: % 8,570&lt;br /&gt;6.  [ için ] Oran: % 0,670 Kapsama: % 9,240&lt;br /&gt;7.  [ daha ] Oran: % 0,524 Kapsama: % 9,764&lt;br /&gt;8.  [ ama ]  Oran: % 0,520 Kapsama: % 10,284&lt;br /&gt;9.  [ o ]    Oran: % 0,515 Kapsama: % 10,799&lt;br /&gt;10. [ gibi ] Oran: % 0,496 Kapsama: % 11,295&lt;br /&gt;11. [ dedi ] Oran: % 0,480 Kapsama: % 11,774&lt;br /&gt;12. [ çok ]  Oran: % 0,474 Kapsama: % 12,248&lt;br /&gt;13. [ ne ]   Oran: % 0,457 Kapsama: % 12,705&lt;br /&gt;14. [ sonra ]Oran: % 0,440 Kapsama: % 13,145&lt;br /&gt;15. [ kadar ]Oran: % 0,399 Kapsama: % 13,544&lt;br /&gt;16. [ diye ] Oran: % 0,391 Kapsama: % 13,935&lt;br /&gt;17. [ her ]  Oran: % 0,353 Kapsama: % 14,288&lt;br /&gt;18. [ olan ] Oran: % 0,318 Kapsama: % 14,606&lt;br /&gt;19. [ ki ]   Oran: % 0,265 Kapsama: % 14,871&lt;br /&gt;20. [ olarak ]  Oran: % 0,259 Kapsama: % 15,130&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;En çok kullanılan ilk 20 kök ve türemiş hallerinin ortalama uzunluğu. Aslında Zemberek bu köklere eklenen eklerin de istatistiğini çıkarıyor ama şimdilik ortalığı fazla karıştırmayalım.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;1. [ bir ]   Oran : %3,403 Ortalama kelime uzunluğu : 3,044&lt;br /&gt;2. [ ol ]    Oran : %2,438 Ortalama kelime uzunluğu : 6,487&lt;br /&gt;3. [ ve ]    Oran : %2,319 Ortalama kelime uzunluğu : 2,000&lt;br /&gt;4. [ bu ]    Oran : %1,823 Ortalama kelime uzunluğu : 2,899&lt;br /&gt;5. [ de ]    Oran : %1,576 Ortalama kelime uzunluğu : 3,513&lt;br /&gt;6. [ et ]    Oran : %0,891 Ortalama kelime uzunluğu : 6,951&lt;br /&gt;7. [ için ]  Oran : %0,764 Ortalama kelime uzunluğu : 4,242&lt;br /&gt;8. [ da ]    Oran : %0,757 Ortalama kelime uzunluğu : 2,001&lt;br /&gt;9. [ ben ]   Oran : %0,658 Ortalama kelime uzunluğu : 4,019&lt;br /&gt;10. [ o ]    Oran : %0,587 Ortalama kelime uzunluğu : 1,166&lt;br /&gt;11. [ kendi ] Oran : %0,575 Ortalama kelime uzunluğu : 7,398&lt;br /&gt;12. [ yap ]  Oran : %0,536 Ortalama kelime uzunluğu : 8,268&lt;br /&gt;13. [ gibi ] Oran : %0,536 Ortalama kelime uzunluğu : 4,242&lt;br /&gt;14. [ daha ] Oran : %0,528 Ortalama kelime uzunluğu : 4,013&lt;br /&gt;15. [ gel ]  Oran : %0,523 Ortalama kelime uzunluğu : 6,969&lt;br /&gt;16. [ ama ]  Oran : %0,521 Ortalama kelime uzunluğu : 3,001&lt;br /&gt;17. [ ne ]   Oran : %0,504 Ortalama kelime uzunluğu : 2,293&lt;br /&gt;18. [ çok ]  Oran : %0,491 Ortalama kelime uzunluğu : 3,117&lt;br /&gt;19. [ şey ]  Oran : %0,481 Ortalama kelime uzunluğu : 4,154&lt;br /&gt;20. [ sonra] Oran : %0,478 Ortalama kelime uzunluğu : 5,217&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;En çok kullanılan kelime ikililerinin ilk yirmisi:&lt;br /&gt;&lt;br /&gt;1. bir-şey (6921)&lt;br /&gt;2. ya-da (5599)&lt;br /&gt;3. bir-şekilde (3578)&lt;br /&gt;4. büyük-bir (3451)&lt;br /&gt;5. başka-bir (3205)&lt;br /&gt;6. ne-kadar (2885)&lt;br /&gt;7. diye-sordu (2828)&lt;br /&gt;8. ve-bu (2598)&lt;br /&gt;9. o-kadar (2367)&lt;br /&gt;10. böyle-bir (2265)&lt;br /&gt;11. belki-de (2238)&lt;br /&gt;12. ben-de (2134)&lt;br /&gt;13. o-zaman (2019)&lt;br /&gt;14. bir-süre (2009)&lt;br /&gt;15. ve-bir (1913)&lt;br /&gt;16. bu-kadar (1900)&lt;br /&gt;17. bir-an (1886)&lt;br /&gt;18. değil-mi (1861)&lt;br /&gt;19. hem-de (1833)&lt;br /&gt;20. hiçbir-şey (1790)&lt;br /&gt;21. her-zaman (1772)&lt;br /&gt;22. o-da (1757)&lt;br /&gt;23. ama-bu (1667)&lt;br /&gt;24. gibi-bir (1659)&lt;br /&gt;25. daha-da (1603)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-7819051415236745191?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/7819051415236745191/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=7819051415236745191' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7819051415236745191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/7819051415236745191'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/11/kelime-istatistikleri.html' title='Kelime istatistikleri'/><author><name>M.D.A</name><uri>http://www.blogger.com/profile/17275949971136439559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-5757682971002992546</id><published>2006-11-29T16:03:00.000+02:00</published><updated>2006-12-01T19:08:27.214+02:00</updated><title type='text'>NZemberek</title><content type='html'>Mert Derman (spinodal)  ve Tankut Tekeli (bioLogic) adli arkadaslar Zemberek projesinin C# hali uzerinde calismaya baslamis. Ilgilenenler &lt;a href="http://code.google.com/p/nzemberek/"&gt;NZemberek &lt;/a&gt;adli projeyi takip edebilir. Henuz kod tamamlanmamis olsa da hizla ilerlediklerini soyleyebilirim (C#  dil olarak Java'ya ne kadar benzer tahmin edersiniz.).  Sagolsun arkadaslar kod tasima islemi sirasinda bir de Zemberek hatasini duzeltmis. Gonul isterdi ki Zemberege'de katilim Java yonunden olsun ama ne yapalim. .Net uzerinde dogrudan calisacak bir haline ihtiyac varsa neden olmasin. Muhtemelen tasima kutuphanelerinin genel bas agrisi olan senkronizasyon sorunu Zemberek farkli alanlara dogru kaymaya basladiginda yasanacaktir. Umarim ustesinden gelmeyi basarirlar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-5757682971002992546?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/5757682971002992546/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=5757682971002992546' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5757682971002992546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5757682971002992546'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/11/nzemberek.html' title='NZemberek'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-5304673177804639633</id><published>2006-11-29T06:10:00.000+02:00</published><updated>2006-11-30T06:40:19.467+02:00</updated><title type='text'>Yolun basi</title><content type='html'>Az once Turkce NLP konusundaki yazilmis bazi makalelere goz gezdirdim ( Ornegin Kemal Oflazer'in &lt;a href="http://people.sabanciuniv.edu/oflazer/pubs.html"&gt;yayinlari&lt;/a&gt;'nin bir kismi ). NLP konusunda ozellikle 2000 sonrasinda Turkiye'de gercekten cok miktarda calisma yapilmis. Bunlardan asil ilgimi ceken ise TOY adindaki calisma. Bu calismayi kismen okuyunca Zemberegin aslinda acik kod konusunda ilk ve tek oldugu konusunda yanildigimizi dusunmeye basladim. Cunku Bogazici Univeritesinde yapilan calismalarin cogu temel morfolojik analiz icin Ozlem Cetinoglu'nun 2001 yilindaki "&lt;a href="http://www.cmpe.boun.edu.tr/graduate/ms_theses.php?thesisid=29"&gt;A Prolog Based Natural Language Processing Infrastructure for Turkish&lt;/a&gt;" calismasinda uretilen Prolog tabanli bir yapisal cozumleyici ve ayni calismadaki cesitli yardimci araclari kullaniyor. Anladigim kadari ile acik kodlu bir calisma imis ancak bir turlu kodu bulamadim. Bu calisma sadece yapisal cozumleme degil cumle cozumlemesi ve insan-makine iletisimi mekanizmasini da iceriyor. Yapisal cozumleyici bolumunu kismen okudum, zemberek ile benzerlikleri var. Ornegin kok bulmaya dayali soldan-saga cozumleme yontemini kullaniyorlar, yalniz ek cozumlemesi icin Oflazerin sonlu durum makinesinin benzeri ama daha gelismis bir mekanizma kullaniyorlar. Yalniz lexicon giris yapilarini biraz karmasik buldum. Ornein bir koku ifade etmek icin su sekilde bir girdi yapilmis:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;tr_morph_entry('FiilKök',[[u,y,u],[type(verb),sem(D^Loc^A&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gent^sleep_uyu(EvNo,Agent,Loc,[B,E,D,U],Tense,AuxTense,ST2))]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;],_,_,_,u,u,ok).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Elbetteki burada sade kok bilgisinden baska verilerde var ama buyuk bir kumenin olusturulmasi iyi bir arayuz olmadan bu sekilde zor olurdu saniyorum.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;"&lt;/span&gt;&lt;a href="http://acl.ldc.upenn.edu/coling2004/MAIN/pdf/203res-712.pdf"&gt;A Natural Language Processing Infrastructure for Turkish&lt;/a&gt;" adli makalede bu yapinin nasil gelistigi ve bunun uzerine nasil uygulamalarin gelistirildigi anlatiliyor. Ornegin TOYAgent calismasi ile sisteme Prolog bilgisi olmadan girdi yapilmasi saglanmis, Turkceden SQL ve Java kod uretimi gibi pek cok calismalari yapilmis. Henuz kodu bulamasam da "acik kod" sozu gectiginden bir yerlerde olmasi gerktigini saniyorum. Umuyorum ki lisansi herkesin ve her tur uygulamaya uygun bir seydir ki -belki- biz de faydalanabiliriz.&lt;br /&gt;&lt;br /&gt;Sonucta onceden bildigim ve su an iyice anladigim su ki, Zemeberek ile daha yolun en basindayiz, ve hedefimiz cok daha oteleri olmali. Ayni hedefte olan ama cok daha otedeki TOY calismasinin da otesine de gecebilmeliyiz.  Bu nedenle yeni calismalarin ilk ayagi olarak cok kelimeli kavramlarin sisteme eklenmesi konusunda ilk ciddi calismalara baslamak istiyorum. Bu konuda Oflazer, Cetinoglu ve Say'in in "&lt;a href="http://acl.ldc.upenn.edu/acl2004/mwe/pdf/oflazer.pdf"&gt;Integrating Morphology with Multi-word Expression Processing in Turkish&lt;/a&gt;" calismasini okudum,bana yeni fikirler verdi, uzerinde zaten uzunca suredir dusunuyordum cok iyi bir referans oldu. Umuyorum o calismayi da goz onune alarak bir baslangic yapabiliriz.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-5304673177804639633?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/5304673177804639633/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=5304673177804639633' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5304673177804639633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5304673177804639633'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/11/yolun-basi.html' title='Yolun basi'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-1846705324418470269</id><published>2006-11-28T13:02:00.000+02:00</published><updated>2006-11-28T13:08:32.460+02:00</updated><title type='text'>Heceler..</title><content type='html'>Hece istatistiklerine bakınca farkettim, "&lt;span style="font-weight: bold;"&gt;Bir kama ya da bir lale dedi&lt;/span&gt;" cümlesiyle Türkçedeki tüm hece kullanımlarının yaklaşık %15 'ini kapsamış oluyorsunuz.&lt;br /&gt;Bir de yorumları anonim kullanıcılara da açtım.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-1846705324418470269?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/1846705324418470269/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=1846705324418470269' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1846705324418470269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/1846705324418470269'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/11/heceler.html' title='Heceler..'/><author><name>M.D.A</name><uri>http://www.blogger.com/profile/17275949971136439559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-5325609351576103960</id><published>2006-11-27T23:33:00.000+02:00</published><updated>2006-11-28T00:09:53.070+02:00</updated><title type='text'>İstatistikler</title><content type='html'>Ahmet, Bir önceki yazısında hecelerden bahsetmiş ve  istatistikleri ile ilgili bir şeyler yazabileceğimi söylemişti, ben de önceden  5 milyon kelimelik bir yığın kitap ve doküman üzerinde zemberek ile yapmış olduğum analizin sonuçlarından enteresan bir şeyleri buraya yazayım. Saat tutmadım ama tüm dokümanların işlenip istatistiklerinin çıkarılması zannediyorum 10 dakika kadar sürdü. Hecelerden başka pek çok şeyin istatistik bilgisi hesaplanıyor ama konumuz hece olduğu için sadece o konudakilerden bahsedeceğim. Kullanılan metinler genelde roman ağırlıklı.&lt;br /&gt;&lt;br /&gt;İlk 50 hece, oranları ve bu hecelerin tüm metnin yüzde kaçını kapladığı bilgisi. Buradaki İlginç nokta, &lt;span style="font-weight: bold;"&gt;Türkçedeki en çok kullanılan ilk 50 hecenin tüm hecelerin yaklaşık %50 sini kapsaması&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;0. la [350564] %2,534 Toplam: %2,534&lt;br /&gt;1. le [309620] %2,238 Toplam: %4,772&lt;br /&gt;2. de [288659] %2,087 Toplam: %6,859&lt;br /&gt;3. di [233585] %1,688 Toplam: %8,547&lt;br /&gt;4. da [230216] %1,664 Toplam: %10,211&lt;br /&gt;5. ya [211464] %1,529 Toplam: %11,740&lt;br /&gt;6. bir [203331] %1,470 Toplam: %13,210&lt;br /&gt;7. ma [200948] %1,453 Toplam: %14,662&lt;br /&gt;8. a [193558] %1,399 Toplam: %16,062&lt;br /&gt;9. ka [180994] %1,308 Toplam: %17,370&lt;br /&gt;10. o [171394] %1,239 Toplam: %18,609&lt;br /&gt;11. i [163024] %1,178 Toplam: %19,787&lt;br /&gt;12. ra [160277] %1,159 Toplam: %20,946&lt;br /&gt;13. ri [159065] %1,150 Toplam: %22,096&lt;br /&gt;14. ne [154220] %1,115 Toplam: %23,211&lt;br /&gt;15. ve [154006] %1,113 Toplam: %24,324&lt;br /&gt;16. du [136266] %0,985 Toplam: %25,309&lt;br /&gt;17. na [128896] %0,932 Toplam: %26,241&lt;br /&gt;18. dı [128194] %0,927 Toplam: %27,167&lt;br /&gt;19. bi [126996] %0,918 Toplam: %28,085&lt;br /&gt;20. rı [124232] %0,898 Toplam: %28,983&lt;br /&gt;21. me [123721] %0,894 Toplam: %29,878&lt;br /&gt;22. bu [121706] %0,880 Toplam: %30,757&lt;br /&gt;23. ni [119735] %0,866 Toplam: %31,623&lt;br /&gt;24. ye [117984] %0,853 Toplam: %32,476&lt;br /&gt;25. ki [116153] %0,840 Toplam: %33,315&lt;br /&gt;26. li [114727] %0,829 Toplam: %34,145&lt;br /&gt;27. yor [111021] %0,803 Toplam: %34,947&lt;br /&gt;28. nı [105024] %0,759 Toplam: %35,706&lt;br /&gt;29. ta [104862] %0,758 Toplam: %36,464&lt;br /&gt;30. si [104400] %0,755 Toplam: %37,219&lt;br /&gt;31. lar [102580] %0,742 Toplam: %37,961&lt;br /&gt;32. sa [101628] %0,735 Toplam: %38,695&lt;br /&gt;33. re [101579] %0,734 Toplam: %39,429&lt;br /&gt;34. ti [100476] %0,726 Toplam: %40,156&lt;br /&gt;35. ha [94019] %0,680 Toplam: %40,835&lt;br /&gt;36. ge [92298] %0,667 Toplam: %41,503&lt;br /&gt;37. sı [90844] %0,657 Toplam: %42,159&lt;br /&gt;38. ba [90729] %0,656 Toplam: %42,815&lt;br /&gt;39. tı [88498] %0,640 Toplam: %43,455&lt;br /&gt;40. te [85577] %0,619 Toplam: %44,073&lt;br /&gt;41. e [84259] %0,609 Toplam: %44,682&lt;br /&gt;42. ce [84198] %0,609 Toplam: %45,291&lt;br /&gt;43. lı [82636] %0,597 Toplam: %45,888&lt;br /&gt;44. ler [81439] %0,589 Toplam: %46,477&lt;br /&gt;45. den [75776] %0,548 Toplam: %47,025&lt;br /&gt;46. dan [71416] %0,516 Toplam: %47,541&lt;br /&gt;47. nu [69442] %0,502 Toplam: %48,043&lt;br /&gt;48. ol [69318] %0,501 Toplam: %48,544&lt;br /&gt;49. se [66924] %0,484 Toplam: %49,028&lt;br /&gt;50. ğı [64872] %0,469 Toplam: %49,497&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Peki toplam kaç tür hece var? Ahmet'in son değişiklikleri bu istatistiklere yansımamıştı, ama rakamlar çok değişmeyecektir. &lt;span style="font-weight: bold;"&gt;5 milyon kelimede toplam  2629 çeşit hece kullanılmış. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Son 15-20 hece de aşağıda, hepsi de birer kez kullanılmış.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;2604. hınk&lt;br /&gt;2605. tov&lt;br /&gt;2606. feş&lt;br /&gt;2607. dink&lt;br /&gt;2608. föl&lt;br /&gt;2609. bad&lt;br /&gt;2610. söl&lt;br /&gt;2611. volt&lt;br /&gt;2612. sent&lt;br /&gt;2613. most&lt;br /&gt;2614. uk&lt;br /&gt;2615. büv&lt;br /&gt;2616. mirt&lt;br /&gt;2617. zöl&lt;br /&gt;2618. kunt&lt;br /&gt;2619. çoz&lt;br /&gt;2620. şüf&lt;br /&gt;2621. ask&lt;br /&gt;2622. cul&lt;br /&gt;2623. ğılt&lt;br /&gt;2624. şeş&lt;br /&gt;2625. ging&lt;br /&gt;2626. pum&lt;br /&gt;2627. nant&lt;br /&gt;2628. uş&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Hece ikilileri de birbirini seven heceleri anlamamızı sağlıyor. En çok kullanılan hece ikilileri:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;1. la-rı (83637)&lt;br /&gt;2. le-ri (80086)&lt;br /&gt;3. yor-du (48868)&lt;br /&gt;4. i-çin (47840)&lt;br /&gt;5. la-rın (35239)&lt;br /&gt;6. o-la (29695)&lt;br /&gt;7. da-ha (28857)&lt;br /&gt;8. ken-di (28777)&lt;br /&gt;9. a-ma (28459)&lt;br /&gt;10. ol-du (28360)&lt;br /&gt;11. du-ğu (27988)&lt;br /&gt;12. le-rin (27699)&lt;br /&gt;13. de-di (27698)&lt;br /&gt;14. gi-bi (26124)&lt;br /&gt;15. son-ra (24660)&lt;br /&gt;16. di-ye (24467)&lt;br /&gt;17. ma-sı (23738)&lt;br /&gt;18. ma-ya (23494)&lt;br /&gt;19. ri-ni (21702)&lt;br /&gt;20. a-ra (21637)&lt;br /&gt;21. di-ği (20969)&lt;br /&gt;22. ka-dar (20887)&lt;br /&gt;23. ri-ne (19632)&lt;br /&gt;24. dı-ğı (19525)&lt;br /&gt;25. ol-ma (19234)&lt;br /&gt;26. rı-nı (18957)&lt;br /&gt;27. la-dı (18792)&lt;br /&gt;28. bi-le (18653)&lt;br /&gt;29. o-lan (18142)&lt;br /&gt;30. i-le (17812)&lt;br /&gt;31. da-ki (17732)&lt;br /&gt;32. me-si (17462)&lt;br /&gt;33. za-man (16875)&lt;br /&gt;34. me-ye (16708)&lt;br /&gt;35. sın-da (16088)&lt;br /&gt;36. ğı-nı (16027)&lt;br /&gt;37. la-rak (15468)&lt;br /&gt;38. de-ğil (15464)&lt;br /&gt;39. yo-rum (15442)&lt;br /&gt;40. ği-ni (15418)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Peki hece olup olmadığına bakmaksızın ikili harf gruplarının oranı nedir? &lt;span style="font-weight: bold;"&gt;Buradaki enteresan nokta ise 5 milyon kelimede sadece 783 adet ikili harf grubunun olması&lt;/span&gt;. İlk yirmisi ve son beşi aşağıdaki gibi:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;1. [ la ]&lt;br /&gt;2. [ ar ]&lt;br /&gt;3. [ er ]&lt;br /&gt;4. [ le ]&lt;br /&gt;5. [ bi ]&lt;br /&gt;6. [ in ]&lt;br /&gt;7. [ nd ]&lt;br /&gt;8. [ an ]&lt;br /&gt;9. [ ka ]&lt;br /&gt;10. [ de ]&lt;br /&gt;11. [ ın ]&lt;br /&gt;12. [ ma ]&lt;br /&gt;13. [ ya ]&lt;br /&gt;14. [ il ]&lt;br /&gt;15. [ al ]&lt;br /&gt;16. [ da ]&lt;br /&gt;17. [ ra ]&lt;br /&gt;18. [ rd ]&lt;br /&gt;19. [ en ]&lt;br /&gt;20. [ di ]&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;779. [ zt ]&lt;br /&gt;780. [ çâ ]&lt;br /&gt;781. [ îp ]&lt;br /&gt;782. [ dh ]&lt;br /&gt;783. [ ıo ]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Şimdilik bu kadar. Bir sonraki mesajda kelime istatistikleri ile ilgili ilginç noktalardan bahsedeceğim.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-5325609351576103960?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/5325609351576103960/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=5325609351576103960' title='3 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5325609351576103960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5325609351576103960'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/11/istatistikler.html' title='İstatistikler'/><author><name>M.D.A</name><uri>http://www.blogger.com/profile/17275949971136439559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720576558802393126.post-5135272256374816499</id><published>2006-11-24T21:51:00.000+02:00</published><updated>2006-11-25T04:57:59.682+02:00</updated><title type='text'>Heceleme konusunda</title><content type='html'>Gecenlerde Zemberek oncesi donemlerde epeyce mesajlastigimiz bir arkadasin (Muzmin Anonim) heceleme konusundaki bir &lt;a href="http://muzminanonim.blogspot.com/2006/11/hec-e-h-ece-trk-e.html"&gt;yazisini &lt;/a&gt;okudum. Ilginc bir yazi, uzunca da bir yorum yazdim orada. bi konudaki goruslerim su sekilde:&lt;br /&gt;&lt;br /&gt;Bazi kelimelerin Turkce icin nasil hecelenecegi halen acikliga kavusmus degil. "tren, stetoskop, strateji" gibi. Konusma aninda ister istemez "tren" kelimesini duraklama ile cikariyoruz "t(ı)-ren" seklinde. bu nedenle uygulama acisindan belki bu kelimelerin ozel sekilde tı'-ren seklinde farkli bir ı harfi turetip hecelenmesine olumsuz bakmiyorum. Zemberek su anda kismen bu tur heceleme islemini yapiyor.&lt;br /&gt;&lt;br /&gt;Heceleme ne ise yarar? Yazida da bahsi gectigi gibi pratikte hecelemenin cesitli kullanim amaclari olabilir. Oncelikle herkesin bildigi kelimelerin satir sonunda bolunmesi. Artik cok kullanilmasa da bu ozellik tum kelime islemci uygulamalarinda mevcut. Onemli bir kullanim yeri ses-yazi, yazi-ses donusumunde kullanilabilir . Tabi en iyisi bu calisma icin  vurgu bilgisi ile birlikte kullanimi. Bu konudaki bir calisma sabanci universitesinde yapildi saniyorum. &lt;a href="http://www.hlst.sabanciuniv.edu/TL/"&gt;Suradaki &lt;/a&gt;sayfadan "sessel gosterim" secenegini deneyebilirsiniz. Gerci sayfa pek iyi calismiyor ve bilmiyorum neden "bmp" resim kullanilmis dugmeler icin.. Baska bir kullanimi bilgisayarla yapilan kelime denetleme islemlerinde kelimenin dentlenirligini onden test etmek icin bir performans araci olarak kullanimi. Bu konuda bastaki baglantidaki yazar ile cesitli nedenlerden hem fikir degilim.&lt;br /&gt;&lt;br /&gt;Zemberek icerisinde bizim de basit bir heceleme mekanizmamiz var. algoritma basit, geri dogru tarama yapip sondaki olasi heceyi bulmaya calisiyor. Takildigimiz iki nokta vardi, bazi dort harfli (yazar gibi sesli=a, sessiz=z dersek) "zazz" turu heceler Turkcede ucuncu sessiz sadece belli harflerde ise ortaya cikiyor ('l', 'r', 'y', 'p', 'n' ve 's' harfleri). Ornek kelimeler: "kalp, fark, ebeveyn, kask, cenk, rapt" . Biz de sadece bu sesizler icin zazz turu olusumlari kaubl ettik. Belki bu kurali genellestirmek daha dogru olurdu ('yazk' gibi bir heceyi de kullanimi olmasada kabul etmek pekala mumkun.). zzaz turu olusumlari ise simdilik kabul etmiyoruz, fakat nedense "zza" turu hecelere izin vermisiz. Bir ara kodu inceleyip zzaz turu hecelere de izin verebiliriz.&lt;br /&gt;&lt;br /&gt;Turkiye Turkcesi icin heceleyici kodunu &lt;a href="http://zemberek.googlecode.com/svn/trunk/zemberek2/src/tr/net/zemberek/tr/yapi/TurkceHeceBulucu.java"&gt;suradan &lt;/a&gt;inceleyebilir, ayrica &lt;a href="http://pisi.uludag.org.tr:8080/zemberek_web/"&gt;Zemberek demo &lt;/a&gt;sitesinden test edebilirsiniz. Sonraki bir yazida belki Mehmet hece ile ilgili istatistikleri yazabilir.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720576558802393126-5135272256374816499?l=zembereknlp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zembereknlp.blogspot.com/feeds/5135272256374816499/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1720576558802393126&amp;postID=5135272256374816499' title='18 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5135272256374816499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720576558802393126/posts/default/5135272256374816499'/><link rel='alternate' type='text/html' href='http://zembereknlp.blogspot.com/2006/11/heceleme-konusunda.html' title='Heceleme konusunda'/><author><name>A.A.A</name><uri>http://www.blogger.com/profile/07225476124525448066</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>18</thr:total></entry></feed>
