Doğal Dil İşleme İçin Alt Seviye Komutlar
CEYD-A, kendi geliştirme dili olan CEYD ile gelişiyor. Kendi dili ile yeni kelime işleme komutları yazabilmek mümkün.
Örnekte CEYD ile yeni oluşturulan, peş peşe aynı harfleri eleyen komut gösterilmekte. Sonrasında bu komutu yeni Doğal Dil İşleme komutlarında kullanabiliriz. CEYD-A modüler yapısıyla kendi dilini kullanarak gelişmektedir.
Komutları hem android telefonlarda hem de örnekte gösterildiği gibi https://asistan.ceyd-a.com sitesinde deneyebilirsiniz.
Bu şekilde kendisi cihaz üzerinde algoritmayı yorumlayıp işlemleri gerçekleştirebiliyor.
Ama başka örnekler için yapı hayal gücünüzle sınırlı. Zemberek dahil değişik kütüphaneler de kullanabilirsiniz. Burada CEYD-A nın kendisinin en alt seviyede işlemler yapabildiğini göstermek istedik.
Kodun Açıklaması:
Cümle içindeki toplam karakter sayısı kadar FOR döngüsü içinde her karakteri geziyor ve önceki karakter yeni karakterden farklı ise yeni karakteri basıyor. Yoksa basmıyor. Basılan karakterler ekrana değil SET (atama komutu) ile değişkene atanıyor ve gösteriliyor.
{!SET $par1={!FOR $i=0,$size …….
gibi ilginç bir yaklaşım ile atama da yapabilyorsunuz.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SORU: cmdremoveduplicatecharacters SABLON: cmdremoveduplicatecharacters ({PAR1})$ CEVAP: {!SET $par1=$1!}{!SET size={!RET strlength $par1!}!}{!SET oncekikarakter=!} {!SET $par1={!FOR $i=0,$size {!SET karakter={!RET cmdsubstring {!GET $i!},{!EVAL {!GET $i!}+1!},$par1!}!} {!IF $oncekikarakter!=$karakter??{!GET karakter!}::!} {!SET oncekikarakter={!GET karakter!}!} {!SET $i+=1!} !}!} {!GET par1!} |
Yeni oluşturduğumuz cmdremoveduplicatecharacters komutunu kullanan başka bir CEYD komutu aşağıdadır. cmdsoundslike komutu yine CEYD dili yazılmıştır. Modüler yaklaşımı göstermek adına güzel bir örnektir.
Birinde hatalı karakterler bulunan iki aynı cümleyi ses benzerliğine göre karşılaştıran bir komuttur.
Farkettiyseniz CEYD ile yazılan komutlar modüler olarak gelişip büyümektedir.
Bu yeni komut, CEYD-A’nın sorduğu sınav sorularında kullanıcıların verdiği cevapta basit imla hatası yaptığı durumlarda doğru cevabı hatalı algılamaması için kullanılacaktır.
Kodun Açıklaması:
Sesli harflerin ve sembol Karakterlerin cümlelerden kaldırıldıktan sonra p-b t-d k-g s-z gibi birbirine ses olarak benzeyen harfler eşitleniyor. Ayrıca bir önceki yazıda oluşturulan karakter eleyen komut kullanılıyor. Oluşan söz dizimleri karşılaştırılıyor.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SORU: cmdsoundslike,100| SABLON: cmdsoundslike ({PAR1}),({PAR2})$ CEVAP: {!SET par1={!RET cmdtrimspaces {!RET cmdreplaceall [aeıioöuü\\W], ,{!RET strlowercase {!RET converttolatin $1!}!}!}!}!} {!SET par2={!RET cmdtrimspaces {!RET cmdreplaceall [aeıioöuü\\W], ,{!RET strlowercase {!RET converttolatin $2!}!}!}!}!} {!SET par1={!RET cmdreplace p,b,{!RET cmdreplace k,g,{!RET cmdreplace t,d,{!RET cmdreplace s,z,$par1!}!}!}!}!} {!SET par2={!RET cmdreplace p,b,{!RET cmdreplace k,g,{!RET cmdreplace t,d,{!RET cmdreplace s,z,$par2!}!}!}!}!} {!SET p1={!RET cmdremoveduplicatecharacters {!GET par1!}!}!} {!SET p2={!RET cmdremoveduplicatecharacters {!GET par2!}!}!} 1.cümle:{!GET p1!}<br>2.cümle:{!GET p2!}<br> {!IF $p1!=$p2??Cümleler farklı::Cümleler aynı!} |
Peki, şu an için gözle görülür bir fayda sağlamayan komutlar ne için kullanılacak? İşte CEYD-A üzerinde çalışabilecek örnek bir sınav sistemi. Sorulara verilecek cevaplarda basit imla hatalarını bu geliştirilen komutlar çözecektir.