Я работаю над приложением, в котором пользователь задает ряд вопросов. Эти вопросы представляют собой текст произвольной формы, но основаны на конкретном продукте, поэтому у меня есть общее представление о контексте. У меня есть список часто задаваемых вопросов, и я должен попытаться сопоставить вопрос пользователя с вопросом в FAQ.
Мой язык Delphi. Мой общий подход состоит в том, чтобы выбрасывать небольшие «мусорные слова», a, an, the, of, by, и т. Д. ... Запустить программу-основу над этими словами, чтобы получить корневые слова, а затем попытаться сопоставить столько из оставшихся слов, как это возможно.
Есть ли лучший подход? Я думал о каком-то типе обработки естественного языка, но я боюсь, что буду смотреть на годы разработки, а не на неделю или две.