Invertovaný index

Invertovaný index je datová struktura , ve které pro  každé slovo ve sbírce dokumentů obsahuje odpovídající seznam všechny dokumenty ve sbírce, ve které se vyskytuje. K vyhledávání v textech se používá obrácený index.

Existují dvě varianty obráceného indexu:

Aplikace

Pojďme si popsat, jak řešíme problém hledání dokumentů, které obsahují všechna slova z vyhledávacího dotazu . Při zpracování jednoslovného vyhledávacího dotazu je odpověď již v obráceném indexu – stačí vzít seznam odpovídající danému slovu z dotazu. Při zpracování víceslovného dotazu se bere průsečík seznamů odpovídajících každému dotazovacímu slovu.

Ve vyhledávačích se obvykle po vytvoření seznamu dokumentů obsahujících slova z dotazu pomocí obráceného indexu dokumenty ze seznamu seřadí . Invertovaný index je nejoblíbenější datovou strukturou používanou při vyhledávání informací [2] .

Příklad

Mějme korpus tří textů a pak bude obrácený index vypadat takto: "it is what it is""what is it""it is a banana"

"a": {2} "banán": {2} "je": {0, 1, 2} "it": {0, 1, 2} "co": {0, 1}

Čísla zde označují čísla textů, ve kterých se příslušné slovo vyskytuje. Poté zpracování vyhledávacího "what is it"dotazu poskytne následující výsledek .

Funkce aplikace ve skutečných vyhledávačích

V seznamu výskytů slova v dokumentech jsou kromě id dokumentů obvykle uvedeny také faktory ( TF-IDF , binární faktor: „zda slovo trefilo nebo ne“, další faktory), které jsou použité v žebříčku. Index lze sestavit ne podle všech tvarů slov , ale podle lemmat (podle kanonických tvarů slov). Zastavovací slova lze vyloučit a nelze pro ně vytvořit index za předpokladu, že se každé z nich vyskytuje téměř ve všech dokumentech korpusu. Pro urychlení výpočtu průsečíků se používá heuristika skip-pointerů . Při zpracování požadavků obsahujících mnoho slov se využívá funkce quorum, která přeskočí do další fáze řazení části dokumentů, ve kterých nebyla nalezena všechna slova z požadavku.

Viz také

Poznámky

  1. Baeza-Yates, 1999 .
  2. Zobel, Moffat, Ramamohanarao, 1998 .

Literatura