Всем привет.
Ситуация такая: В БД есть эталонные строки. Есть голосовой API, который возвращает строку, которую произнёс пользователь. Как найти самую похожую строку в базе?
Например строки "включи свет на улице", "включи уличный свет", "включи уличное освещение" есть равносильные и ведут на одну эталонную фразу. Когда как "включи свет на улице" и "включи свет на крыльце" есть разные строки.
Т.е. как я понимаю, нужен поиск с учётом изменения порядка слов и заменой их на синонимы, но ничего вразумительного найти не смог.
Подскажите, или натолкните пожалуйста в верную сторону мои мысли.
1. Dragon_Knight - 31 Марта, 2017 - 19:59:23 - перейти к сообщению
2. Строитель - 31 Марта, 2017 - 21:40:13 - перейти к сообщению
Dragon_Knight, не знаю поможет ли вам этот демо-пример, т.к. он построен на основе регулярных выражений, но я предполагаю - суть вам будет понятна.
Чтобы не сохранять набор предложений, можно организовать поиск по словосочетаниям не полных слов. Примерно так:
Чтобы не сохранять набор предложений, можно организовать поиск по словосочетаниям не полных слов. Примерно так:
Спойлер (Отобразить)
Подобный принцип можно использовать и в БД, например с оператором LIKE.