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

void net::zemberek::tr::islemler::TurkceCozumlemeYardimcisi::kelimeBicimlendir ( Kelime  kelime  )  [inline]

kelimenin icindeki olusumu kok'un orjinal haline gore ve gerekli noktalama isaretlerine gore bicimlendirir. Ornegin Turkiye turkcesinde "ankaraya" -> "Ankara'ya" ve "bbceye"->"BBC'ye" seklinde. Bu metod ozellikle oneri mekanizmasinda kullaniliyor.

Parameters:
kelime : cozumleme sonrasi olusan kelime.

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

Definition at line 29 of file TurkceCozumlemeYardimcisi.java.

References net::zemberek::yapi::Kok::asil, net::zemberek::yapi::HarfDizisi::ekle(), net::zemberek::yapi::ek::Ek::halEkiMi(), net::zemberek::yapi::HarfDizisi::harf(), net::zemberek::yapi::HarfDizisi::harfDegistir(), net::zemberek::yapi::HarfDizisi::harfSil(), net::zemberek::yapi::Kok::icerik, net::zemberek::yapi::HarfDizisi::ilkHarf(), net::zemberek::yapi::ek::Ek::iyelikEkiMi(), net::zemberek::yapi::HarfDizisi::length(), net::zemberek::yapi::Kok::ozelDurumIceriyormu(), and net::zemberek::yapi::Kok::tip.

                                                 {
        Kok kok = kelime.kok();
        HarfDizisi olusan = kelime.icerik();
        if (kok instanceof Kisaltma) {
            //cozumleme sirasinda eklenmis harf varsa onlari sil.
            int silinecek = kok.icerik().length();
            if (kok.ozelDurumIceriyormu(TurkceKokOzelDurumTipleri.KISALTMA_SON_SESSIZ))
                silinecek += 2;
            if (kok.ozelDurumIceriyormu(TurkceKokOzelDurumTipleri.KISALTMA_SON_SESLI))
                silinecek++;
            //kelimenin olusan kismindan kokun icereigini sil.
            olusan.harfSil(0, silinecek);
            //simdi kokun orjinal halini ekle.
            olusan.ekle(0, new HarfDizisi(kok.asil(), alfabe));

            if (olusan.length() == kok.asil().length())
                return;
            //eger gerekiyorsa kesme isareti koy.
            if (!olusan.harf(kok.asil().length() - 1).equals(alfabe.harf('.')))
                olusan.ekle(kok.asil().length(), alfabe.harf('\''));

        } else if (kok.tip() == KelimeTipi.OZEL) {
            olusan.harfDegistir(0, alfabe.buyukHarf(olusan.ilkHarf()));
            if (kok.ozelDurumIceriyormu(TurkceKokOzelDurumTipleri.KESMESIZ))
                return;
            List<Ek> ekler = kelime.ekler();
            if (ekler.size() > 1) {
                Ek ek = ekler.get(1);
                if (ek.iyelikEkiMi() || ek.halEkiMi()) {
                    int kesmePozisyonu = kok.icerik().length();
                    olusan.ekle(kesmePozisyonu, alfabe.harf('\''));
                }
            }
        }
        // ozel ic karakter iceren kokler icin bicimleme
        else if (kok.ozelDurumIceriyormu(TurkceKokOzelDurumTipleri.OZEL_IC_KARAKTER)) {
            //olusan ksimdan koku sil
            int silinecek = kok.icerik().length();
            olusan.harfSil(0, silinecek);
            //simdi kokun orjinal halini ekle.
            olusan.ekle(0, new HarfDizisi(kok.asil(), alfabe));
        }
    }


Generated by  Doxygen 1.6.0   Back to index