CEYD-A'yı Tanıdıklarınıza Haberdar Edin

CEYD dili ( CEnker.com Yapay Zeka Dili), sohbet robotu ile karşılıklı konuşmayı sağlayan verilen sesli soruların tanımlanmasını ve bu komutlara robotun nasıl cevap vermesi gerektiğini tanımlayan bir script dilidir.
Bu script dilini kullanıcılar Android telefon ve tabletlerde çalışan CEYD-A uygulaması içinde kullanıp uygulayabilirler.
CEYD dili fonksiyonları cevapların içine yazılır, Robotun soruya karşılık nasıl bir cevap vermesi gerektiğini belirler.

KOMUT nedir?

Bir komutu robota sorulan soruyu ve cevabı tanımlayan adımlar zinciri olarak tanımlayabiliriz. Komut, CEYD-A uygulamasının soru cevap yapısını belirleyen tanımdır. Komutlar, hem
CEYD-A içerisinde Menü->Hesaplar->CEYD-A
ile hem de web üzerinden http://ceyd-a.net/komutekle adresinden kullanıcıya özgü tanımlanabilir. Bu tanımlar kullanıcının cihazlarında otomatik olarak ayarlanır.
Toplam 4 ana adım bulunmaktadır. Komut tanımlamak için adımlar şu şekildedir.

  1. SORU KELİMELERİ

    Söyleyeceğiniz cümle içinde bu kelime veya kelimelerden biri geçiyorsa komut devreye girer. Amacı bir bakıma kelimeleri indekslemektir.
    Komut için kullanılabilecek soru kelimeleri, | işareti ile ayrıştırılarak yazılır
    Soru kelimeleri seçerken, söyleyeceğiniz cümlenin içinde muhakkak kullanılacak kelime veya kelimeler seçmeniz önerilir. 
    Soru kelimelerine örnek:

     

    Bu örnekte söylediğimiz cümlenin içinde okuyor musun veya içinde okul geçen bir kelime olmalı. Başka deyişle, okula gidiyor musun dediğimizde içinde okul geçtiği için bu komutu kapsamaktadır. Okul kelimesinin sonundaki * işareti devamında başka bir ek gelebilir anlamındadır. okula,okuldan,okulu gibi kelimeleri içerir. Eğer * işareti eklemeden okul deseydik okula gidiyor musun bu komut için devreye girmeyecek ama okul eğitim yuvasıdır dediğimizde devreye girecekti. O sebeple * işareti kelimenin çeşitliliğini arttıran bir simgedir
    Eğer aynı soru kelimeleri başka komut tanımlarında da mevcut ise, hangi komutun devreye gireceğini soru şablonu belirler.

  2. SORU ŞABLONU

    Robota sorulabilecek sorunun cümle şablonu tanıtılır. Burada regex yapısı kullanılabilir. Ayrıca kolaylaştırmak için CEYD dilinin sunduğu ilave ifadelerde kullanılabilir..Boş bırakılabilir. Ancak kullanılması daha zengin komutlar oluşturulması için idealdir.
    Düz yazıma ek olarak,
    {HER}
    .*? regex ifadesi ile eşdeğerdir. Herhangi bir söz dizimidir. Olabilir veya olmayabilir.
    ({HER1})
    (.*?) ile eşdeğerdir. Herhangi bir söz dizimi olabilir veya olmayabilir ve bu söz dizimin cevapta kullanılmak üzere parametre olarak belirlenir. HER1 gibi HER2 de tanımlanabilir.
    ({SAYI1})
    (\d*) ile eşdeğerdir. Parametre olarak bir sayı belirlenir. SAYI1 gibi SAYI2 de tanımlanabilir.
    ({KELİME1})
    (\w*) ile eşdeğerdir. Parametre olarak bir kelime belirlenir. KELİME1 gibi KELİME2 de tanımlanabilir.


    .* herhangi bir söz dizimi
    anlamındadır. Regex in diğer tüm yazılım formatı burada desteklenmektedir.
    Örnek olarak aşağıdaki ifade soru şablonuna girildiğinde,

    eğer sorunuz 4 ile 3 topla ise, 4 ve 3 parametreler olarak algılanır ve bu parametreler {SAYI1} ve {SAYI2} olarak cevap şablonunda kullanılabilir. Örneğin cevap şablonu da şu şekilde olsun:

    O zaman siz 5 ile 6 topla dediğinizde, robot size cevap şablonunda parametreleri eşleştirerek 5 ile 6 yi topmamı mı istiyorsun ? der.

  3. CEVAP ŞABLONU

    Robotun sözlü olarak size vereceği cevabı belirler. Düz cevap metni olabileceği gibi içine kod yazılmış metin de olabilir.
    Verilebilecek cevaplar yine | işareti ile ayrıştırılarak tanımlanır. Soru şablonunda tanımlanan parametreler {KELİME1}, {SAYI1}, {HER1} olarak kullanılabildiği gibi,  soru şablonundaki ( ) parantez içindeki ifadeler,cevapta $1 , $2 gibi de kullanılabilir. $1 1.parantez grubunu belirtmektedir.

    Örnek 1:

    işte bu cevapların içine CEYD fonksiyonları istenirse eklenebilir. Ayrıca sorudan alınan parametreler de bir önceki adımda anlatıldığı gibi cümle içinde kullanılabilir.

    Örnek 2:
    Soru şablonu şu şekilde olsun

    Cevap şablonu da aşağıdaki gibi olabilir:

    CEYD Fonksiyonları cevap cümlelerinin içinde {! !} işaretleri arasında tanımlanır.
    RET, IF, SET, GET,EVAL, FOR fonksiyonları

      • RET fonksiyonu ön tanımlı bir komutun sonucunu döndürür.
      • IF fonksiyonu iki değeri karşılaştırır ve sonuca göre değer döndürür
      • SET fonksiyonu bir değişkene değer atar. Bu değer uygulama kapalı olsa bile hafızada tutulur.
      • GET fonksiyonu değişken değeri döner.
      • EVAL fonksiyonu matematiksel işlem yapıp değeri döner
      • FOR döngüsü, içinde tanımlanan fonksiyonların döngü koşulu içerisinde tekrarlanarak çağrılmasını sağlar. (v5.8.8+)

    Bazı örnekler:

    Biraz daha komplike bir örnek vermek gerekirse, bir kur hesaplayıcı yazalım.

    SORU ŞABLONU:

    CEVAP ŞABLONU:

    Bilindiği gibi soru şablonu regex formatındadır. ( ) ile ayrılan gruplar, cevap şablonunda sırasına göre $1 $2 gibi ifade edilmektedirler. Burada $1 ( veya  örnekteki {SAYI1}  ) cevaptaki {SAYI1}  grubuna karşılık gelmektedir. Yani 2 amerikan doları kaç lira denildiğinde 2, ({SAYI1}) ifadesine yani soru şablonundaki 1.gruba denk düşer. 2. parantezli grup amerikan dolarıdır. 3. parantezli grup ise kaç lira dır.
    Bu şekilde düşündüğümüzde cevap şablonunda aynı değerler , {PARAM1} veya bu örnekte {SAYI1} olarak atanmış -> 2 , {PARAM2} -> amerikan doları olarak aynen kullanılabilir.
    Cevap şablonunu bu değerlerle yorumlar isek, {PARAM1},{PARAM2} değerlerini yazdığımızda cevap şu şekilde olacaktır:
    2 amerikan doları {!EVAL{!RET amerikan doları!}*2!} TL dir
    RET fonksiyonu hazır bir komutu çalıştırıp değerini döndürdüğünden, CEYD-A, hali hazırdaki komut yapısından amerikan doları dendiğinde 2.29 değerini döndürürecektir. Öyleyse, cevabımız  yorumlanmaya devam ettiğinde sırasıyla
    2 amerikan doları {!EVAL{!RET amerikan doları!}*2!} TL dir
    2 amerikan doları  {!EVAL 2.29*2!} TL dir
    2 amerikan doları  4.59 TL dir.
    cevabı oluşacak ve ekrana yansıyacaktır.

  4. İŞLEM ŞABLONU

    Eğer hazır bir komuta yeni soru cümleleri eklemek istiyorsanız bu adımı kullanabilirsiniz. Diyelim durumumu güncelle dediğinizde, CEYD-A sizi anlamıyor ve bu komutu dediğinizde hazırda olan CEYD-A’nın anlayabildiği facebook komutu ile aynı işlemi yaptıracaksınız. O zaman soru cümlesine durumumu güncelle, komuta yönlendir içine facebook tanımladığınızda artık durumumu güncelle dediğinizde facebook durumunuzu güncelleyebilirsiniz.
    Daha komplike bir örnek ise, Kartala nasıl giderim dediğinizde Kartal nerede komutunun çalışmasını istiyorsanız,  Soru şablonuna

    Soru kelimelerine

    NEREDE komutu hali hazırda olduğu için komuta yönlendir bölümüne

    yazmanız yeterli olacaktır. $1 , parantezli ilk gruptur {HERHANGİ1} olarak tanımlanan kısımdır.

    Capture11

    Bu yazıda CEYD dilinin neler yapabildiğinden bahsetmek istedim. Daha sonraki yazılarda basit tanımlamalardan başlayıp daha komplike tanımları içeren örneklerden bahsedeceğim.


