Türkçe Sohbet Robotu

Benzer belgeler
Doğal Dil İşleme Nedir? Doğal Dil İşleme

1) İngilizce Öğrenmeyi Ders Çalışmak Olarak Görmek

LSI Keywords İle Sitenizin Sıralamasını Ve Trafiğini Arttırın

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

Mobil Cihazlardan Web Servis Sunumu

Web tabanlı altyapı sayesinde her cihazdan erişilebilir ve düzenlenebilir dokümanlar oluşturulup anında paylaşılabilir.

[E-Katalog Tanıtım Sayfası] Ayser Bilgisayar. Cumhuriyet Meydanı No:41 Kat:

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

Bilgisayar Mühendisliği

Sayısız uygulama alanı olan Yapay Zeka kavramının pek çok tanımı vardır.

T E M E L B Ü Y Ü M E İ

Yazılım Mühendisliği 1

NENE HATUN MESLEKi VE TEKNiK ANADOLU LiSESi REHBERLiK VE PSİKOLOJİK DANIŞMANLIK SERVİSİ AYLIK BÜLTEN BAŞARI

BİREYSEL EĞİTİM PLANI Ebeveynler için Rehber

Bilgisayarda Programlama. Temel Kavramlar

Okuyarak kelime öğrenmenin Yol Haritası

ODTÜ BLOG SERVĐSĐ ve BLOG HAZIRLAMA

1.1. Yazılım Geliştirme Süreci

Üst Düzey Programlama

Uludağ Projesi, İlk Adımlar (Kalite Takımı)

Dil Gelişimi. temel dil gelişimi imi bilgileri

Lesson 02 : Self-Introduction (Part II)

Görevler. Bundle. Görev 1: Görev 3: Görev 2: Görev 5: Görev 6: Görev 4: Techcrunch isimli kaynagı da haber kaynagına ekleyebilir misin?

GÖKYÜZÜ EĞİTİM KURUMLARI

Sistem Geliştirme Yaşam Döngüsü (The Systems Development Life Cycle) (SDLC)

Digital Age. Yeni Nesil Mutluluk Araştırması. Nisan, ZENNA Digital Age Yeni Nesil Mutluluk Araştırması Nisan, 2017

Arama Sonuçlarında Üst Sıralarda Olmak. Temel SEO Çalışması

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Engelliler İçin Akıllı Ev Otomasyon Sistemi

Akademik Özgeçmiş Tabanlı Fakülte Bilgi Sistemi

Akıllı Ortamlarda Sensör Kontrolüne Etmen Tabanlı Bir Yaklaşım: Bir Jadex Uygulaması

Öğr. Gör. Serkan AKSU 1

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

Açık Kaynak Öğrenme Yönetim Sistemleri (Learning Management Systems) Ceren Çalıcı

DetailsView. DetailsView kontrolünün GridView kontrolüyle paralel şekilde kullanımı ile ilgili örnek

ESİS Projesi. Kaynaklar Bakanlığı

Giovanni dışında bütün örenciler çok çalışıyor. O hiç çalışmıyor ama sınıfın en başarılı öğrencisi. Çok iyi Türkçe konuşuyor.

ALP OĞUZ ANADOLU LİSESİ EĞİTİM ÖĞRETİM YILI BİLGİSAYAR BİLİMİ DERSİ 2.DÖNEM 2.SINAV ÖNCESİ ÇALIŞMA SORULARI VE YANITLARI

İNTERNET PROGRAMCILIĞI - II

Veritabanı Uygulamaları Tasarımı

Powered by

ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI

İNTERNET TABANLI TEST HAZIRLAMA VE DEĞERLENDİRME PROGRAMLAMA ARAYÜZÜ

SAYISAL KONTROL 2 PROJESİ

Bilişim Teknolojileri Temelleri 2011

TÜİK e-vt Teknik Kılavuz

DITA ile Uygulama Belgeleri Hazırlamak

TEMSA FABRİKALARINDA İŞ ETÜDÜ UYGULAMASI: MONTAJ AKIŞ KARTI (AOS)

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

