v2.5.2
Giriş yap

Türkçe kelime tahlil programı ?

hasaneryilmaz
13,302 defa görüntülendi ve 6 kişi tarafından değerlendirildi

merhaba arkadaşlar

bir program düşünün Türkçe'deki kelimeleri giriyoruz.Bize kökünü + ekini + şahsını veriyor.

mesela programa girdi olarak

== geliyorum

kelimesini girince bize çıktı olarak

= gelmek -> fiil kökü
= i -> kaynaştırma
= yor -> şimdiki zaman
= m -> 1.tekil şahıs eki

yada

== Bakışıyoruz şeklinde girince

-bak: fiil kökü
-ış: fiilden fiil yapım eki
-ı: yardımcı ses
-yor: şimdiki zaman eki
-uz: birinci çoğul şahıs eki

şeklinde bir çıktı versin.

Soru olarak böyle bir program var mı ?

hakankorkz
661 gün önce
<?php

function kelimeAyir($kelime) {

    // Kelime hecelere ayrılıyor
    $heceler = hecele($kelime);
    
    // Son hece alınıyor (birinci çekim eki burada yer alır)
    $son_hece = array_pop($heceler);
    
    // İlk hece alınıyor (fiil kökü burada yer alır)
    $ilk_hece = array_shift($heceler);
    
    // Fiil kökü tespit ediliyor
    $fiil_koku = fiilKoku($ilk_hece);
    
    // Fiil yapım eki tespit ediliyor (birinci çekim eki dahil ediliyor)
    $fiil_yapim_eki = substr($son_hece, 0, -2);
    
    // Kişi ekleri tespit ediliyor
    $kişi_eki = substr($son_hece, -2);
    
    // Çıktıya eklenen değerler için bir dizi oluşturuluyor
    $cikti = array(
        '= ' . $fiil_koku . ' -> fiil kökü',
        '= ' . $fiil_yapim_eki . ' -> fiil yapım eki',
        '= ' . $kişi_eki . ' -> kişi eki'
    );
    
    // Çıktı dizesi oluşturuluyor
    $cikti_str = implode("\n", $cikti);
    
    return $cikti_str;
}

function hecele($kelime) {

    // Türkçe heceleme kurallarına göre kelime hecelerine ayrılıyor
    // Bu örnekte basit bir algoritma kullanılmıştır, gerçek dilbilgisi kurallarını kullanabilirsiniz
    $heceler = array();
    $kelime_len = mb_strlen($kelime, 'utf-8');
    for ($i=0; $i<$kelime_len; $i++) {
        $hece = '';
        if ($i < $kelime_len-1 && mb_substr($kelime, $i, 2, 'utf-8') == 'iy') {
            $hece = mb_substr($kelime, $i, 2, 'utf-8');
            $i++;
        } else {
            $hece = mb_substr($kelime, $i, 1, 'utf-8');
        }
        $heceler[] = $hece;
    }
    return $heceler;
}

function fiilKoku($hece) {

    // Fiil kökü tespiti için Türkçe dilbilgisi kurallarına göre işlem yapılıyor
    // Bu örnekte sadece son hecenin son harfi kontrol edilerek fiil kökü belirleniyor
    $son_harf = mb_substr($hece, -1, 1, 'utf-8');
    if (in_array($son_harf, array('a', 'e', 'ı', 'i', 'o', 'ö', 'u', 'ü'))) {
        return mb_substr($hece, 0, -1, 'utf-8');
    } else {
        return $hece;
        
    }
}