예제 #1
0
        /**
         * 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;
        }
예제 #2
0
        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);
	    }