Я только новичок в поиске информации.
Я ищу решение проблемы, когда пользователь ошибочно добавляет пробел между символами при наборе слова или объединяет два слова в одно, что на данный моментне удается обработать из-за простого поиска в перевернутом индексе.
Допустим, я перевернул индекс следующих документов:
- Джек и Джилл хорошие друзья.
- Джек ушелна Аляску.
- Джилл живет в Нью-Йорке.
Теперь иметь инвертированный индекс - значит, что new и york проиндексированы как отдельные токены (при условиипросто в качестве примера, и НЛП не используется для обозначения Нью-Йорка как Местоположения)
token count location
jack 2 1,2
jill 2 1,2
new 1 3
york 1 3
alaska 1 4
Теперь для Query jack я получу местоположения 1,2, что хорошо.
Но для запроса Нью-Йорк (при условии, что запрос без пробела), как я могу получить Нью-Йорк из индекса, который будет иметь местоположение 3 (объединено).
А также для запроса ala ska (с пробелами), как я могу получить маркер alaska (без пробела в индексе) соответственно.
Любые предложения илилюбые конкретные алгоритмы, которые я пропускаю.
Я только начинающий в поиске информации.
Спасибо за вашу помощь.
Я подумываю сломать каждый маркер запросав комбинацию символ-грамм и, наконец, объедините их, чтобы найти наиболее распространенные токены.
For пример запроса newyork
Найдите все токены до предельного n, начиная с n ... затем ne .... затем new .... затем newy .. .. и т. д., аналогично ne .. ew ... wy..yo..or..rk ...,
, который, наконец, после объединения массива получит new и Йорк где-то ..
Аналогично запросу ala ska (разбил слово на пробел(ы)) * +1066 *