Yapay Zeka

Visual Basic & Action script Yapay Zeka Programlama hakkında bilgi paylaş; Yapay Zeka simdi olayi biraz daha derinlestirelim. Mesela konusmayi algilayan sistemler Herkes öncelikle, böyle bir program için bü...
Cevapla
 
Seçenekler
  #1  
Arama 24-12-2007
Celebrian - ait Kullanıcı Resmi (Avatar)

Üyelik Tarihi: 19/11/07
Mesajlar: 3.877
 
     WS-Ticareti: (0)
Teşekkürleri: 0
27 Msg. 34 Tşkr.
Rep Gücü: 40 Celebrian rep gücü yükselmeye başladı

Yapay Zeka

Yapay 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
Alıntı ile Cevapla
Cevapla


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

Link vermek için alttaki kodu sitenize ekleyebilirsiniz.
Veya Ctrl+C ile Kopyalayınız
Örnek görünüm: Webmaster Sitesi