/** * Sozluk, daha dogrusu Kokleri tasiyan agac ve iliskili kok secicileri tasiyan nesneyi uretir * Proje gelistirime asamasinda, eger ikili kok-sozluk dosyasi (kokler_xx.bin) dosyasi mevcut * degilse once onu uretmeye calisir, daha sonra asil sozluk uretim islemini yapar. * Normal kosullarda dagitim jar icerisinde bu dosya yer alacagindan bu islem (bin dosya uretimi) atlanir. * * @return Sozluk */ public Sozluk kokler() { if (sozluk != null) { return sozluk; } if (!KaynakYukleyici.kaynakMevcutmu(kokDosyaAdi)) { logger.Error("Kök dosyası bulunamadı, sozluk uretilemiyor."); throw new ApplicationException("Kök dosyası bulunamadı."); /* logger.Info("binary kok dosyasi bulunamadi. proje icerisinden calisildigi varsayilarak \n" + "calisilan dizine goreceli olarak '" + kokDosyaAdi + "' dosyasi uretilmeye calisacak.\n" + "eger duz yazki kok bilgilerine erisim saglanamazsa sistem kok bilgisine uretemeycektir. "); try { ikiliKokDosyasiUret(); } catch (System.IO.IOException e) { logger.Fatal("kok bilgilerine erisim saglanamadigindan uygulama calismaya devam edemez. Hata : "+e.Message); Environment.Exit(-1); }*/ } kokOzelDurumlari(); logger.Info("Ikili okuyucu uretiliyor:"); try { KokOkuyucu okuyucu = new IkiliKokOkuyucu(kokDosyaAdi, ozelDurumBilgisi); logger.Info("Sozluk ve agac uretiliyor:" + dilAdi); okuyucu.Ac(); sozluk = new AgacSozluk(okuyucu, _alfabe, ozelDurumBilgisi); } catch (Exception e) { logger.Error("sozluk uretilemiyor. Hata : "+e.Message); throw new ApplicationException("sozluk uretilemiyor. Hata : "+e.Message); } return sozluk; }
public static void main(String[] args) { Type c = Type.GetType("net.zemberek.tr.yapi.TurkiyeTurkcesi"); DilBilgisi dilBilgisi = new TurkceDilBilgisi((DilAyarlari)Assembly.GetAssembly(Type.GetType("net.zemberek.tr.yapi")).CreateInstance("net.zemberek.tr.yapi.TurkiyeTurkcesi")); Alfabe alfabe = dilBilgisi.alfabe(); KokOkuyucu okuyucu = new IkiliKokOkuyucu("kaynaklar/tr/bilgi/binary-sozluk.bin", dilBilgisi.kokOzelDurumlari()); AgacSozluk sozluk = new AgacSozluk(okuyucu, alfabe, dilBilgisi.kokOzelDurumlari()); KokAgaciYuruyucu yuruyucu = new KokAgaciYuruyucu(sozluk, new HashedSet<Kok>()); yuruyucu.agaciTara(); logger.Info(yuruyucu); }