Дак чего ты, хардкодь в ООП. Делай дерево биологической семантики (вид, род, отряд, класс). Чтобы разобрать такие вещи как "он ел её семью своими глазами"
Затем строй деревья по всем объектам используя наследование. Чтобы появились стол/стул и прочие вещи.
И тут да, какой смысл именно ты заложишь в каждое слово. Например, что такое счастье? Можно долго размусоливать это слово. А можно дать чёткое определение, к примеру, "временное состояние, когда желание осуществилось (поставленная цель достигнута)". И всё это на придуманном вами мета-языке )
На каждое слово привязывай все возможные словоформы, включая написание с ошибками.
Затем делай обработку предложений, вытаскивай все возможные варианты смыслов.
Добавляй контекст, т.е. создавай личность ботам. Обмазывай это дело психологическими утехами (классификации личностей из разных исследований).
По предыдущим двум пунктам на варианты можно прикрутить веса этих смыслов.
Самое главное, у бота должна быть цель. Просто общение ни о чем не получится. Вот, к примеру, составить психологический портрет другого участника - это цель. Под неё необходимо задавать какие-то вопросы. При этом, навешивая психологию (это же модель, упрощённые базовые правила) получается, что и на вопросы надо отвечать боту, располагая к себе, чтобы можно было задавать более личные вопросы. Ну или не знаю, какая у вас цель. Найти проблему у человека и предложить возможность её решить, взяв комиссию, мда, было бы неплохо )