![]() |
|
| |||||||
![]() |
| | Seçenekler |
|
#1
| ||||||
| ||||||
Yapay ZekaYapay Zeka 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(tükçem okul boyunca yeterince iyi degildi). 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 (ne)" sonra "be (olmak fiili)" daha sonra "subject (özne)" 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 [be] [su1] [doing]" Buradaki [su1] 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 [be] [su1] {verb}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 (bilgisayar ile) ve bilgisayar bir arkadasimizla (bay) 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 (yine çok çok basit düsünsek) CurrentSubject() diye bir (public veya private) degisken (arrayli) olsa ve bilgisayar son konusuyor oldugu kisileri bu degiskenlerin arrar'lerine kaydetse (veya ayni islemi bir collection ile de yapmak mümkün) ve biz "O ne diyor desek" (ki bunu ingilizce de belirtmek daha kolay - çünkü biz türkçede o'yu canli cansiz erkek kadin, hersey ve herkes için kullaniyoruz - halbuki ingilizcede erkekleri ; he - kadinlari ; she - cansiz varliklari veya hayvanlari ; it olarak belirtiyoruz) yani "what is he doing" desek çözmesi çok mu zor olur. Kesinlikle hayir Bilgisayar hemen bunu kaliplara ayirir. (yani yazilan yapay zeka programiyla) "what [be] [su1] do[ing]" 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 (veya bir çok diger kalip) 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 (RealString) TheString = Replace ( TheString, " i ", " [su1] ") TheString = Replace ( TheString, " you ", " [su1] ") TheString = Replace ( TheString, " we ", " [su1] ") TheString = Replace ( TheString, " he ", " [su1] ") TheString = Replace ( TheString, " she ", " [su1] ") TheString = Replace ( TheString, " it ", " [su1] ") TheString = Replace ( TheString, " they ", " [su1] ") if left (TheString, 2) = "i " then TheString = "[sub1]" & Mid(TheString,2,len(TheString)) Goto RearCheck end if if left (TheString, 4) = "you " then TheString = "[sub1]" & Mid(TheString,4,len(TheString)) Goto RearCheck end if if left (TheString, 3) = "he " then TheString = "[sub1]" & Mid(TheString,3,len(TheString)) Goto RearCheck end if if left (TheString, 4) = "she " then TheString = "[sub1]" & Mid(TheString,4,len(TheString)) Goto RearCheck end if if left (TheString, 3) = "it " then TheString = "[sub1]" & Mid(TheString,3,len(TheString)) Goto RearCheck end if if left (TheString, 3) = "we " then TheString = "[sub1]" & Mid(TheString,3,len(TheString)) Goto RearCheck end if if left (TheString, 5) = "they " then TheString = "[sub1]" & Mid(TheString,5,len(TheString)) Goto RearCheck end if RearCheck: if right (TheString, 5) = " they" then TheString = left(TheString,len(TheString)-4) & "[su1]" Goto CheckComplete end if if right (TheString, 3) = " we" then TheString = left(TheString,len(TheString)-2) & "[su1]" Goto CheckComplete end if if right (TheString, 4) = " you" then TheString = left(TheString,len(TheString)-3) & "[su1]" Goto CheckComplete end if if right (TheString, 4) = " she" then TheString = left(TheString,len(TheString)-3) & "[su1]" Goto CheckComplete end if if right (TheString, 3) = " he" then TheString = left(TheString,len(TheString)-2) & "[su1]" Goto CheckComplete end if if right (TheString, 2) = " i" then TheString = left(TheString,len(TheString)-1) & "[su1]" Goto CheckComplete end if if right (TheString, 3) = " it" then TheString = left(TheString,len(TheString)-2) & "[su1]" Goto CheckComplete end if CheckComplete: Tabi bunu fonksiyonel hale getirirsek daha kolay olur. Private Function ShowinStructure(Text As String, Find As String, Rep As String) ' Dim txt As String txt = LCase(Text) txt = Replace(txt, " " & Find & " ", " " & Rep & " ") if Left(txt, Len(Find) + 1) = Find & " " Then txt = Rep & Mid(txt, Len(Find) + 1, Len(txt)) End if if Right(txt, Len(Find) + 1) = " " & Find Then txt = Left(txt, Len(txt) - Len(Find)) & Rep End if ShowinStructure = txt End Function Bu sekilde ; TheString = ShowinStructure(TheString,"they","[su1]") TheString = ShowinStructure(TheString,"he","[su1]") TheString = ShowinStructure(TheString,"she","[su1]") TheString = ShowinStructure(TheString,"it","[su1]") TheString = ShowinStructure(TheString,"you","[su1]") TheString = ShowinStructure(TheString,"i","[su1]") TheString = ShowinStructure(TheString,"we","[su1]") Ayni islemi "Be" , "am", "is" , "are" içinde uygulayalim TheString = ShowinStructure(TheString, "be","[be]") TheString = ShowinStructure(TheString, "am","[be]") TheString = ShowinStructure(TheString, "is","[be]") TheString = ShowinStructure(TheString, "are","[be]") 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 (inet veya winock yardimi ile) 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 (ya google sitesinden yada web sayfasindan <HEAD> ve </HEAD> taglari arasina) 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 (Script Control) ile fonksiyon yazan program yani program yazan program yapmak mümkündür(programin dizayni önemli degil - zaten bir textbox ile veri alinacak bir textbox ile gösterilecek). Bu sekilde program kendi kendini uygulama yaparak (bilgileri kiyaslayarak) ve ögrendigi bilgileri degerlendirerek ögrenme yapabilmektedir. Yani kendini gelistiren bir sistem... 3. bölümü bekleyin. Saygilar Emre YAZICI University of Es*** Artificial Intelligence |
![]() |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konu Açanlar | Forum | Cevaplar | Güncel Mesajlar |
| Yapay Zeka Nedİr? | haberiz | Makaleleriniz | 0 | 30-01-2008 02:03 |
| Yapay zeka örneği: Satranç oyunu (javascript ile) | banias | Javascript kodları | 0 | 25-11-2007 09:51 |
| Yapay Zeka Tarihçesi | Celebrian | Felsefe | 0 | 20-11-2007 04:19 |
| Ruhsal Zeka | Celebrian | Felsefe | 0 | 20-11-2007 03:09 |
| Duygusal Zeka | Celebrian | Felsefe | 0 | 20-11-2007 12:20 |