Cenker Sisman

1971 yılında doğan Cenker Sisman, Saint-Joseph lisesini bitirdi. Yıldız Teknik Üniversitesi’nde Bilgisayar Mühendisliği ve İstanbul Teknik Üniversitesi’nde aynı bölümün yüksek lisans eğitimlerini tamamladı. Savaş Köse ile beraber yazdığı ‘Parallel Implementation of The Hough Transformation’ çalışması SCI’99/ISAS’99 da yayınlandı. Yazdığı uzaktan bilgisayar kontrol uygulaması ‘Panda Future Connection’ Bimeks 1998 En İyi Yazılım – Mansiyon ödülünü aldı. Diğer programları olan WinPerfect, CleanDisk, VideoCapture, FTPExplorer, CardReader ve Multi-Email Sender uygulamaları zaman zaman yurtdışındaki medyalarda yayınlandı ve çeşitli otoriteler tarafından ödüller aldı.

Bir Cevap Yazın

Benzer yazılar

Komut Yazımı Örnekleri

Web Chatbot için Komut Takibi Yapalım

CEYD-A'yı Tanıdıklarınıza Haberdar EdinCEYD-A, Android sürümü için komut takibi yapabiliyordu. Örneğin bana bir bilmece sor diyorsunuz size cevap olarak bilmece soruyor ve siz de ona cevap veriyordunuz. Bu komut takip özelliği artık web sürümünde de Daha fazlasını oku…

Komut Yazımı Örnekleri

CEYD Örnekleri Yazalım

CEYD-A'yı Tanıdıklarınıza Haberdar EdinBu yazıda, geliştiriciler için CEYD dilini pekiştirmek adına 2 adet komut oluşturma videosu bulunmakta. İlk videoda çağırdığımız hava kaç derece komutunun sayı olarak cevabının cümle içinde gösterimini bulacaksınız. İkinci videoda ise 70 kilo Daha fazlasını oku…

Komut Yazımı Örnekleri

CEYD dili ile Yeni Bir Komut Türetelim

CEYD-A'yı Tanıdıklarınıza Haberdar EdinBu videoda, CEYD dili kullanarak başka bir komut sonucu içerisindeki belirli bir bölgeyi çekip yazacağımız yeni bir komut için bunu nasıl kullanacağımızı anlatacağız. Puan Durumu komutu bize güncel süper lig puan durumunu Daha fazlasını oku…