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

2006-08-20 Başlik Volkan YAZICI
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.

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

 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)?

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

 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.

Haklısınız Lisp kodlamaktan, Lisp kodlamaya fark var. Hadi dilden
kaynaklı bazı hız sınırları oluştu diyelim, o zaman da FFI devreye
sokulabilir.


İyi çalışmalar.

___
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-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