Logo Search packages:      
Sourcecode: zemberek version File versions  Download package

boolean net::zemberek::tr::islemler::TurkceCozumlemeYardimcisi::kokGirisDegismiVarsaUygula ( Kok  kok,
HarfDizisi  kokDizi,
HarfDizisi  girisDizi 
) [inline]

Asagidaki aciklamalar Turkiye Turkcesi icindir. Kisaltmalarin cozumlenmesi sirasinda karsilasilan bir sorun bazi durumlarda kokun hic sesli icermemesi, ya da kisaltmanin okunusunun son sessizin okunusuna bagli olmasidir. Bu durumda eklenecek ekin belirlenmesi son harfin okunusu ile belirlenir. Bu durumun cozumleme islemine uygulanabilmesi icin hem giris hem de kok dizisinde degisiklik yapilamsi gerekebiliyor. Bu metod sesli icermeyen kok ve girise gecici sesli eklenmesi ya da baska gerekli bir ozel durum varsa uygulanmasini saglar.

Parameters:
kokDizi 
girisDizi 

Implements net::zemberek::islemler::cozumleme::CozumlemeYardimcisi.

Definition at line 114 of file TurkceCozumlemeYardimcisi.java.

References net::zemberek::yapi::HarfDizisi::ekle(), net::zemberek::yapi::Kok::icerik, net::zemberek::yapi::HarfDizisi::length(), and net::zemberek::yapi::Kok::ozelDurumIceriyormu().

                                                                                                 {
        //turkce'de sadece kisaltmalarda bu metoda ihtiyacimiz var.
        if (girisDizi != null && girisDizi.length() == 0) return false;
        if (kok instanceof Kisaltma) {
            char c = ((Kisaltma) kok).getKisaltmaSonSeslisi();
            if (c == 0) return false;
            TurkceHarf h = alfabe.harf(c);
            kokDizi.ekle(h);
            //toleransli cozumleyicide kok giristen daha uzun olabiliyor.
            // o nedenle asagidaki kontrolun yapilmasi gerekiyor.
            int kokBoyu = kok.icerik().length();

            if (girisDizi != null) {
                if (kokBoyu <= girisDizi.length()) {
                    girisDizi.ekle(kokBoyu, h);
                } else {
                    girisDizi.ekle(h);
                }
            }
            if (kok.ozelDurumIceriyormu(TurkceKokOzelDurumTipleri.KISALTMA_SON_SESSIZ)) {
                //gene toleransli cozumleyicinin hata vermemesi icin asagidaki kontrole ihtiyacimiz var
                kokDizi.ekle(alfabe.harf('b'));

                if (girisDizi != null) {
                    if (kokBoyu < girisDizi.length()) {
                        girisDizi.ekle(kokBoyu + 1, alfabe.harf('b'));
                    } else {
                        girisDizi.ekle(alfabe.harf('b'));
                    }
                }
            }
            return true;
        }
        return false;
    }


Generated by  Doxygen 1.6.0   Back to index