1-2 yıl önce bir anlık mesajlaşma uygulaması* için benzer bir proje üzerinde çalışmaya başlamıştım. Daha sonra yazışma özelliği geri planda kaldı fazla geliştirmedim ancak belki biraz fikir verir diye bahsedeyim. Ayrıca şuradan yazışma örneğine bakabilirsin botisko-konusma.txt

Yazılan mesajı temizleyip ilk kelimeye göre işlem yapıyor, gerekirse ikinci ve gerekirse üçüncü kelimeyi de kontrol edip ona göre bir dizide tanımlanmış cevaplardan birini rastgele ve bir önceki mesajla aynı olmayacak şekilde seçerek gönderiyor. Uygun bir mesaj yoksa rastgele hazırlanmış ancak konuyla alakasız olsa da mesajı anlamadığını çaktırmayacak şekildeki cevaplardan birini seçiyor. Sadece bu şekilde bile etkileyici şekilde mantıklı cevaplar verebiliyor. Ancak çok güzel saçmaladığı zamanlar da yok değil. :)

Yukarıdaki gibi bir işlem yapıldığında mesajın tamamı işlenemiyor ve daha mantıklı cevaplar verebilecekken bunu yapamıyor. Mesajın tamamını işlemek için de şöyle bir şey yapmıştım. Veritabanında mesajlar imla kurallarına uygun şekilde tutuluyor. Gelen mesaj veya benzeri (LIKE) veritabanında varsa rastgele bir cevap alınıyor. Gelen mesaja uygun bir cevap yoksa son kelimeyi silip ona göre mesaj arıyor. O da yoksa ilk kelimeyi silerek bir cevap var mı diye kontrol ediyor. Bu işlem mesaj bitene kadar devam ettirilebilir. Ve uygun cevap yoksa yine rastgele seçilmiş cevaplardan biri gönderilebilir.

Gelen mesajlardaki imla hataları Google veya veritabanında tutulan doğru yazımlar sayesinde düzeltilebilir. Benim bu kısmı tamamlayacak vaktim olmadı.