Teşekkürler

71 views
Skip to first unread message

DIGY

unread,
Nov 21, 2007, 2:58:58 PM11/21/07
to nzembe...@googlegroups.com

Katkısı olan herkese teşekkürler. Çok başarılı bir çalışma olmuş.

NZemberek’i kullanarak Lucene.Net için yazdığım TurkishAnalyzer ile oldukça güzel sonuçlar elde ettim.

 

Deployment esnasında dosya çöplüğünü(tabiiki sadece NZemberek ile ilgili değil)  biraz azaltabilmek için  bir önerim olacak.

 

a)      \kaynaklar\tr\bilgi altındaki tüm dosyalar “Embedded Resource” olarak compile edilebilir. Böylece DLL ile birlikte dağıtılması gereken bir directory azaltılabilir.

(Elbette bu dosyalara erişim gereken kodlarda birtakım değişiklikler gerekecek fakat gerekirse bir patch hazırlayabilirim)

b)      Reference edilen assembly’ler (Iesi.Collections.dll veya log4net.dll gibi) ve Nzemberek tanımlanacak bir “Post Build Action” ile ve Microsoft’un “ILmerge” ünü kullanarak

tek bir DLL(Nzemberek) altında toplanabilir.

 

Böylece deployment esnasında sadece Nzemberek.Dll’in kullanılması yeterli olabilecektir(bu durumda Nzemberek’in büyüklüğü ~2.1M oluyor).

 

DIGY

Tankut Tekeli

unread,
Nov 22, 2007, 5:04:29 AM11/22/07
to nzembe...@googlegroups.com
Teşekkür bizden.
NZemberek'in enazından birilerinin işine yaramış olduğunu duymak çok
sevindirici.
Tabi kredinin büyük çoğunluğunu sevgili Akın kardeşlere ayırmak lazım.

Embedded resource konusuna gelince,
Mevcut paketin yanında dediğiniz gibi compact bir distro da yapılması
iyi olur hakkaten.
Ancak tamamen bu yöne dönmeden customized dictionary konusu ve
sözlüklerin executabledan bağımsız dağıtılabilmesi ihtimalini de iyi
düşünmek lazım.
Yaklaşık bir yıl önce portingi yapmıştık ve sanırsam marttan bu yana
Zemberekte olan düzeltme ve iyileştirmeleri yansıtmaya vakit
bulamadık.
Bu aralar bi zaman ayırmayı düşünüyoruz ama herhangi birşey için söz veremem.
Geliştirmeye katılmak katkı vermek istersen çok seviniriz.
İstersen hemen seni de developers grubuna ekleyelim.

Tankut
Not : Bu arada sürekli "biz" diye konuşuyorum, biz (Mert ve Tankut)
iki arkadaşız.

DIGY

unread,
Nov 22, 2007, 12:59:35 PM11/22/07
to nzembe...@googlegroups.com
Ilk once gruba dahil olma konusunda;
Development grubuna üye olamadan oraya eMail gönderilemiyor bu sebeple gruba
üye olabildiğimi
düşünüyorum ama birşeyleri atlamış olabilirim. Ayrıca (software development
konusunda fazla mütevazi
olmamama rağmen) linguistics konusunda hiç çalışmadım ve türkçe grammer
konusunda sıfırım. Dolayısıyla,
bu şartlar altında yardımcı olabileceğim birşeyler olabilirse elimden geleni
yapmaya hazırım.

Diğer konuya gelirsek(customized dictionary);
Ben alttaki gibi bir class yazarak ve

araclar.turkce\TurkishTokenStream.cs
araclar.turkce\YaziIsleyici.cs
bilgi\KaynakYukleyici.cs
bilgi.araclar\IkiliKokOkuyucu.cs
yapi.ek\XmlEkOkuyucu.cs

gibi kodlarda file açan yerlerde "GetResource" u invoke ederek gerekli
değişikliği sağlayabildim.
Ancak "GetResource" değiştirilerek ve Internal-Resource'tan önce File.Exists
ile dosyanın varlığını kontrol edip
ve varsa file systemdeki dosyayı tercih ederek programın customized dict.
kullanması da sağlanabilir.


Son olarak, diğer DLL'ler zaten çok küçük olduğu için direk olarak
Nzemberek.dll'in içine gömülmesinin bir sıkıntı
yaratacağını zannetmiyorum.

"Siz" in çalışmalarının devamını bekliyorum.

DIGY

Not: Google ve benzerlerinin indeksleyebildiği yazışmalarda(aynı eMail
adresini olur olmadık bir sürü yere de verdiğim için)
gerçek adımı kullanmıyorum. Özürler.


<pre>
using System;
using System.Collections.Generic;
using System.Text;

namespace net.zemberek
{
internal class Digy
{

//new FileStream(FileName, bla bla ...
internal static System.IO.Stream GetResource(string FileName)
{
string resourceName = "net.zemberek." + FileName.Replace("\\",
".").Replace("/", ".");
try
{
System.IO.Stream s =
System.Reflection.Assembly.GetAssembly(typeof(Digy)).GetManifestResourceStre
am(resourceName);
if (s == null)
{
System.Windows.Forms.MessageBox.Show("GetResource:" +
FileName);
}
return s;
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show("GetResource:" +
ex.Message + "\n" + FileName);
}
return null;
}

//File.Exists
internal static bool Exists(string FileName)
{
string resourceName = "net.zemberek." + FileName.Replace("\\",
".").Replace("/", ".");
string[]
names=System.Reflection.Assembly.GetAssembly(typeof(Digy)).GetManifestResour
ceNames();
foreach (string name in names)
{
if (name == resourceName)
{
return true;
}
}
return false;
}
}
}
</pre>

DIGY

unread,
Nov 22, 2007, 1:58:49 PM11/22/07
to nzembe...@googlegroups.com
Unuttuğum diğer bir konu;

Ben aslında şu an Lucene.Net'e güzel bir TurkishAnalyzer'ın eklenmesi ile
ilgiliyim.
Kendim için kullandığım(compact) sürümün, olduğu haliyle public domain'e
sunulmasını
-her zaman benim desteğimim olamayabileceği ve
-kod geliştiricilerinin isim hakkını ihlal etmemek
açısından uygun bulmuyorum.

Ayrıca "external dependency" gereken bir kodun direk olarak Lucene.Net içine
konulması da
(Tüm dünya bunu kullanacak değil :-) )mümkün değil. Bu kodun bir
"contribution" olarak
ve bir utility gibi ayrıca sunulması gerekir.

Ancak şu haliyle zaten iki source(Lucene.Net ve TurkishAnalyzer) ile
uğraşmak zorunda olan
insanlara birde Nzemberek'i indir şunları şunları yap daha sonra şunları
kopyala demek biraz
fazla olabilir.

Ben, bu amaçla "compact" bir sürüm ile ilgileniyorum.

DIGY.

-----Original Message-----
From: nzembe...@googlegroups.com [mailto:nzembe...@googlegroups.com]
On Behalf Of Tankut Tekeli
Sent: Thursday, November 22, 2007 12:04 PM
To: nzembe...@googlegroups.com
Subject: Re: Teşekkürler

Reply all
Reply to author
Forward
0 new messages