Bütün XML dökümanlarının bir kök elemanı olmalıdır. Diğer bütün elemanlar kök elemanı tarafından kapsanır.

TUİK Netsis Erp Paketi Entegrasyonu ve Yıllık İş İstatistikleri Sanayi ve Hizmet Araştırması (YSHİ) Anketi

Nesli Tükenen Hayvanlar Müzesi

Eğitimde Yeni Teknolojiler

SEAT on-line HSO KULLANICI EL KİTABI SÜRÜMÜ

İnternet Teknolojisi. İnternet Teknolojisi. Bilgisayar-II - 4. Hafta. Öğrt. Gör. Alper ASLAN 1. Öğrt. Gör. Alper Aslan. İnternet Nedir?

Diyalog Sistemleri. Sohbet ve sanal asistan uygulamaları

İNGİLİZCE HAZIRLIK PROGRAMI SEVİYE 1 DERS MÜFREDATI

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

Arama motoru: kuş gribinin etkileri

Hayat Bilgisi Veritabanı Kullanarak Otomatik Cümle Üretimi

Yaz.Müh.Ders Notları #6 1

ESO Lojistik Merkezi Bilgi Sistemi

INTERNET SİTESİ KULLANIM KILAVUZU

İş Zekası Sistemi Veriyi Stratejik Bilgiye Dönüştürür

Sarıyer Belediyesi ile Her çocuk İngilizce konuşsun


Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

PROJE: WEBWISE PARENTS (WEB UZMANI EBEVEYNLER) EBEVEYNLER İÇİN ANKET

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

