у меня в свое время была идея создать программируемого бота, который состовляет прогноз на будуще пользуясь фактами. сама проблема в фактах оказалась. проект был заброшен. а бота самообучаещегося достаточно просто составить алгоритм:
Режим обучения: вводишь слово, говоришь описание, и прочее.
Режим разговора: основные функции: рандом и иф. проект достаточно легкий, но самое сложное - обучить.