v2.5.2
Giriş yap

Türkçe kelime tahlil programı ?

hasaneryilmaz
10,198 defa görüntülendi ve 5 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ı ?

Cevap yaz
Cevaplar (19)
ilyasbilgihan
1117 gün önce

Aşağıdaki linkleri incelemenizi tavsiye ederim

Natural Language Processing Library for Turkish by github@hrzafer
Demo

goldeneye
4 gün önce

geliyorum

goldeneye
4 gün önce

batının

goldeneye
4 gün önce

batının

emmir2
18 gün önce

bu yazanlar ne yaşıyola

kpbbeyza
19 gün önce

eçisin

edgar
21 gün önce

Uyuyamadığımı

waves78
152 gün önce

akşamların kaşlarını çayqrqk dessiz sedasız eve giren ce ne bizi ne annemizi hitaba layık görmeyen

64738228
167 gün önce

kabul ediyorum

64738228
167 gün önce

gülemeyi

sevgikrkmz
167 gün önce

kullandığı

denix322
171 gün önce

göremiyorsunuz

bilinmiyor
205 gün önce

gittiğini

furkann21
219 gün önce

Yapardı

alisucu44
238 gün önce

getiriyorum

djjshs74737
253 gün önce

yabancılaştırmak

hakankorkz
275 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;
        
    }
}
   


huseyin3
277 gün önce

evlilikleri

bayramsavluk0
1119 gün önce

Böyle bir uygulamayı yapabilmek için öncelik olarak dil bilgisine iyice sahip olman lazım. Dil bilgisine sahip değilsen bile araştırmalısın.
Herşeyi bir kağıda dökmelisin mantığını anlamalısın. Eğer bunun için bir api filan yoksa herşeyi kendin yapmalısın. Tüm kelimeleri bir veritabanında kayıt etmelisin.
Sonrasında ise bir algoritma üzerinde bunları birleştirmelisin. Bunu yapabilirsin bu konuda rahat ol ama bu seni baya uğraştıracak buna da hazır ol :)
Bu konuda araştırmalarım yok bilgimde yok ama benim önerim budur :)