Re: [Zemberek-pardus] Zemberek sunuc u ve kpspell; ilk denemeler başarılı.
Ahmet A. Akin
ahmetaa at gmail.com
13 Nis 2005 Çar 20:52:33 EEST
ok. bu konuyu koda goz atmadan yazmistim. normalde dili gecmis zaman
ekine kaynastirma eki farkli ek kombinasyonlarinda da gecerli imis. O
nedenle ek olusum kodunda dili gecmis zaman ekini de bu durumlar
arasina ekledim.
Harf son = kelime.getOlusan().sonHarf();
if (kelime.getSonEk() == Ekler.SORU_YALIN ||
kelime.getSonEk() == Ekler.FIIL_ISTEK ||
kelime.getSonEk() == Ekler.FIIL_DILI_GECMIS_ZAMAN)
icerik.ekle(TurkceAlfabe.HARF_y);
if (son.isSert())
icerik.ekle(TurkceAlfabe.HARF_t);
else
icerik.ekle(TurkceAlfabe.HARF_d);
icerik.ekle(kelime.sesliBelirleIU());
ek icerigi olusum tekniginde oynamalar yapmayi dusunuyorum, Ama su an
icin en azindan hata giderilmis oldu. Ayrica dili gecmis zaman ekine
"tekrarlamali" ozelligini de verdim, yani sistem hatali dongu
durumlarini reddecek.. aradiydiydiydim.. gibi..
Not: kelime.getSonEk() == Ekler.SORU_YALIN seklindeki bir esitlik
denetimi Java'ya aykiri gibi gorunuyor, (equals kullanilir normalde)
ama Ekler sistemde static final olarak tanimlandigindan ve bu durumda
referans kiyaslamasi yapmak mumkun oldugundan bu sekil bir kullanim
var.
daha hos bir kulanim su sekilde olabilirdi,
constructor icinde:
...
Set ozelEkler = new HashSet();
ozelEkler.add(Ekler.SORU_YALIN);
ozelEkler.add(Ekler.Ekler.FIIL_ISTEK);
ozelEkler.add(Ekler.FIIL_DILI_GECMIS_ZAMAN);
...
daha sonra olusum icinde
...
if (ozelEkler.contains(kelime.getSonEk())
icerik.ekle(TurkceAlfabe.HARF_y);
...
demek yeterli olurdu. daha zarif ve kod disina cikarilabilir bir cozum.
On 4/13/05, Ahmet A. Akin <ahmetaa at gmail.com> wrote:
> pardon , son kisimda verdigim ornek "sastim" degil, mesela "aradim"
> seklinde olacakti...
>
> On 4/13/05, Ahmet A. Akin <ahmetaa at gmail.com> wrote:
> > Evet, hatali pozitifler ozellikle oneri sisteminde rahatca
> > gorulebiliyor. "sastidim" aslinda basit ek diziliminden biraz daha
> > ciddi bir hata..
> >
> > cozumleme sunu veriyor:
> >
> > "{Icerik: şaştıdım Kok: şaş tip:FI} Ekler:FIIL_YALIN +
> > FIIL_DILI_GECMIS_ZAMAN + FIIL_DILI_GECMIS_ZAMAN + FIIL_SAHIS_BEN"
> >
> > iki gecmis zaman ekinin arka arkaya eklenmesi durumunda ikinci ek icin
> > kaynastirma harfi gerekiyor. "sastiydim" seklinde. Bunu ek olusum
> > kuralini degistirerek saglayabiliriz. Bununla birlikte, belki di'li
> > gecmis zamanin tekrarlanmasina izin vermeyip "hikaye eki" olusturmak
> > daha mantikli olabilir. Bu sekilde di'li gecmis zamanin hikayesi
> > olusmus olurdu. Cunku normal durumda dili gecmis zaman ekinden once
> > kaynastirma harfi konmaz. "sastim" gibi. not aldim, inceleyecegim.
> >
> > saygilar
> >
>
Zemberek-pardus
hakkında daha fazla bilgi için