sorun: osman beyde toplanti var osman beyle toplanti var burdaki iki osman bey nasil ayirt edilir bugune kadarki dusunce: keyword based approach cumlelerdeki kelimelerin yerlerine ve koklerine gore ayirim yap, ilgili koku ilgili fonksiyona gonder ornegin: ali kelimesi hep isimaraya gider, 10 kelimesi hep zaman phrase ine gider sorun:keyword based approach sorunun tanimindaki ornek icin yetersiz goruluyor karar: semantigin icinde kelime tiplerinin tutulmasi sacma geliyor bunun yerine takvim entrylerimdekine benzer sekillerde belirli bir sirayla tutmaya karar verdim, bu sekilde tutulan kelimelerin siralaridan isim mi yer mi konumu olduklarini anlamam mumkun olabilir. karara dayali degisiklik: ustteki kararimi degistiriyorum cunki morfolojik olarak kelimelerin ait bulunduklari phraselerin bulunmasi gerekiyor (osman beyde, osmanbeyle) eklerle kisimi yer mi oldugunu algilayacaksam eger, bunun bir sekilde semantikte olmasi gerekiyor yeni karar: kelimeler morfolojik analiz sirasinda ait bulunduklari tr_morph_entry e gore ek alicaklar, sayet aldiklari ek itibariyle arcsonda bir degisiklige ugruyorlarsa o zaman bu kelimelerin semantik kavramlari da degisicek sonuc: yeni bir arc cizmek zorundayim, gelen eklere gore isim fiil seklinde ayirmaktan cok time, location, subject, fiil gibi ayrimlar gerekecek gibi goruluyor. degistirilmis yeni sonuc: arcsonu degistirmek hic bir ise yaramaz, bunun yerine parse fonksiyonunu degistirmek lazim, ve parse fonk un arcsonda traverse edip buldugu node numarasina nasil geldigini anlamak lazim ornegin, sayikoku ile basladik (1 nolu node sonra nominal oldugu icin 2 nolu node a gidiyor ) sayi diger ekleriyle tum arcsonu traverse edip 22 de bitiyor diyelim bu onun bir zaman oldugunu gosterir ayni sekilde sayet sayi yerine bir isim girseydi ve 22 de eklerini bitirseydi bu onun bir yer oldugunu gosterirdi iste bu ayrimi yakalayip : giren kelime tipi, ciktigi yer, cikis tipi seklindeki 3 degisken datasini elde etmeyi dusunuyorum, bu datayi semantige ekleyip ona gore keyword bazli fonksiyon calistirma sistemimde kullanmayi dusunuyorum, yani sayi girip 22 de biterse zamanara fonksiyonu isim girip 22de biterse yerara fonksiyonunu cagirmak gerekiyor demektir hocam boyle bir cozum buldum ama sizce ne kadar dogru? ------------------------------------------------------------------- sorun, okulda ali toplantilari goster ornegini ele alalim, burda kisi, "okuldaki yada ali ile olan toplantilar" da diyebilir "okuldaki ve ali ile olan toplantilar"da diyebilir bunun icin butun phraseler arasina bir mantik baglaci koymak gerekebilir ben simdilik ve baglaci varmis gibi dusunuyorum, konulmadigi zaman turkcede ve baglaci kabul gorur konulursa ne yapacagimi ileriye birakiyorum ------------------------------------------------------------------- sorun: okul fjsldkfj gorusme goster cumlesinde gorusme konu oldugu icin calismiyor, cunki oncesindeki butun cumleleri bir sekilde anything olarak goruyor ve okulda yer oldugu halde anything. bunun sebebi ts den sonra bir sekilde konu aramaya basliyor olmasi ve yerden once konu aramaya basladigi icin okulu da konudaki anything loopuna koyup anything algilamasi. cozum:sayet yer arayan kismi konudan once koyarsam sorun duzelir, once yeri bulur sonra anythignleri alip konuyu bulur. sorun: bu cozum calismaz, cunki butun phraseler bir sekilde anythingler ile dolu ve sayet yer phrasini one alirsam bu kez konu basta olan bir cumle verildiginde konu anything icinde kaynar. hocam bunu cozemedim. ------------------------------------------------------------------- sorun. hatali cikiyor bir sebepten bulamadim hocam size yolladigim kodda bir sekilde dogru calistiginda argument expected gibi birseyler dedigini goruceksiniz, bu yazdigim anla fonksiyonundan kaynaklaniyor, sorunu cozmek icin ugrasiyorum, sizin teriminizle prologsal bir sorun :)) 0000000000000000000000000000000000000000000000000000000000000000000000 Selam, > gecen carsamba icin ozur dilerim, sikisik bir zamaniniz oldugunu Salı değil miydi? > ------------------------------------------------------------------- > sorun, okulda ali toplantilari goster > ornegini ele alalim, burda kisi, "okuldaki yada ali ile olan > toplantilar" da > diyebilir > "okuldaki ve ali ile olan toplantilar"da diyebilir > bunun icin butun phraseler arasina bir mantik baglaci koymak gerekebilir > ben simdilik ve baglaci varmis gibi dusunuyorum, konulmadigi > zaman turkcede > ve baglaci kabul gorur > konulursa ne yapacagimi ileriye birakiyorum > ------------------------------------------------------------------- Bu syntax-based approach'la güzel çözülür. > sorun: osman beyde toplanti var > osman beyle toplanti var > burdaki iki osman bey nasil ayirt edilir Şadi, bu konuda en doğru çözüm Özlem'in zaten yazdığı "parse" yüklemini kullanmak: ?- parse([k,a,h,v,a,l,t,ı,y,l,a],A). A = [type(noun), sem(_G508^breakfast(_G508)), num(sing), relative] ?- parse([k,a,h,v,a,l,t,ı,d,a],A). A = [type(noun), sem(_G490^breakfast(_G490)), num(sing), case(loc)] Gördüğün gibi hiç arclarla falan oynamaya gerek yok. Kelimeyi bu yüklemle parse et, ikinci argüman olan listenin içinde "relative" varsa bir şey, "case(loc)" varsa başka bir şey yap, olsun bitsin. Birlikte yazılma-ayrı yazılma detayını boşver, speech dinlerken sen farkı nereden anlıyorsun? İşte böyle anlıyorsun. Morfolojik analiz yapıyorsun, o analiz sana neyin yer neyin ise "ile" alabilecek bir şey olduğunu şıp diye söylüyor. > ------------------------------------------------------------------- > sorun: okul fjsldkfj gorusme goster > cumlesinde gorusme konu oldugu icin calismiyor, cunki oncesindeki butun > cumleleri bir sekilde anything olarak goruyor ve okulda yer oldugu halde > anything. > bunun sebebi ts den sonra bir sekilde konu aramaya basliyor > olmasi ve yerden > once konu aramaya basladigi icin okulu da konudaki anything loopuna koyup > anything algilamasi. > > cozum:sayet yer arayan kismi konudan once koyarsam sorun duzelir, > once yeri > bulur sonra anythignleri alip konuyu bulur. > > sorun: bu cozum calismaz, cunki butun phraseler bir sekilde > anythingler ile > dolu ve sayet yer phrasini one alirsam bu kez konu basta olan bir cumle > verildiginde konu anything icinde kaynar. > > hocam bunu cozemedim. Bu tip bir soruyu anlamak hemen hemen imkansız. Bana Prolog'a ne query girdiğini, ne cevap istediğini ve hakikatte ne cevap çıktığını programının bu işleri yapan son haliyle birlikte yollarsan belki anlayabilirim. > ------------------------------------------------------------------- > > sorun. hatali cikiyor bir sebepten bulamadim > > hocam size yolladigim kodda bir sekilde dogru calistiginda > argument expected > gibi birseyler dedigini goruceksiniz, bu yazdigim anla fonksiyonundan > kaynaklaniyor, sorunu cozmek icin ugrasiyorum, sizin teriminizle prologsal > bir sorun :)) Önceki yorumum bu sorun için de geçerli. Ne input girince sorun çıkıyor? Ayrıca zaten gönderdiğin şeyleri yükleyince "veriler" diye bir şeyin eksik olduğunu söyleyip hata verdi. Cem Say