Ну такой простой вариант.
Стандартный вопрос бота..
Как дела?
Ответ юзера - Хорошо.
"Хорошо" - заносим в базу ответов на вопрос "как дела" от юзера.
Это очень обобщенный принцип. Нужен хороший лексический/синтаксический или как там его анализ + наверное сбор данных с поисковиков, соц сетей, etc.
На деле же над подобным трудятся далеко не рядовые кодеры.
http://www.cleverbot.com/ - неплохо так.
И обучается видимо по тому же принципу, что я написал.
Последний ответ его.