simdi olayi biraz daha derinlestirelim. Mesela konusmayi algilayan sistemler Herkes öncelikle, böyle bir program için bütün konusmalar için bir programlama girilmesi gerekiyor diye düsünebilir. Fakat yine ilk yazimdan bakarsaniz, hiçbir çocuk bu kadar soruya cevap veremez. Yapilacak bir yapay zeka sistemi yeni dogan bir çocuktur, bunu unutmayiniz. simdi ise ingilizce bakicaz . What are you doing What is she doing What am i doing simdi diyebilirizki bu üç cümle bilgisayar için aynidir. Çünkü üçünde de bir soru kelimesi "what " sonra "be " daha sonra "subject " en sona da fiil ve ek. iste burada gördügünüz gibi kaliplar aynidir. Sadece öznele ve bunlar için gelen olmak fiili degisiktir. Bunu bilgisayarda bir kalip olarak tanimlarsak thestring = "what " Buradaki subject1 yani özne i he she it we you they gibi öznelerdir. iste bu kadar. simdi isi biraz daha gelistirelim. Bu tip sorular için what ve sondaki ing sabittir. Sadece fiil ve özne degisir. thestring = "what ing" Böylece burada duruma göre cevap verilmesini sadece ve sadece verb adli fiile bagimiyabiliriz. bu parantezler içindekiler degisen fakat bilinen degerlerdir. Yani be ya are ya is yada am olur. sub1 de i he she it we you they. Soruyu belirliyen verb oldugu için kullandik. Diyelim bir konusma yapiyoruz ve bilgisayar bir arkadasimizla internetten konusuyor. Fakat biz onlarin konusmalarini göremiyoruz. Sadece konustuklarini biliyoruz. Bilgisayar diyorki "benim bir arkadasim var onunla internette konusuyorum". Bakin burada bir kisiden bahsedildi bu kisi bilgisayarin arkadasi. Bizde "O ne diyor? diyoruz simdi CurrentSubject diye bir degisken olsa ve bilgisayar son konusuyor oldugu kisileri bu degiskenlerin arrar'lerine kaydetse ve biz "O ne diyor desek" yani "what is he doing" desek çözmesi çok mu zor olur. Kesinlikle hayir Bilgisayar hemen bunu kaliplara ayirir. "what do " be zaten sabit, su1 i belirlemek için konusulan kisilerden seçim yapmaliyiz. O anda iki kisiyle konusuluyor. Birincisi siz, ikincisi internetten konustugu arkadasi. Programa öyle birsey yazariz ki program öznelerden biri bizsek su1 yerine bizi koymaz. Çünkü soruyu soran biziz. Burada bir sorun ortaya çikiyor. Eger kisi yani programla konusan kisi kendi hakkinda birsey sorarsa ne olacak? iste bunun için sorularda ilk eleme yapilmasi gerekir. Bütün sorularda "wh" soru kalibi veya how tan sonra "am" kalibi olmak fiili gelirse o zaman zaten hiç konusulan kullanicilardan seçim yapmaya gerek yoktur. RealString 'Kullanicinin bilgisayara söyleyecegi cümle TheString = Lcase TheString = Replace ( TheString, " i ", " ") TheString = Replace ( TheString, " you ", " ") TheString = Replace ( TheString, " we ", " ") TheString = Replace ( TheString, " he ", " ") TheString = Replace ( TheString, " she ", " ") TheString = Replace ( TheString, " it ", " ") TheString = Replace ( TheString, " they ", " ") if left (TheString, 2) = "i " then TheString = " " & Mid(TheString,2, len Goto RearCheck end if if left (TheString, 4) = "you " then TheString = " " & Mid(TheString,4, len Goto RearCheck end if if left (TheString, 3) = "he " then TheString = " " & Mid(TheString,3, len Goto RearCheck end if if left (TheString, 4) = "she " then TheString = " " & Mid(TheString,4, len Goto RearCheck end if if left (TheString, 3) = "it " then TheString = " " & Mid(TheString,3, len Goto RearCheck end if if left (TheString, 3) = "we " then TheString = " " & Mid(TheString,3, len Goto RearCheck end if if left (TheString, 5) = "they " then TheString = " " & Mid(TheString,5, len Goto RearCheck end if RearCheck: if right (TheString, 5) = " they" then TheString = left(TheString, len -4) & " " Goto CheckComplete end if if right (TheString, 3) = " we" then TheString = left(TheString, len -2) & " " Goto CheckComplete end if if right (TheString, 4) = " you" then TheString = left(TheString, len -3) & " " Goto CheckComplete end if if right (TheString, 4) = " she" then TheString = left(TheString, len -3) & " " Goto CheckComplete end if if right (TheString, 3) = " he" then TheString = left(TheString, len -2) & " " Goto CheckComplete end if if right (TheString, 2) = " i" then TheString = left(TheString, len -1) & " " Goto CheckComplete end if if right (TheString, 3) = " it" then TheString = left(TheString, len -2) & " " Goto CheckComplete end if CheckComplete: Tabi bunu fonksiyonel hale getirirsek daha kolay olur. Private Function ShowinStructure ' Dim txt As String txt = LCase txt = Replace if Left(txt, Len + 1) = Find & " " Then txt = Rep & Mid(txt, Len + 1, Len End if if Right(txt, Len + 1) = " " & Find Then txt = Left(txt, Len - Len & Rep End if ShowinStructure = txt End Function Bu sekilde ; TheString = ShowinStructure(TheString,"they"," ") TheString = ShowinStructure(TheString,"he"," ") TheString = ShowinStructure(TheString,"she"," ") TheString = ShowinStructure(TheString,"it"," ") TheString = ShowinStructure(TheString,"you"," ") TheString = ShowinStructure(TheString,"i"," ") TheString = ShowinStructure(TheString,"we"," ") Ayni islemi "Be" , "am", "is" , "are" içinde uygulayalim TheString = ShowinStructure TheString = ShowinStructure TheString = ShowinStructure TheString = ShowinStructure iste bu ve bunun gibi önerilerle, söylenen cümleyi kalip haline çevirip bilgisayarin anlamasi gereken formata sokmak mümkündür. Sonra bilgisayar buna uygun kalibi databaseden seçip ona göre bu soruyu yanitlayacak. Tabiki çok iyi bir data base hazirlamak gerekiyor. Ayrica dünyanin en iyi haber sitelerinden siteyi download edip buradaki verileri tarayarak bir haberi bünyesine katabilir. Daha sonra bir kisi veya olay ile ilgili veri istendiginde bu kayit ettigi verilerden tarama yapip bildiklerini sunabilir. Aynen Google da bunu yapmiyormu? Bir site kayit olurken anahtar kelimeleri giriliyor ve daha sonra biz bir sey aradigimizda bu anahtar kelimelere göre seçin yapiyor. Ayni islemi bilgisayara bir program ile yaptirmak daha kolaydir. Tabi bunlari biraz yorumlama gerekebilir. Bunun yani sira VB iDE teknolojisi veya MS VBScript ile fonksiyon yazan program yani program yazan program yapmak mümkündür . Bu sekilde program kendi kendini uygulama yaparak ve ögrendigi bilgileri degerlendirerek ögrenme yapabilmektedir. Yani kendini gelistiren bir sistem... 3. bölümü bekleyin. Saygilar Emre YAZICI University of Essex Artificial Intelligence