コード例 #1
1
 public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici)
 {
     if (this.onEkler.Contains(kelime.sonEk()))
         return ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, _uretimBilesenleri);
     else
         return null;
 }
コード例 #2
1
 public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici) {
     if (kelime.sonEk().ad().Equals(TurkceEkAdlari.FIIL_KOK)
          && kelime.kok().ozelDurumIceriyormu(TurkceKokOzelDurumTipi.GENIS_ZAMAN))
         return ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, uretimBilesenleri());
     else
         return null;
 }
コード例 #3
0
 public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici)
 {
     TurkceHarf sonSesli = kelime.icerik().sonSesli();
     if (sonSesli.charDeger() == 'u' || sonSesli.charDeger() == Alfabe.CHAR_uu)
         return ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, _uretimBilesenleri);
     else
         return null;
 }
コード例 #4
0
 public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici) {
     TurkceHarf son = kelime.sonHarf();
     if (son.sesliMi() || ((son.charDeger()=='r') || son.charDeger()==('l'))
             && kelime.icerik().sesliSayisi() > 1) {
         return T;
     }
     return null;
 }
コード例 #5
0
 public StandartCozumleyici(KokBulucu kokBulucu,
                            HarfDizisiKiyaslayici kiyaslayci,
                            Alfabe alfabe,
                            EkYonetici ekYonetici,
                            CozumlemeYardimcisi yardimci) {
     this.kokBulucu = kokBulucu;
     this.harfDizisiKiyaslayici = kiyaslayci;
     this.ekYonetici = ekYonetici;
     this.alfabe = alfabe;
     this.yardimci = yardimci;
 }
コード例 #6
0
 public override  HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici) {
     if (kiyaslayici == null) return null;
     // eki olustur.
     HarfDizisi ek = ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, uretimBilesenleri());
     TurkceHarf ekHarfi = sesliUretci.sesliBelirleIU(kelime.icerik());
     HarfDizisi olusum = new HarfDizisi("yor", alfabe);
     olusum.ekle(0, ekHarfi);
     int harfPozisyonu = kelime.boy() + ek.Length;
     if (kiyaslayici.aradanKiyasla(giris, olusum, harfPozisyonu))
         return ek;
     return null;
 }
コード例 #7
0
 public StandartCozumleyici(KokBulucu kokBulucu,
                            HarfDizisiKiyaslayici kiyaslayci,
                            Alfabe alfabe,
                            EkYonetici ekYonetici,
                            CozumlemeYardimcisi yardimci)
 {
     this.kokBulucu             = kokBulucu;
     this.harfDizisiKiyaslayici = kiyaslayci;
     this.ekYonetici            = ekYonetici;
     this.alfabe   = alfabe;
     this.yardimci = yardimci;
 }
コード例 #8
0
 public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici)
 {
     HarfDizisi ek = ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, _uretimBilesenleri);
     // XXXX gibi Turkce harf tasimayan stringler icin koruma.
     // TODO: Daha dogru bir yontem bulunmali.
     if (ek == null)
     {
         return null;
     }
     int harfPozisyonu = kelime.boy() + ek.Length;
     if (giris.harf(harfPozisyonu).sesliMi())
         return ek;
     return null;
 }
コード例 #9
0
 public HarfDizisi cozumlemeIcinUret(
     Kelime kelime,
     HarfDizisi giris,
     HarfDizisiKiyaslayici kiyaslayici)
 {
     foreach (EkOzelDurumu ozelDurum in ozelDurumlar)
     {
         HarfDizisi ozelDurumSonucu = ozelDurum.cozumlemeIcinUret(kelime, giris, kiyaslayici);
         if (ozelDurumSonucu != null)
         {
             return(ozelDurumSonucu);
         }
     }
     return(ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, uretimBilesenleri));
 }
コード例 #10
0
 public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici) {
     TurkceHarf son = kelime.sonHarf();
     if(son.sesliMi())
       return new HarfDizisi(0);
     HarfDizisi sonuc = new HarfDizisi();
     if (kelime.kok().ozelDurumIceriyormu(TurkceKokOzelDurumTipi.FIIL_ARA_SESLI_DUSMESI)) {
         //eger ara sesli dusmesi olmussa eklenecek seslinin dusen sesliye gore
         //belirlenmesi gerekir. yani, "kavurmak" koku ve "kavrulmuS" girisini dusunelim,
         //ara sesli dusmesi ozel durumu nedeniyle "u" harfi kokten duserek "kavr" haline
         //gelir. Ancak koke bu haliyle edilgenlik ekini eklemeye kalkarsak "kavrIlmIS"
         //seklinde yanlis bir kelime ortaya cikardi. Bu nedenle burada dusen eke gore hangi
         // harfin eklenecegi belirleniyor.
         HarfDizisi kok = new HarfDizisi(kelime.kok().icerik(), alfabe);
         TurkceHarf kokAsilSesli = kok.sonSesli();
         sonuc.ekle(sesliUretici.sesliBelirleIU(kokAsilSesli));
     } else
         sonuc.ekle(sesliUretici.sesliBelirleIU(kelime.icerik()));
     if (son.Equals(alfabe.harf('l')))
         sonuc.ekle(alfabe.harf('n'));
     else
         sonuc.ekle(alfabe.harf('l'));
     return sonuc;
 }
コード例 #11
0
        public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici)
        {
            HarfDizisi ek = ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, _uretimBilesenleri);

            // XXXX gibi Turkce harf tasimayan stringler icin koruma.
            // TODO: Daha dogru bir yontem bulunmali.
            if (ek == null)
            {
                return(null);
            }
            int harfPozisyonu = kelime.boy() + ek.Length;

            if (giris.harf(harfPozisyonu).sesliMi())
            {
                return(ek);
            }
            return(null);
        }
