[cs-lisp] Re: SimMetrics: string benzerlik metrikleri kütüphanesi

2006-08-20 Başlik Emre Sevinc
 VY == Volkan YAZICI [EMAIL PROTECTED] writes:

VY On Aug 19 11:22, Emre Sevinc wrote:
  VY == Volkan YAZICI [EMAIL PROTECTED] writes:
 
VY On Aug 19 10:13, Emre Sevinc wrote:
  Merak ettim acaba Common Lisp ya da Scheme icin SimMetrics
  tarzi bir islev kitapligi var midir?
 
VY Levenshtein (yada Soundex) algoritmalarının herhangi bir
VY programlama dilinde kütüphanesinin olmadığına şimdiye kadar
VY şahit olmadım.
  Dogrudur. Benim kast ettigim o degildi lakin. En bilinen bir
 iki algoritma disinda söz konusu Java kitapliginin icinde 30
 kadar metrik uygulamasi görünüyor. Bunlarin tek bir kitapliktan
 erisilebilir olmasi güzel olabilir diye düsündüm.

VY Demek istediğinizi şimdi anladım. Hrmm... Bu konu hakkında o
VY derece bir bilgim yok. Benim bildiğim zaten 1-2 tane
VY Levenshtein metriği var. 30 tane mi varmış? :D

Levenshtein belli bir metrigin, algoritmanin ismi. 30 kadar
var dedigim, farkli sekilde calisan ve degisik seyleri ölcen
algoritmalar ve tabii bunlarin da kendilerine özgü isimleri
mevcut.

Bu arada Levenshtein metriginin hesaplanmasi icin
Common Lisp uygulamasi

 http://en.wikipedia.org/wiki/Levenshtein_distance#Common_Lisp

Scheme uygulamasi:

 http://en.wikipedia.org/wiki/Levenshtein_distance#Scheme

Ama sayfadaki en kisa uygulama Haskell ile yapilmis:

 http://en.wikipedia.org/wiki/Levenshtein_distance#Haskell



 Bir de kök meselesi var (stemming) [1, 2], benim merak
 ettiğim acaba Zemberek'i (yani Zemberek'in kök bulma
 islevselliginden faydalanip) bunu Türkce tam metin arama
 islevini zenginlestirmek amaci ile kullanmis bir proje var
 midir? (Konu disina ciktim, cagrisim yaptigi icin not düsmek
 istedim).
 
 Yeri gelmisken sorayim, PostgreSQL tam metin arama ve
 indeksleme icin Ingilizce haricinde diller icin kök bulmadan
 faydalaniyor mu? Yukaridaki gibi bir seyi entegre etmek ne
 kadar kolay/zor olurdu (Java ile kodlandigi düsünüldügünde)?

VY PostgreSQL için TSearch2 adlı bir proje var. Burada, kendi
VY sağladığınız hazır lexeme kütüphanelerini kullanabileceğiniz
VY gibi stemming'i on-the-fly gerçekleştirebilecek bir yazılım
VY kullanabilirsiniz. Çok kabaca ifade edecek olursam,
VY Zemberek'in stemming() çağrısını PostgreSQL prosedürüne port
VY etmemiz yeterli olacaktır. Açıkcası böyle bir projenin altına
VY ben elimi seve seve koyabilirim.

Zemberek ortamlari bu aralar pek aktif degil [1]. Ancak gelistiricileri
ile iletisim kurulursa yardimci olabilirler diye düsünüyorum. OpenOffice.org
entegrasyonundan sonra PostgreSQL icinde de bir Türkce kök bulma
mekanizmasi olsa ve bu sayede PostgreSQL'in dogal dil / tam metin
arama yetenekleri gelisse gercekten güzel olurdu. Kodun illa ki 
Java'dan dönüstürülmesi mi gerekir? Mevcut hali ile koruyup bir
sekilde entegre etmek mümkün degil midir?

Böylece belki MS SQL Server'daki dogal dil isleme özellikleri
ve belki de fazlasi güclü ve acik kodlu bir veritabani icin
de Türkceye yönelik olarak gerceklesmis olurdu [2, 3, 4].


1- https://zemberek.dev.java.net/
2- 
http://www.simple-talk.com/sql/learn-sql-server/sql-server-full-text-search-language-features/
3- 
http://www.simple-talk.com/sql/learn-sql-server/sql-server-full-text-search-language-features,-part-2/
4- 
http://blogs.msdn.com/shajan/archive/2005/12/09/Extending_SQL_2005_Fulltext_Search.aspx

