Скажем, у меня предложение: «Джон любит принимать его домашнее животное баранину в его Lamborghini Huracan больше, чем в его Lamborghini Gallardo» и у меня есть словарь, содержащий «Lamborghini», " Lamborghini Gallardo "и" Lamborghini Huracan ". Каков хороший способ извлечения смелых терминов, достижения терминов «Lamborghini Gallardo» и «Lamborghini Huracan» в качестве фразовых совпадений и других частичных матчей «Lamborghini» и «lamb»? Предоставление предпочтения фразе соответствует отдельным ключевым словам.Частичное и полное фразовый
Эластичный поиск обеспечивает точное совпадение сроков, совпадение фразы и частичное совпадение. Точный срок, очевидно, не будет работать здесь, и ни одна из них не соответствует фразе, поскольку в этом случае все предложение считается фразой. Я считаю, что частичное совпадение было бы уместным, если бы у меня были только ключевые слова, представляющие интерес для предложения. Просматривая предыдущие SO-потоки, я нашел proximity for relevance, который кажется уместным, хотя не уверен, что это «лучший вариант», поскольку требует установки порога. Или даже если есть более простые/лучшие альтернативы, чем elasticsearch (что больше похоже на полнотекстовый поиск, а не на простое сопоставление ключевых слов с базой данных)?
Спасибо за ваш информативный ответ Питер. Поскольку мой словарь содержит ключевые слова и фразы, которые я хочу сопоставить (вместо документов), черепица не требуется для базы данных, нет? Я думал об использовании черепицы, наоборот; создайте черепицу из пользовательских терминов поиска, затем либо выполните «нормальные» точные совпадающие запросы с этими черепицами, чтобы идентифицировать битрамы или триграммы, либо использовать частичное совпадение и усиление оценки для самой длинной согласованной черепицы (сделанной по умолчанию). Таким образом, я могу также проверить орфографические ошибки, а также определить ключевые фразы. Имеет ли это смысл? – dter
Исправить.Эта черепица поможет вам на стороне запроса избежать совпадения отдельных терминов в ваших ключевых фраз. Вероятно, вы могли бы сделать что-то подобное с фразовыми запросами, но поскольку вы не можете контролировать, какие термины вводятся поисковиками, возможно, черепица приблизит вас к тому, где вы хотите быть. –
Таким образом, я надеялся, что черепица позволит сопоставлять биграмм/триграмм, нечеткий фильтр позволит использовать опечатки, усиление даст самое близкое соответствие, а синонимы - синонимы. Удивительно, если этот подход более простой и более/одинаково) эффективен как обучение модели распознавания имен по имени ... – dter