コード例 #12
0
        public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici)
        {
            TurkceHarf son = kelime.sonHarf();

            if (son.sesliMi())
            {
                return(new HarfDizisi(0));
            }
            HarfDizisi sonuc = new HarfDizisi();

            if (kelime.kok().ozelDurumIceriyormu(TurkceKokOzelDurumTipi.FIIL_ARA_SESLI_DUSMESI))
            {
                //eger ara sesli dusmesi olmussa eklenecek seslinin dusen sesliye gore
                //belirlenmesi gerekir. yani, "kavurmak" koku ve "kavrulmuS" girisini dusunelim,
                //ara sesli dusmesi ozel durumu nedeniyle "u" harfi kokten duserek "kavr" haline
                //gelir. Ancak koke bu haliyle edilgenlik ekini eklemeye kalkarsak "kavrIlmIS"
                //seklinde yanlis bir kelime ortaya cikardi. Bu nedenle burada dusen eke gore hangi
                // harfin eklenecegi belirleniyor.
                HarfDizisi kok          = new HarfDizisi(kelime.kok().icerik(), alfabe);
                TurkceHarf kokAsilSesli = kok.sonSesli();
                sonuc.ekle(sesliUretici.sesliBelirleIU(kokAsilSesli));
            }
            else
            {
                sonuc.ekle(sesliUretici.sesliBelirleIU(kelime.icerik()));
            }
            if (son.Equals(alfabe.harf('l')))
            {
                sonuc.ekle(alfabe.harf('n'));
            }
            else
            {
                sonuc.ekle(alfabe.harf('l'));
            }
            return(sonuc);
        }
コード例 #13
0
 public abstract HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici);
コード例 #14
0
        public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici)
        {
            TurkceHarf sonSesli = kelime.icerik().sonSesli();

            if (sonSesli.charDeger() == 'u' || sonSesli.charDeger() == Alfabe.CHAR_uu)
            {
                return(ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, _uretimBilesenleri));
            }
            else
            {
                return(null);
            }
        }
コード例 #15
0
 public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici) {
     if(kelime.icerik().sesliSayisi()<2)
       return ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, uretimBilesenleri());
     else
       return null;
 }
コード例 #16
0
 public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici)
 {
     if (kelime.gercekEkYok() && kelime.kok().ozelDurumIceriyormu(TurkceKokOzelDurumTipi.SU_OZEL_DURUMU))
     {
         return(ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, uretimBilesenleri()));
     }
     return(null);
 }
コード例 #17
0
        public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici)
        {
            if (kiyaslayici == null)
            {
                return(null);
            }
            // eki olustur.
            HarfDizisi ek      = ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, uretimBilesenleri());
            TurkceHarf ekHarfi = sesliUretci.sesliBelirleIU(kelime.icerik());
            HarfDizisi olusum  = new HarfDizisi("yor", alfabe);

            olusum.ekle(0, ekHarfi);
            int harfPozisyonu = kelime.boy() + ek.Length;

            if (kiyaslayici.aradanKiyasla(giris, olusum, harfPozisyonu))
            {
                return(ek);
            }
            return(null);
        }
コード例 #18
0
ファイル: Ek.cs プロジェクト: ibrahimatay/nzemberek
        public HarfDizisi cozumlemeIcinUret(
            Kelime kelime,
            HarfDizisi giris,
            HarfDizisiKiyaslayici kiyaslayici) {

        foreach (EkOzelDurumu ozelDurum in ozelDurumlar) {
            HarfDizisi ozelDurumSonucu = ozelDurum.cozumlemeIcinUret(kelime, giris, kiyaslayici);
            if (ozelDurumSonucu != null)
                return ozelDurumSonucu;
        }
        return ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, uretimBilesenleri);
    }
コード例 #19
0
 public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici)
 {
     if (kelime.icerik().sesliSayisi() < 2)
     {
         return(ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, uretimBilesenleri()));
     }
     else
     {
         return(null);
     }
 }
コード例 #20
0
 public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici)
 {
     if (this.onEkler.Contains(kelime.sonEk()))
     {
         return(ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, _uretimBilesenleri));
     }
     else
     {
         return(null);
     }
 }
コード例 #21
0
ファイル: SuOzelDurumu.cs プロジェクト: ibrahimatay/nzemberek
 public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici) {
     if(kelime.gercekEkYok() && kelime.kok().ozelDurumIceriyormu(TurkceKokOzelDurumTipi.SU_OZEL_DURUMU))
        return ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, uretimBilesenleri());
     return null;
 }
コード例 #22
0
        public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici)
        {
            TurkceHarf son = kelime.sonHarf();

            if (son.sesliMi() || ((son.charDeger() == 'r') || son.charDeger() == ('l')) &&
                kelime.icerik().sesliSayisi() > 1)
            {
                return(T);
            }
            return(null);
        }
コード例 #23
0
ファイル: EkOzelDurumu.cs プロジェクト: ibrahimatay/nzemberek
 public abstract HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici);
コード例 #24
0
 public override HarfDizisi cozumlemeIcinUret(Kelime kelime, HarfDizisi giris, HarfDizisiKiyaslayici kiyaslayici)
 {
     if (kelime.sonEk().ad().Equals(TurkceEkAdlari.FIIL_KOK) &&
         kelime.kok().ozelDurumIceriyormu(TurkceKokOzelDurumTipi.GENIS_ZAMAN))
     {
         return(ekUretici.cozumlemeIcinEkUret(kelime.icerik(), giris, uretimBilesenleri()));
     }
     else
     {
         return(null);
     }
 }