Как найти выборку максимально близких чисел из массива? Задался задачей сделать поиск на сайте. В результатах к каждому найденному материалу должна отображаться небольшая вырезка, в которой упоминание ключевых слов поискового запроса максимальное.
Для этого разбиваю поисковый запрос на массив слов. Определяю их индекс (номера вхождений) в текст материала. И... Дальше не знаю что делать с этими числами. Допустим где начинаются мои ключи в полном тексте материала понятно, а как их грамотно вытащить оттуда? Как найти отрезок где они упоминаются чаще всего? То есть выборку чисел самых близких по значению?
Думал найти банально среднее арифметическое и уже от него искать просто ближайший ключ. Но это как то слабовато.

21 Авг 2019 в 06:12
140 +1
0
Ответы
1

Для поиска выборки наиболее близких чисел из массива можно воспользоваться алгоритмом сортировки массива и последующим определением расстояния между каждым числом и средним значением. Например, можно взять среднее арифметическое всех чисел в массиве и определить расстояние каждого числа от этого среднего значения. Затем отсортировать числа по возрастанию этого расстояния и выбрать, например, первые несколько чисел как наиболее близкие к среднему.

Чтобы определить отрезок, где ключевые слова упоминаются чаще всего, можно также использовать алгоритм подсчета количества упоминаний каждого ключевого слова в тексте и определить участок, где это количество максимально.

Надеюсь, это поможет вам в решении задачи поиска на сайте.

20 Апр в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 93 453 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир