Buna yapay zeka deniyor. Söz konusu bir makine değil de insan olduğunda programın tüm olasılıkları hesaplayabiliyor olması gerekiyor ki böyle bir şey mümkün değil. Ama kontrol yapıları ve biraz da algoritmayla yeterli düzeyde bir sistem oluşturabilirsiniz.
Örneğin bu algoritma istediğniz şeyin en basit şekilde anlatımı. Kullanıcı bir veri girer, program elindeki kalıplarla bu değeri karşılaştırır, eğer bir eşleşme bulursa o değere uygun bir cevap gönderir ve tekrar beklemeye başlar. Fakat burada olan asıl durum şu ki bu gibi bir algoritmayla çok ileri gidemezsiniz.
Gerçekten yandaki akışa göre yazılmış bir program düşünün. Böyle basit bir yapıda kullanıcılar sistemde önceden tanımlı yapıların dışına çıkamazlar. Örneğin merhaba demenin yüzlerce yolu vardır; selam, merhaba, merhaba bilgisayar, selamın aleyküm kardeş, nörüyon vs. vs. Eğer programı bu gibi basit bir yapı üzerine inşa edecek olursanız program "merhaba" mesajınıza cevap verecek ancak "merhabalar" mesajında dumur olacaktır. Bunu sağlamak için ya günlük dilde kullandığımız tüm sözcükleri ayrı ayrı sisteme girip on binlerce satırlık bir kontrol yapısı inşa edeceksiniz, ya da daha interaktif bir çözüm kullanacaksınız. Peki bu algoritmayı böyle değil de, şöyle yapsak nasıl olurdu;
Kelimeleri sisteme eklerken, bunları kategorilere ayırırız. 'Selamlamalar' adındaki bir listede şu kelimeleri aklımızda tutarız: "Selam, merhaba, hoşgeldin, günaydın, iyi akşamlar, iyi günler" Kullanıcı bir mesaj girdiğinde doğrudan mesajı kelimeyle eşleştirmeye çalışmak yerine, bu kategorilerdeki kelimelerin mesajın içerisinde bulunup bulunmadığına bakarız. Eğer kullanıcıdan alınan mesaj, Selamlamalar listesindeki herhangi bir kelimeyi içerisinde barındırıyorsa bunun bir selamlama mesajı olduğunu anlar, cevabımızı da ona göre veririz. Aynı şeyi diğer konularda da yapabiliriz.
Yapay zeka denen şeyi oluşturmaya çalışırken aslında biraz da kendimizi kandırıyoruz. Zeka sürekli öğrenen, kendini yenileyen ve geliişen bir yapıdır. Dolayısıyla bunu elektronik ortamda taklit etmek -şimdilik- olanaksızdır, ancak dediğim gibi dev kontrol yapılarıyla bir yere kadar bu ilüzyonu sürdürebiliriz. Yapay zeka (AI) için çalışmalar yapan ve özel programlama dilleri geliştiren bilim insanları ve mühendisler var. Bakalım ne kadar başarılı olabilecekler zira elimizdeki dillerle böyle bir şey çok ütopik kalıyor.
Ek Olarak: Bu konuyu başka bir arkadaşın açtığı
Yapay Zeka konusunda da tartışmıştık, göz atabilirsiniz.