Как насчет решения в лоб - установить скользящее окно, равное количеству слов во "врезке", и пройти весь текст, подсчитывая суммарное количество слов, попавших в окно в этой позиции или сумму их весов, если у слов разные приоритеты. Значение суммы весов, попавших в скользящее окно в текущей позиции, вычисляется изменением предыдущего значения окна - одна позиция текста (у "головы" окна) вошла (увеличиваем сумму, если слово было "поисковым") и одна позиция (у "хвоста") вышла (уменьшаем сумму, если слово было "поисковым").