При оценке веса документа относительно поискового запроса помимо классической оценки документа через вес отдельных терминов запроса можно учитывать вес фрагментов документа, которые содержат несколько термов запроса в пределах одного окна фиксированного размера.
Разбиение на фрагменты может быть статическим и динамическим, а также в качестве фрагментов может хранится информация о парах слов в документе. В последнем случае имеет смысл статистическими методами определять среди всевозможных пар соседних слов устойчивые словосочетания и хранить их в качестве псевдотерма в индексной структуре. Статическое разбиение может сохранять информацию в каком предложении встретился тот или иной терм. Динамическое же уточняет оценку веса документа, находя все релевантные запросу «окна» определенной длины.
Возможная уточненная оценка может иметь вид W= Wt+Ww, где Wt –вес документа, полученный на основе анализа наличия терминов запроса в нем, без учета взаимного расположения этих терминов, а Ww – суммарный вес фрагментов документа, релевантных запросу.
Ww= Wphr (сумма по всем отобранным фрагментов).
Вес фрагмента может быть вычислен согласно предположениям, что чем ближе находятся слова запроса, тем вес фрагмента больше. Помимо этого устойчивые словосочетания (которые встречаются в многих документах коллекции) также должны иметь больший вес. И количество искомых слов во фрагменте тоже должно влиять на его вес.
Wphr=log Ndoc*Wdist
Где Ndoc – число документов, содержащих фрагмент с теми же словами, Wdist – вес фрагмента на основе расстояний между словами. В качестве этого веса можно использовать пороговую функцию, равную константе если расстояние между словами меньше некоторого порога и нулю, если расстояние больше. Также возможны линейная и квадратичная функция.
Wdist=(L-Ndist)*(Wmax-Wmin)+Wmin
Wdist=(L-Ndist)2*(Wmax-Wmin)+Wmin
Где Wmin и Wmax – заданные максимальный и минимальный возможный вес фрагмента, L – размер окна, Ndist расстояние между максимально удаленными словами, встретившимися в окне.
Выделение фрагментов происходит методом скользящего окна. Окно движется, выделяя последовательно, со сдвигом в одно слово, фрагменты документа, и его вес увеличивается при появлении каждого нового термина в окне. Тем самым вес растет вес документа при увеличении числа искомых слов запроса в нем.
Для реализации оценки с помощью скользящего окна потребуется в индексной структуре хранить информацию о позициях появления каждого из слов запроса. Тогда алгоритмом, подобным многопоточному слиянию массивов, в процессе оценки документа просматривается массив встречаемости всех искомых терминов в документе и вычисляется оценка каждого из отобранных фрагментов.