Лучше храните слова в том же json + один класс который это все будет обрабатывать и давать результат
Конечно говнокод, это же для 1000 слов 1000 таких if ?
E6apb: даже через switch это грустно
Используйте бд, или для больших объемов elastic search, или отдельно даже простейший txt по которому пройдется функция
можно хранить в формате method\word\answer
1. Смотрите switch-case
2. Используйте рекурсивный спуск по веткам наилучших соответствий для выдачи (отображения/echo) нужных вариантов ответа.
UPD: Если хочется реально круто сделать:
Советую попробовать сравнение через Stumper API.
По наибольшему проценту совпадения с имеющимися у вас фразами - даёте нужный ответ.