-- 
Emre Sevinc

eMBA Software Developer Actively engaged in:
http://emba.bilgi.edu.trhttp://ileriseviye.org
http://www.bilgi.edu.tr http://fazlamesai.net
Cognitive Science Student   http://cazci.com
http://www.cogsci.boun.edu.tr


___
cs-lisp mailing list
cs-lisp@cs.bilgi.edu.tr
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp


[cs-lisp] Re: SimMetrics: string benzerlik metrikleri kütüphanesi

2006-08-19 Başlik Emre Sevinc
 VY == Volkan YAZICI [EMAIL PROTECTED] writes:

VY On Aug 19 10:13, Emre Sevinc wrote:
 Merak ettim acaba Common Lisp ya da Scheme icin SimMetrics
 tarzi bir islev kitapligi var midir?

VY Levenshtein (yada Soundex) algoritmalarının herhangi bir
VY programlama dilinde kütüphanesinin olmadığına şimdiye kadar
VY şahit olmadım.

Dogrudur. Benim kast ettigim o degildi lakin. En bilinen bir iki
algoritma disinda söz konusu Java kitapliginin icinde 30 kadar
metrik uygulamasi görünüyor. Bunlarin tek bir kitapliktan erisilebilir
olmasi güzel olabilir diye düsündüm.


VY Kısa bir Google araması sonucu şöyle bir şey buldum:

VY [http://www.neilvandyke.org/levenshtein-scm/] This is a Scheme
VY implementation of the Levenshtein Distance algorithm, which is
VY an edit distance metric of string similarity. The Levenshtein
VY Distance is a function of two strings that represents a count
VY of single-character insertions, deletions, and substitions
VY that will change the first string to the second.

VY Özellikle veritabanındaki FTS (Full Text Search) zamazingoları
VY için lokum diye tabir edebileceğimiz bir özellik. Ama şahsi

Bir de kök meselesi var (stemming) [1, 2], benim merak ettiğim acaba 
Zemberek'i (yani Zemberek'in kök bulma islevselliginden faydalanip) bunu 
Türkce tam metin arama islevini zenginlestirmek amaci ile kullanmis bir 
proje var midir? (Konu disina ciktim, cagrisim yaptigi icin not düsmek 
istedim).

Yeri gelmisken sorayim, PostgreSQL tam metin arama ve indeksleme icin
Ingilizce haricinde diller icin kök bulmadan faydalaniyor mu? Yukaridaki
gibi bir seyi entegre etmek ne kadar kolay/zor olurdu (Java ile kodlandigi
düsünüldügünde)?

VY fikrim, bu tür fonksiyonların çok büyük veri kümeleri üzerine
VY uygulanmalarından dolayı, makine diline yakın programlama
VY dilleri ile geliştirilmelerinin daha doğru olduğu
VY yönünde. Tabii şöyle bir gerçek de var ki, benim C ile
VY geliştirdiğim Levenshtein algoritmasını herhangi bir Lisp
VY dialektiği ile daha hızlı çalışacak şekilde geliştiribilecek
VY bir programcı her daim mevcut olacaktır.

Common Lisp ile epey optimize kod üretilebiliyor diye biliyorum,
en basiti tür tanimlamalari, optimizasyon ayarlamalari, vs. SBCL
ve Franz Inc.'in Allegro Common Lisp'i ürüne özgü parametreler
de dahil edildiginde epey iyi is cikarabilmeli [3, 4, 5].

Diger yandan yani illa Lisp ile yazilmis olmasi sart degil,
bir foreing function interface (FFI) seklinde de olabilir.


1- http://en.wikipedia.org/wiki/Stemmer
2- http://en.wikipedia.org/wiki/Stemming_algorithm 
3- http://www.gigamonkeys.com/book/conclusion-whats-next.html
4- http://www.cliki.net/Performance%20Benchmarks2
5- http://www.lispworks.com/products/myths_and_legends.html

-- 
Emre Sevinc

eMBA Software Developer Actively engaged in:
http://emba.bilgi.edu.trhttp://ileriseviye.org
http://www.bilgi.edu.tr http://fazlamesai.net
Cognitive Science Student   http://cazci.com
http://www.cogsci.boun.edu.tr


___
cs-lisp mailing list
cs-lisp@cs.bilgi.edu.tr
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp