Главное:
1. Без использования сторонних либ.
2. Без использования обучающих данных.
На этом можно закрыть вопрос. Если хочешь заниматься таким, учи Natural Language Processing.
Ну или машинное обучение имея например куча диалогов, скормить программе.
В любом из этих двух случае тебе нужна стороняя либа, обучающие данные только для второго.
Ну или тебе придётся писать эту либу самому, хотя бы самое необходимое из этой либы.
Но раз ты задаешь этот вопрос, скорее всего ты еще не дорос уровня программиста, чтобы быть в состоянии писать такой код, да и еще в одиночку, ведь над популярными либами работает не один человек.