Думаю, сперва нам стоит определиться с тем, какую именно задачу мы будем решать:
- если нам нужно извлечь упоминаемые пользователем сущности, обработать их и подставить в шаблонный ответ (возможно - один из многих) - эта, похоже, задача для NER (named entity recognition)
- если задача сводится к выбору одного из конечного множества классов - это задача, собственно, классификации (возможно, решаемой не совсем "в лоб" - но таки классификации)
- если задача не сводится к двум вышеуказанным - то что это за задача?
з.ы. на php я бы врядли рассчитывал. Во всяком случае - прототип наверняка будет проще накидать на python-е с его вагонами и телегами библиотек для NLP и ML.