25. İngilizce Geniş Zaman Konu Anlatımı (Simple Present) (

Facebook. 1. Grup ve Sayfalar. Facebook ta birçok grup ve sayfa üzerinden İngilizce öğrenen kişilerle iletişime geçebilir ve

MÜ DAD ONLİ NE Ü YELİ K

Yrd. Doç. Dr. Mustafa NİL

Kullanım Kılavuzu Milli Eğitim Bakanlığı 2010

Kurulum ve Başlangıç Kılavuzu. DataPage için

Seçenekler Menüsünde Yazdır, Kaydet, Kullanıcı Bilgisi Ve Uyumluluk Sekmelerinin Anlatımı

3-

ULUSAL MESLEKİ BİLGİ SİSTEMİ. Mesleki Bilgi Sistemi, yaşam boyu sürecek öğrenme ve gelişim yolculuğunda size rehberlik etmeyi amaçlamaktadır.

ROBOTİK VE YAPAY ZEKA

U y g u l a m a A i l e s i (Abakus 360, T-Panel, T-CRM) Tarayıcı Ayarları. IPera İletişim Teknolojileri

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ AKADEMİK ÖZGEÇMİŞ FORMU

JasperReports Server ve Ireport raporlama Sistemi Kurulumu / Kullanımı 1. Bölüm 2. Bölüm 1- JasperReports Server ve Ireport Nedir?

Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine Doğru

T.C. NAMIK KEMAL ÜNİVERSİTESİ ÇORLU MÜHENDİSLİK FAKÜLTESİ

COMPUTERIZED AUDIT PROGRAM BİLGİSAYARLI DENETİM PROGRAMI

1 Temel Kavramlar. Veritabanı 1

İnsan Bilgisayar Etkileşimi (IBE) nedir? İnsan Bilgisayar Etkileşimi Araştırma ve Uygulama Labaratuvarı

İNGİLİZCE 1 KISA ÖZET

Yardım Masası Kullanım Klavuzu

NovaFortis Yazılım Danışmanlık. E-dönüşüm adaptörü

BLG 1306 Temel Bilgisayar Programlama

AKINSOFT. Eofis NetworkAdmin. AKINSOFT EOfis NetworkAdmin Kurulumu Bilgi Notu. Doküman Versiyon : Tarih : Copyright 2008 AKINSOFT

Bilişim Garaj Akademisi Nedir?

İÇ KONTROL SİSTEMİ STRATEJİ GELİŞTİRME BAŞKANLIĞI

KUPA TEKNĠK BĠLĠMLER MESLEK YÜKSEKOKULUNUN

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Gezgin Etmen Sistemlerinin Başarım Ölçümü: Benzetim Tekniği

YAZILIM KAVRAMINA BİR BAKIŞ. Gürcan Banger Elektrik Yük. Müh. ESOGÜ - 9 Nisan 2007

Mevlana Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi (MEVUZEM) MYENOCTA Uzaktan Eğitim Sistemi Öğrenci Kullanım Kılavuzu

Transkript:

Türkçe Sohbet Robotu Sinem TOPÇU 1, Cansu ŞEN 1, M.Fatih AMASYALI 1 1. Bilgisayar Mühendisliği Bölümü Yıldız Teknik Üniversitesi sinemtopcu.88@gmail.com, cansusen_36@hotmail.com, mfatih@ce.yildiz.edu.tr Özet Tarihleri, yapay zekanın varlığının testi için önerilmeleriyle başlayan sohbet robotları günümüzde birçok uygulama alanı (uzaktan eğitim, danışmanlık vb.) bulmuşlardır. Bu çalışmada, genel sohbet amaçlı Türkçe konuşan bir sistem geliştirilmiştir. Sistem AIML teknolojisi üzerine bina edilmiştir. Geliştirilen sistem, kullanıcıdan bilgi alabilme, sohbeti yönlendirebilme, kullanıcıya ait bilgileri kendi cümleleri içinde kullanabilme özelliklerine sahiptir. Anahtar Kelimeler: Sohbet robotu, Diyalog Sistemleri, Aiml, Eliza, Jabberwacky, Alice, Yapay Zeka, Doğal Dil İşleme, Şablon Eşleme. 1. Giriş Sohbet robotlarının tarihi 1950 de Turing in ünlü makalesiyle başlamıştır [1]. Turing bir sisteme zeki denebilmesi için kendi adıyla anılan Turing Testini önermiştir. Bu teste göre bir insan, sadece klavye ve monitör kullanılarak yaptığı bir sohbette karşısındakinin insan ya da yazılım olduğunu ayırt edemiyorsa yazılımın zeka sahibi olduğu kabul edilir. Bu kabule birçok karşıt görüş bulunmasına rağmen Turing Testi hala güncelliğini korumaktadır. Her yıl bu test için çeşitli yarışmalar düzenlenmektedir. Bunların en ünlüsü 1991 den beri düzenlenen Loebner yarışmasıdır [2]. Sohbet robotları bir yandan yapay zekanın olabilirliği için ölçüt olarak kullanılırken, diğer yandan günümüzde birçok kullanım alanı ve araştırma alanına kavuşmuştur. Bunlara örnek olarak e-ticaret sitelerinde kullanıcıların sorularını cevaplamak, bir dili yeni öğrenenlere yardımcı olmak, uzaktan eğitim, arama motorları, insanların diyaloglar esnasındaki dinamiklerini anlamak için diyalog analizi, kullanıcı yazılım (robot) ara yüzlerinin daha doğal (insanlar arası etkileşime yakın) hale getirilmesi sayılabilir [3]. Literatürdeki sohbet robotları geniş kullanım alanı bulmaları için genelde İngilizce için tasarlanmışlardır. Türkçe için ise yapılmış çok az çalışma vardır. Bu bildiride sunulan projenin amacı literatürdeki bu eksikliğin azaltılması için Türkçe bir sohbet robotu geliştirmektir. Geliştirilen programda hedef konuşma türü olarak günlük (tanışma, spor, sinema vb. ) konuşmalar seçilmiştir. Program geliştirilirken diğer dillerde yapılan robotlar ve mimarileri incelenmiş, en esnek ve kolaylıkla geliştirilebilen AIML dili seçilmiştir. Programda, uygun bir cevap bulunamadığında konuyu bilinen bir alana çekme, kaçamak cevaplar verme, konuşmacıyla ilgili sorular sorma ve bu bilgileri kullanma gibi stratejiler üzerinde çalışılmıştır. 2. Benzeri Çalışmalar Sayfa düzeni aşağıdaki kurallara uygun olarak hazırlanmalıdır. Hazır bir taslak (Word, bu taslak) kullanmanız veya ayrıntıların kontrolü için örnek bir dosya takip etmeniz bu gereklilikleri yerine getirmeniz açısından ısrarla önerilir. Bilinen en eski sohbet robotu (chatterbot), ELIZA; 1964 1966 yılları arasında Joseph Weizenbaum tarafından yazılmıştır [4]. Eliza, Rogerian tekniğini (hastaya, hastanın söylediklerini tekrar etmek) kullanan bir psikologun simülasyonudur. Örneğin; Eliza ya bir kullanıcı Başım ağrıyor. derse Eliza ona Demek başın ağrıyor diyecektir. Eliza nın tasarım mantığı kullanıcıdan alınan girişi analiz edip, çeşitli dönüşüm şablonları kullanarak bir cevap hazırlamaktır. Sohbet robotları tarihinin en bilinen bir diğer ürünü ise 1995 senesinde Richard Wallace tarafından yazılan ALICE (Artificial Linguistic Internet Computer Entity) dir [5]. ALICE in yapısı AIML mantığına dayanmaktadır. ALICE in sahip olduğu AIML ler pattern ve template lerden oluşmaktadır. ALICE in temel mantığı kullanıcılarıyla yaptığı konuşmaları sürekli analiz edip altyapısında yer alan AIML dosyalarını geliştirmektir. Ancak bu yapıdaki en büyük problem sistemin herkes tarafından kullanılabiliyor olması dolayısıyla bazı kullanıcıların sistemi yanlış ve gereksiz bilgilerle doldurmasıdır. ALICE in ilk uygulaması 1998 yılında JAVA ile Program A adı ile kodlanmıştır. 1999 yılında AIML ler XML formatına dönüştürülmüş ve bu şekilde AIML geliştiricileri

artmıştır. ALICE, Loebner yarışmasını ve 2000, 2001 ve 2004 yıllarında üç kez en becerikli konuşabilen robot ödülünü kazanmıştır. AIML günümüzde sohbet robotları alanında bir standart haline gelmiştir. Bir diğer ünlü sohbet robotu olan Jabberwacky, İngiliz programcı Rollo Carpenter tarafından geliştirilmiştir [6]. Jabberwacky nin teknolojisi var olan diğer sohbet robotlarından farklıdır. Belirli bir kuralı yoktur, kullanıcılarla yapılan tüm konuşmalar bilgi tabanında saklanır. Bu şekilde kullanıcı bir cümle girdiğinde, bu cümle bilgi tabanındaki konuşmalarda aranır ve en uygun / yakın cevap kullanıcıya verilir. Bu şekilde çok çeşitli konular hakkında konuşabilir, birçok yabancı dilde basit cümleler kurabilir. Bu mimarisi nedeniyle Jabberwacky deki en büyük sorun yine kullanıcıların sistemi suiistimalinden kaynaklanmaktadır. İngilizce için yapılan bu çalışmaların yanında Türkçe için de yapılmış çalışmalar mevcuttur. Özyurt ve Köse [7] geliştirdikleri sohbet robotunda, kullanıcının girdiği cümlelerin öğelerini bulmakta, daha sonra cümlede eksik olan öğeleri kullanıcıya sorarak sohbeti sürdürmektedir. Sorulacak öğeleri belirlerken cümlenin yükleminin geçişli olup olmadığına da bakılmıştır. Türkçe için ticari anlamda yapılan çalışmaların örnekleri http://www.chatbots.org/tr adresinden görülebilir. Bu tarz internet uygulamalarda yer alan sohbet robotları görsel öğelerle desteklenmekte, site ziyaretçilerine sitenin amacına uygun konularda danışmanlık yapmaktadırlar. 3. AIML dili Türkçe Diyalog Sistemi tasarlanırken ALICE in mimarisi örnek alınmıştır. ALICE in temel yapısı ise AIML dili kullanılarak oluşturulmuştur. AIML dili (Artificial Intelligence Markup Language) konuşma kurallarını belirleyen XML şemalarıdır [5]. ALICE diyaloglarını üretirken, geliştiricileri tarafından hazırlanmış olan onlarca AIML dosyasını kullanmaktadır. AIML dosyalarında temel 4 etiket kullanılmaktadır: <aiml>: AIML dokümanını başlatan ve sonlandıran etikettir. : Bilgi tabanında bulunan herhangi bir bilgi birimini belirtir. <pattern>: Pattern bir kullanıcının chatbot a ne söyleyebileceğini basit bir kalıp halinde tutar. <template>: Kullanıcıya verilecek cevabı içerir. Basit olarak gösterimi aşağıdaki şekildedir. <aiml> <pattern>...</pattern> <template>...</template> </aiml> AIML lerde her category bir pattern ve bir template içerir. Bir category bir başka category tarafından srai etiketiyle çağırılabilir. Örneğin; <pattern>merhaba</pattern> <template>sana da Merhaba</template> <pattern>merhabalar</pattern> <template><srai>merhaba</srai></template> şeklinde bir AIML miz olursa, kullanıcı bize Merhaba dediği zaman alacağımız cevap Sana da Merhaba dır. Kullanıcı Merhabalar dediği zaman program AIML de arama yapmaya başladığında öncelikle MERHABALAR pattern iyle eşleşecektir. Normalde vermesi gereken cevap template etiketlerinin arasında bulunan tümcedir ancak burada template tag inden sonra srai tag i geldiği için program MERHABA pattern ini arar ve onun template tag lerinin arasındaki cevabı verir. Bu kullanımın en büyük avantajı sürekli aynı şeylerin tekrarından kurtulmaktır. Gerçek bir sistemde Merhaba gibi bir selamlama sözcüğü için birden fazla cevap bulunmaktadır ve her dilde olduğu gibi Türkçe de de chat ortamında bazı kısaltmalar mevcuttur. Örneğin; MRB, MRHB, MERABAA vb. şekillerde girişler olduğunda hepsine aynı template leri yazmak hem vakit hem yer kaybına neden olur, ayrıca programın gelişim sürecinde MERHABA template inde bir değişiklik yapılmak istendiğinde bunu tümüne uygulamak da verimi düşürücü bir etkendir. AIML lerde en çok kullanılan bir diğer tag de random dır. Bu sayede selamlama ayrılma gibi birden çok karşılığı olabilecek sözcüklere farklı cevaplar verilerek, robot un daha insancıl olması sağlanmaktadır. <pattern>gorusuruz</pattern> <template> <random> <li>görüşürüz</li> <li>seninle konuşmak güzeldi</li> <li>yine gel</li> <li>hoşçakal</li> <li>güle Güle</li> </random> </template> Bu örnekte görüldüğü gibi kullanıcının Görüşürüz girişine altı farklı cevaptan biri rastgele seçilip verilebilir.

AIML lerde en çok örneği görülen bir diğer tag <that> dir. <pattern>evet</pattern> <that>film SEVER MISIN?</that> <template>en sevdiğin film nedir?</template> <that> taglerinin arasında bulunan cümle robot un kullanıcıya sorduğu sorudur. Eğer kullanıcı konuşmanın bir yerinde EVET derse bu Evet sözcüğünü ne için dediğini anlamamız gerekir. Buradaki örnekte görüldüğü gibi EVET kelimesi geldiğinde program AIML de bu category i bulacaktır. Ardından <that> tag ini görürse bu tag içinde bulunan cümleyi konuşmadaki bir önceki cümleyle karşılaştırır uyuyorsa aynı category deki template i cevap olarak verir. AIML de konuşmanın daha gerçekçi olması amacıyla kullanılan iki önemli tag daha vardır. Bunlar <get> ve <set>dir. Set tag inin kullanımına bir örnek; <pattern>naber</pattern> <template>iyilik senden ne haber <set name="name"/></template> Program NABER pattern iyle eşleştiğinde cevabı kullanıcıya verebilmek için template kısmına gidecektir. Burada template içerisinde <set> tag ini bulduğunda ilgili kısımda daha önce kullanıcıdan isim, yaş vb. hangi bilgileri almışsa o özelliğe ait bir tanımla karşılaşacaktır. Burada name kullanıldığı için program daha önceden name değişkeni ile eşleştirdiği veriyi bu alana ekleyip kullanıcıya cevabı verecektir. <get> tag inin kullanımı da <set> e benzer şekildedir. <pattern>bugun AYIN KACI?</pattern> <template>bugün<get date="date"/></template> Burada program get tag iyle sistem den günün tarihini alıp cevabı template de ilgili kısma ekleyip verecektir. AIML de ayrıca, pattern lerin daha kolay bulunması ve veri fazlalığını azaltmak için çeşitli pattern yazım teknikleri vardır. Pattern lerde en çok kullanılan teknik * koymadır. Bir cümle farklı birkaç formda söylenebiliyorsa bunun yerine * koyularak arama işlemi kolaylaştırılır. Örneğin Oyna kökünü ele alırsak bunun Oynar, Oynadı, Oynayacak, Oynuyor, vb. birden fazla söyleniş biçimi bulunur. <pattern>futbol OYN*</pattern> <template>futbol oynayabilmem için 2 ayak gerek bana.</template> Bu şekilde bir AIML sayesinde bu gibi köklerin benzer versiyonlarına tek cevapla karşılık verilebilir. 4. Tasarlanan Sistem Türkçe Diyalog Sistemi, kayıtlı kullanıcıların bilgisayarla sohbet edebildikleri bir uygulamadır. Buradaki amaç kullanıcıların girişine karşılık bilgisayarın gerçekçi yani bir insanla konuşuyormuş gibi cevaplar verebilmesidir. Sistemin mimarisi Şekil 1 den incelenebilir. Şekil 1. Sistem Mimarisi. Türkçe Diyalog Sistemi nin başrolü kayıtlı kullanıcılardır. Bu nedenle sisteme giriş bir kullanıcı adı ve şifreyle olur. Kayıtta kullanıcıdan kullanıcı adı, şifresi ve ad, soyad gibi standart bilgiler istenmektedir. Şekil 2 de sohbet ekranı görülmektedir. Bu ekranda konuşmanın son birkaç cümlesi de gösterilmektedir. Şekil 2. Sohbet Ekranı. Türkçe Diyalog Sistemi belleğinde o an bulunan aiml dosyalarını kullanarak cevap üretir. Sistemde iki önemli AIML türü vardır. XML şeması olarak aralarında bir fark olmasa da sistemde bulunma süreleri aynı değildir. Bunlardan biri her zaman açık olan selamlama dosyasıdır. Diğer tür ise kullanıcının sözlerine göre belleğe getirilen AIML dosyalarıdır. Tablo 1 de sistemde kullanılan AIML dosyalarının

adları ve içerdikleri şablon (pattern) sayıları verilmiştir. AD selamlama bilgisayar sinema muzik Tablo 1. Kullanılan AIML ler. İÇERİK Sıklıkla kullanılan ve herhangi bir konu başlığı altına dâhil edilemeyecek cümleler Bilgisayarlar ve işletim sistemleri hakkındaki konuşmalar Popüler sinema tarihi, aktör ve aktrisler Müzik türleri, sanatçılar, gruplar ŞABLON SAYISI 364 45 63 35 burc Burçlar ve özellikleri 40 spor Spor türleri ve tanınmış oyuncular Kullanıcı, girişi yaptığı andan itibaren program aşağıda verilen sözde koda göre çalışmaktadır. kullanıcı girişini al if (kullanıcı girişi selamlama.aiml de) then cevabı selamlama.aiml den üret {girişe uygun AIML dosyasını topics.aiml ile ara if (girişe uygun AIML dosyası bulundu) then cevabı bulunan AIML dosyasından üret {if (kullanıcı hakkında eksik bilgi var) then hakkında bir şeyler sor {if (hakkındaki veriler ile ilgili soru sorulmamış) then hakkında öğrendiği verilerle ilgili sorular sor konuyu var olan AIML dosyalarına çekmek için soru sor }}} Kullanıcı girişleri bir aiml dosyasının pattern leri içinde aranırken önce orijinal haliyle daha sonra joker karakter ve kelimeli halleriyle aranmaktadır. Kullanıcı girişlerinin, pattern leri içinde ilk arandığı Selamlama.aiml günlük konuşmalarda sık kullandığımız Merhaba, Nasılsın?, Güle güle, İyi Günler, vb. ve bunların kullanımda olan değişik formları içermektedir. Selamlama.aiml de bulunamayan girişler için topics.aiml kullanılarak cümleye uygun aiml dosyası bulunmaya çalışılır. Topics.aiml, her AIML dosyasına ait etiketlerin XML formunda hiyerarşik bir şekilde bulunduğu dosyadır. Örneğin bir cümlede maç, futbol, basketbol, vb. kelimeler geçerse spor.aiml de; film, aktör, 40 sinema, beyaz perde, vb. için sinema.aiml de pattern araması yapılır. Sistemin veri tabanında her kullanıcıya ait meslek, tuttuğu takım, en sevdiği sanatçı gibi alanlar bulunmaktadır. Cevabın aiml lerden üretilememesi durumunda sistem, konuşmayı sürdürebilmek için kullanıcıdan bu alanları doldurmak için bilgi alma yoluna başvurur. Sen hangi takımı tutuyordun?, Nerde yaşıyorsun? gibi sorular sorularak bu alanlar doldurulur. Bu alanların dolması halinde sistem yine kullanıcıyı etkilemek için daha önceden elde ettiği verileri soru olarak kullanıcıya yönlendirir. Kullanıcı en sevdiği yemeği sisteme pilav olarak belirttiyse, sistem bunu Pilav çok seviyorsun da yapabiliyor musun? gibi cümle içinde kullanarak konuşmanın sürekliliğini sağlanmaktadır. Bütün bu aramalar ve bilgi toplama yöntemleri haricinde cevabın yine bulunamaması durumunda sistem konuyu var olan AIML dosyalarına çekmek için onlar hakkında soru sormaktadır. Sistemde tüm kullanıcılarla yapılan diyaloglar her kişiye ait XML dosyalarında saklanmaktadır. Bu dosyaların analizi sayesinde sistem yöneticileri, sistemin iyileştirilmesi (aiml lerin güncellenmesi, topics.aiml nin geliştirilmesi vb.) için çalışmalar yapabileceklerdir. 5. Deneysel Sonuçlar Bu bölümde tasarlanan sohbet robotuyla yapılan diyaloglara çeşitli örnekler verilmiştir. BOT:Neden hayır? USER:evet BOT:Az önce hayır şimdi evet, komiksin. USER:evet BOT:Evet, evet, oyun mu oynuyoruz yaa. BOT:Bir evet bir hayır, pek kararsız gördüm seni. USER:ben sıkıldım BOT:Anlıyorum, ben de bazen sürekli konuşmaktan sıkılıyorum. Bu örnekte görüldüğü gibi sistem, devamlı tekrar eden durumları anlayıp kullanıcıyı başka cevaplar vermeye yönlendirmektedir. USER:hmm BOT:Hmm, senin burcunu merak ediyorum. USER:kova BOT:Sınırsız hayal güçleri olsa da Kova lar gerçekçi, ileri görüşlü ve akılcıdırlar. USER:Ooo bu nedir böyle yaa BOT:En sevdiğin yemek nedir? USER:kurufasulye BOT:Kurufasulye yemeği çok kilo aldırır bence

Bu örnekte sistem, kullanıcının hmm kelimesinden konuşmanın tıkandığını anlayıp konuyu bildiği alan olan burçlara çekmiştir. Daha sonra kullanıcıdan yine Ooo bu nedir böyle yaa cümlesini alınca veri tabanındaki patternlerden biriyle eşleştirememiş bu nedenle kullanıcının veri tabanında ayrılan hakkında kısmında daha önce sorulmayan en sevdiği yemek özelliğini kullanmıştır ve aldığı veriyi cümle içinde kullanarak bunu öğrendiğini göstermiştir. BOT:INSAAT MUHENDISIYIM işi yapıyorum demiştin. Daha önce ne işleri yapıyordun. USER:öğrenci oldum sadece BOT:Ben öğrenci değilim ama öğrencilerin dertlerini iyi bilirim USER:evet çok dertliydik BOT:Evet hayır mı oynuyoruz.. USER:oyun mu oynamak istiyorsun BOT:BARCELONA takımını tutuyorsun.bana renklerini söyler misin? USER:bordo mavi BOT:PILAV yemeğini çok seviyorsun.bu yemekten bana da yapar mısın? USER:yaparım da yiyemezsin BOT:TRABZON luyum demiştin.ordakiler de senin gibi çok konuşuyor mudur. BOT:Neden hayır? USER:konuşmazlar çok BOT:ISTANBULdan işe giderken çok trafik var herhalde. Bu agresiflik bundan mı? USER:agresif değilim BOT:Tamam öyle değilsin. Örneğin bu konuşma, kullanıcı hakkında tüm bilgiler toplandıktan sonra cevap bulunamaması durumunda oluşmuştur. Kullanıcını tuttuğu takım, sevdiği yemek gibi özellikleri veri tabanına kaydettiği için bunları kullanarak etkileme yöntemine başvurmuştur. 6. Sonuç ve Gelecek Çalışmalar Sohbet robotları, yapay zekanın varlığının testi için önerildikleri 1950 yılından bu yana bilgisayar dünyası için ilgi çekici alanlardan biri olmuştur. Günümüzde ise uzaktan eğitim, e-ticaret sitelerinde danışmanlık, arama motorları gibi birçok uygulama alanı bulmuşlardır. Bu projede, Türkçe konuşan bir sohbet robotu geliştirilmiştir. Sistem genel olarak, sohbet robotu çalışmalarında artık bir standart olarak kabul edilen AIML dosyaları ile çalışmaktadır. Kullanıcının söylediği cümlenin tamamı ya da bir bölümünün algılanarak, bu söz için önceden belirlenmiş olan karşılığın cevap olarak atanması, AIML'nin temel mantığıdır. Sistemle konuşmak, üyelik gerektirmektedir. Bu sayede konuşulan kişiye yönelik hitaplar oluşturulabilmekte ve kişisel bilgiler saklanabilmekte, sonraki konuşmalarda kullanılabilmektedir. Sistem tasarlanırken, dilin Türkçe olması bir takım sorunlar yaratmıştır. Türkçe'nin sondan eklemeli bir dil olması ve özellikle fiillerin çok fazla sayıda çekimi olması, ihtimalleri üstel olarak artırdığından cevap üretme süresini arttırmaktadır. Bu probleme çözüm için kullanıcı girişlerinin morfolojik analizden geçirilmesi düşünülmektedir. Sistemin temel taşı olan AIML'ler geliştirildikçe sisteminde başarısı artacaktır. Ancak AIML'lerin oluşturulması uzun bir süreç ve emek gerektirmektedir. Bunun için gelecek çalışma olarak AIML lerin, insan diyaloglarını içeren büyük veri tabanlarından (dizi film altyazıları vb.) otomatik olarak üretilmesi planlanmaktadır. 7. Kaynaklar [1] A. Turing, Computing Machines and Intelligence, Mind, Vol. LIX, 1950. [2] http://www.loebner.net/prizef/loebner-prize.html [3] G. Tatai, A Csord as, A. Kiss, L. Laufer and A. Szal o, The Chatbot Who Loved Me, Proceedings of the Embodied Conversational Characters as Individuals workshop of the 2nd International Joint Conference on Autonomous Agents and Multi-Agent Systems (AAMAS03), Australia, 2003. [4] J. Weizenbaum. ELIZA - A Computer Program for the Study of Natural Language Communication between Man and Machine. Communications of the ACM, 9(1):36-45, 1966. [5] R. Wallace, The Anatomy of A.L.I.C.E, Proceedings of International LISP Conference, Springer, 2002. [6] http://www.jabberwacky.com, R. Carpenter, 10 Mart 2010. [7] Ö. ÖZYURT, C. KÖSE, Türkçe Tabanlı Diyalog Sistemi Tasarımı ve Kodlanması, Elektrik- Elektronik-Bilgisayar Mühendisliği Sempozyumu ve Fuarı-ELECO'2006, pp. 364-368, 2006, Türkiye