Інвертований індексІнвертований індекс (англ. inverted index) — структура даних, в якій для кожного слова колекції документів у відповідному списку перераховані всі документи в колекції — в яких воно зустрілося. Інвертований індекс використовується для пошуку за текстами. Є два варіанти інвертованого індексу:
ЗастосуванняОпишемо, як вирішується завдання знаходження документів, в яких зустрічаються всі слова з пошукового запиту. При обробці однослівного пошукового запиту відповідь вже є в інвертованому індексі — достатньо взяти список, відповідний слову із запиту. При обробці багатослівної запиту беруться списки, відповідні кожному зі слів запиту і пересічні. Зазвичай в пошукових системах після побудови за допомогою інвертованого індексу списку документів, що містять слова із запиту, йде ранжування документів зі списку. Інвертований індекс — це найпопулярніша структура даних, яка використовується в інформаційному пошуку.[2] ПрикладНехай у нас є корпус з трьох текстів
"a": {2} "banana": {2} "is": {0, 1, 2} "it": {0, 1, 2} "what": {0, 1} Тут цифри позначають номери текстів, у яких зустрілося відповідне слово. Тоді відпрацювання пошукового Особливості застосування в реальних пошукових системахУ списку входжень слова в документи крім id документів зазвичай також зазначаються фактори (TF-IDF, бінарний фактор: «потрапило слово в заголовок або не потрапило», інші фактори), які використовуються при ранжируванні. Індекс може будуватися не за всіма словоформам, а по лемам (по канонічних форм слів). Стоп-слова можна виключити і не будувати для них індекс, вважаючи що кожне з них зустрічається майже у всіх документах корпусу. Для прискорення обчислення перетинань використовують евристику skip-pointer-ів. При обробці запитів, що містять багато слів, використовують функцію кворуму, яка пропускає на наступну стадію ранжирування частина документів, в яких зустрілися не всі слова із запиту. Див. ТакожПосилання
|