SYSTEMY WYSZUKIWANIA INFORMACJI
Agnieszka Nowak - Brzezi«ska
18 listopada 2019
Metoda list inwersyjnych
Metoda klasyczna + modykacje (bez dekompozycji) Wykªad 5
Listy inwersyjne - ¹ródªa internetowe
https://algo2.iti.kit.edu/download/ti_ss13_lec3.pdf https://repo.palkeo.com/algo/information-retrieval/
inverted-index/inverted%20index%202.pdf
http://www.cs.cornell.edu/courses/cs4300/2013fa/lectures/
inverted-indexes-4pp.pdf
http://www.ipipan.waw.pl/~klopotek/BEATCA/pdf/InvLists.doc
Ogólna idea metody
Rozwa»amy system informacyjny jako uporz¡dkowan¡ czwórk¦
S = hX , A, V , ρi. Zakªadamy, »e kartoteka wtórna ma nast¦puj¡c¡
zawarto±¢:
A B C
x1 a1 b1 c1 x2 a1 b1 c2 x3 a2 b2 c3 x4 a2 b2 c4 x5 a1 b2 c1 x6 a1 b2 c2 x7 a2 b2 c3 x8 a2 b2 c4
Tworzenie kartoteki wyszukiwawczej
Zadany jest system wyszukiwaniaS , a wi¦c zbiór obiektów X , atrybutów A, warto±ci tych atrybutówV oraz funkcja informacji ρ .
Zakªadamy, »e obiekty opisane s¡ iloczynem odpowiednich niezaprzeczonych deskryptorów. Opisy obiektów tx
umieszczone s¡ w dowolny sposób w pami¦ci maszyny cyfrowej.
Ogólna idea metody
W metodzie list inwersyjnych wyodr¦bniamy zbiór wszystkich deskryptorów systemuS zbiór D , oraz funkcj¦
przyporz¡dkowuj¡c¡ adresyµ : X → N , gdzieN zbiór adresów. Funkcja µka»demu obiektowi w systemie przyporz¡dkowuje pewien adres, b¦d¡cy liczb¡ naturaln¡
(caªkowit¡, dodatni¡), ale tak, »e dwóm obiektom
przyporz¡dkuje ten sam adres, je±li b¦d¡ miaªy identyczne opisy.
µ(x ) = µ(y ) ⇔ tx = ty
Je±li adresy obiektów x1, . . . , xn b¦d¡ odpowiednio: n1, . . . , nm
to stosuj¡c funkcj¦ µ(adresuj¡c¡) w nast¦puj¡cy sposób:
µ : X → N przy czymµ(x ) = µ(y ) ⇔ tx = ty przypisujemy ten sam adres obiektom o takich samych opisach
deskryptorowych.
Tworzenie kartoteki wyszukiwawczej
Tworzymy listy adresów tych obiektów, które w swoim opisie zawieraj¡ deskryptor di ( di ∈ tx ).
Listy takie nazywa¢ b¦dziemy listami inwersyjnymi i oznacza¢ b¦dziemy α(di) :
α(di) = {n1, . . . , nz}, gdzie: di = (ai, vi), ai ∈ A, vi ∈ Vai
Tworzymy tyle list inwersyjnych, ile w systemie wyst¦puje deskryptorów di .
W realizacji komputerowej przy du»ej liczbie obiektów listy inwersyjne s¡ listami adresów obiektów. W innych realizacjach w listach inwersyjnych mog¡ wyst¡pi¢ wprost obiekty.
Tworzenie kartoteki wyszukiwawczej - na egzamin !
Kartotek¦ wyszukiwawcz¡ tworz¡ listy inwersyjne. Listy inwersyjne tworzymy dla wszystkich deskryptorów ze zbioruD . Lista
inwersyjna zawiera adresy tych wszystkich obiektów, które w swoim opisie posiadaj¡ deskryptordi , dla którego tworzona jest lista.
Lista inwersyjna - denicja
List¦ adresów obiektów, które zawieraj¡ w swoim opisie deskryptor di nazywamy list¡ inwersyjn¡ α(di).
α(di) = {n1, n2, . . . , ni} , gdzieni - adres kolejnego obiektu, który w swoim opisie zawiera deskryptordi .
Wyszukiwanie informacji
Pytania do tak zdeniowanego systemuS zadajemy w postaci termut b¦d¡cego sum¡ termów skªadowych t = t1+ . . . + tm . Rozpatrzymy 2 przypadki:
Termy skªadowe pytania mog¡ by¢ pojedynczymi deskryptorami.
Termy skªadowe maj¡ posta¢ iloczynu deskryptorów.
Wyszukiwanie informacji
Termy skªadowe pytania mog¡ by¢ pojedynczymi deskryptorami:
a wi¦c termt jest postaci: t = d1+ d2+ d3+ . . . + dk wówczas:
Odpowied¹ na pytaniet otrzymujemy bezpo±rednio przez
wygenerowanie list inwersyjnych dla deskryptorów wyst¦puj¡cych w pytaniu. Zatem:
σ(t) = α(d1) ∪ α(d2) ∪ . . . ∪ α(dk).
Termy skªadowe maj¡ posta¢ iloczynu deskryptorów
wówczas odpowied¹ na term t jest sum¡ odpowiedzi na termy skªadowe: σ(t) = σ(t1) ∪ σ(t2) ∪ . . . ∪ σ(tm).
Odpowied¹ na term skªadowyti otrzymujemy jako przeci¦cie (cz¦±¢
wspólna) list inwersyjnych zwi¡zanych z deskryptorami wyst¦puj¡cymi w pytaniuti :
σ(ti) = α(d1) ∩ α(d2) ∩ . . . ∩ α(dk) , gdzieti = d1d˙2. . . ˙˙ dk . σ(ti) = {x ∈ X , µ(x ) = ni} orazni ∈ N0 =T
jα(dj) , gdzie N0 ⊆ N , a dj ∈ ti .
Redundancja
Metoda, ta wnosi du»¡ redundancj¦ (powtarzanie si¦ obiektów w listach inwersyjnych), któr¡ mo»na zapisa¢ wzorem:
R = Pr
i =1α(di) − N N gdzie:
r - liczba deskryptorów w systemie, N - liczba obiektów (lub adresów) α(di) - dªugo±¢ listy inwersyjnej.
Przykªad
rozwa»amy system informacyjny jako uporz¡dkowan¡ czwórk¦
S = hX , A, V , ρi. Zakªadamy, »e kartoteka wtórna ma nast¦puj¡c¡
zawarto±¢:
A B C
x1 a1 b1 c1 x2 a1 b1 c2 x3 a2 b2 c3 x4 a2 b2 c4 x5 a1 b2 c1 x6 a1 b2 c2 x7 a2 b2 c3 x8 a2 b2 c4
Denicja formalna systemu S = hX , A, V , ρi
X = {x1, . . . , x8} - zbiór obiektów, A = {A, B, C }- zbiór atrybutów, Zbiór warto±ci atrybutów:
VA= {a1, a2}, VB = {b1, b2}, VC = {c1, c2, c3, c4} Budujemy zbiór deskryptorów D:
D = {(a, a1), (a, a2), (b, b1), (b, b2), (c, c1), (c, c2), (c, c3), (c, c4)}
Funkcja adresuj¡ca µ
A B C
x1 a1 b1 c1 x2 a1 b1 c2 x3 a2 b2 c3 x4 a2 b2 c4 x5 a1 b2 c1 x6 a1 b2 c2 x7 a2 b2 c3 x8 a2 b2 c4
Nadajemy obiektom adresy zgodnie z funkcj¡
µ(x ) = µ(y ) ⇔ tx= ty
µ(x1) →1, µ(x2) →2, µ(x3) →3,µ(x4) →4, µ(x5) →5, µ(x6) →6, µ(x7) →3 oraz µ(x8) →4
Kartoteka Wyszukiwawcza:
Tworzymy listy inwersyjne dla ka»dego deskryptora di nale»¡cego do zbioru D:
Kartoteka wyszukiwawcza:
α(a, a1) = {1, 2, 5, 6}
α(a, a2) = {3, 4}
α(b, b1) = {1, 2}
α(b, b2) = {3, 4, 5, 6}
α(c, c1) = {1, 5}
α(c, c2) = {2, 6}
α(c, c3) = {3}
α(c, c4) = {4}
Wyszukiwanie odpowiedzi na pytania
Na pytanie jednodeskryptorowet = (c, c2)
Przeszukujemy wszystkie listy inwersyjne i znajdujemy list¦ z deskryptorem pytaniat :
t α(a, a1) a wi¦c to nie jest szukana lista inwersyjne, szukamy wi¦c dalej. . .
t α(a, a2) a wi¦c to nie jest szukana lista inwersyjne, szukamy wi¦c dalej. . .
t α(b, b1) a wi¦c to nie jest szukana lista inwersyjne, szukamy wi¦c dalej. . .
t α(b, b2) a wi¦c to nie jest szukana lista inwersyjne, szukamy wi¦c dalej. . .
t α(c, c1) a wi¦c to nie jest szukana lista inwersyjne, szukamy wi¦c dalej. . .
t ≤ α(c, c2) wreszcie znale¹li±my list¦, która da nam odpowied¹ na pytaniet .
Przerywamy przeszukiwanie list i tworzymy odpowied¹ na pytanie:
σ(t) = α(c, c2) = {2, 6} = {x2, x6}
Wyszukiwanie odpowiedzi na pytania
Na pytanie wielodeskryptorowet = (b, b2)(c, c2) + (a, a2)
Gdy pytanie jest w postaci sumy termów skªadowych, to odpowied¹ na ka»dy term skªadowyti znajdujemy jako:
σ(ti) = α(d1) ∩ α(d2) ∩ . . . ∩ α(dk) , gdzieti = d1d˙2. . . ˙˙ dk . A wi¦c:
t = (b, b2)(c, c2) + (a, a2) = t1+ t2 gdzie
t1 = (b, b2)(C, c2) i
t2 = (a, a2).
A wi¦c teraz odpowiadamy na ka»de z pyta« skªadowych. ....
t1= (b, b2)(C, c2) t2= (a, a2) 1. Szukamy listy inwersyjnej dla pierwszego de-
skryptora pytania t1, a wi¦c deskryptora (B, b2) 1. Szukamy listy inwersyjnej dla pierwszego (jedynego) deskryptora pytania t2, a wi¦c deskryptora (A, a2)
(b, b2) α(A, a1) (a, a2) α(A, a1)
(b, b2) α(a, a2) (a, a2) ≤ α(a, a2)
(b, b2) α(B, b1) A wi¦c:
(b, b2) ≤ α(B, b2) σ(t2) = α(A, a2) = {2, 4, 6}
A wi¦c: α(B, b2) = {3, 4, 5, 6}
2. Szukamy listy inwersyjnej dla drugiego deskryp- tora pytania t2, a wi¦c deskryptora (C,c2) (C , c2) α(A, a1)
(C , c2) α(a, a2) (C , c2) α(B, b1) (C , c2) α(B, b2) (C , c2) α(C, c1) (C , c2) ≤ α(C, c2) A wi¦c: α(C, c2) = {2, 6}
3. Budujemy odpowied¹ na pytanie t1, jako prze- ci¦cie list inwersyjnych dla deskryptorów (B, b2) oraz (C, c2)
α(B, b2) ∩ α(c, c2) = {3, 4, 5, 6} ∩ {2, 6} = {6}
σ(t1) = {6} σ(t2) = {2, 4, 6}
Odpowied¹ na peªne pytanie t uzyskamy jako suma odpowiedzi na pytania skªadowe:
σ(t) = σ(t1) ∪ σ(t2) ∪ . . . ∪ σ(tm) W naszym przypadku:
σ(t) = σ(t1) ∪ σ(t2) = {6}∪{2, 4, 6} = {2, 4, 6} = {x2, x4, x8, x6}
Uwaga ! Nale»y uwa»nie przyjrze¢ si¦ odpowiedzi na pytaniet . Otó» odpowiedzi¡ s¡ adresy {2, 4, 6} ale pami¦tajmy, »e pod adresem 4 kryj¡ si¦ dwa obiekty {x4} i {x8}.
Redundancja
Okre±lamy wielko±¢ redundancji w systemieS :
R = Pr
i =1α(di) − N N
Gdzie: r liczba deskryptorów, u nas jest ich 8 N - liczba adresów obiektów, a wi¦c 6
R = (4 + 2 + 2 + 4 + 2 + 2 + 1 + 1) − 6)
6 =2
Redundancja, a wi¦c nadmiar informacji w stosunku do przyj¦tego minimum wynosi 2.
Daje si¦ to bardzo ªatwo wytªumaczy¢: Otó» ka»dy adres
(1,2,3,4,5,6) jest przechowywany w listach inwersyjnych α(A, a1), α(a, a2), . . ., α(C, c4) dokªadnie 3 razy. Np. adres 1 wyst¦puje na li±cie α(A, a1), α(B, b1) oraz α(C, c1). Z tych 3 wyst¡pie«
powiemy, »e raz potrzebnie, a 2 nadmiarowo.
Modykacje metody list inwersyjnych
PORZDKOWANIE ADRESÓW OBIEKTÓW NA LISTACH PORZDKOWANIE LIST
WG DUGOCI LEKSYKOGRAFICZNIE
WG CZSTOCI WYSTPOWANIA DANYCH DESKRYPTORÓW W PYTANIU
TWORZENIE LIST ZREDUKOWANYCH
ZAZNACZANIE PRZEDZIAÓW ADRESÓW
LISTY DLA PAR DESKRYPTORÓW Z ZAZNACZENIEM CZSCI WSPÓLNEJ
LISTY WIELODESKRYPTOROWE
USUWANIE LIST DUGICH LISTY ZANEGOWANE
TWORZENIE LIST DLA PEWNEGO PODZBIORU DESKRYPTORÓW DEKOMPOZYCJE
ATRYBUTOWA OBIEKTOWA
MODYFIKACJE poprawiaj¡ce czas wyszukiwania odpowiedzi
1 porz¡dkowanie adresów obiektów na listach inwersyjnych
2 porz¡dkowanie list inwersyjnych (wg dªugo±ci, cz¦sto±ci czy leksykogracznie)
PORZDKOWANIE ADRESÓW OBIEKTÓW NA LISTACH
listy nieuporz¡dkowane:
α(d1) = {13, 2, 9, 25, 27, 43, 40, 39}
α(d2) = {9, 8, 2, 13, 10, 22, 16, 14, 25, 37, 27, 43}
σ(t) = α(d1) ∩ α(d2)(konieczno±¢ przeci¦cia list d1 i d2)
liczba porówna« w tym celu: 4 + 3 + 1 + 9 + 11 + 12 + 12 + 12 listy uporz¡dkowane:
α(d1) = {2, 9, 13, 25, 27, 39, 40, 43}
α(d2) = {2, 8, 9, 10, 13, 14, 16, 22, 25, 27, 37, 43}
liczba porówna« w tym celu: 1 + 2 + 2 + 4 + 1 + 2 + 2 + 2 Zalety: krótszy czas wyszukiwania, skraca si¦ czas przeci¦cia list.
Aktualizacja: +: pogarsza, nale»y porz¡dkowa¢ listy po ka»dej aktualizacji, −: upraszcza si¦, modykacja opisu obiektu: konieczna
PORZDKOWANIE LIST WG DUGOCI
Kartoteka wyszukiwawcza:
α(c, c3) = {3}
α(c, c4) = {4}
α(b, b1) = {1, 2}
α(c, c1) = {1, 5}
α(c, c2) = {2, 6}
α(a, a1) = {1, 2, 5, 6}
α(a, a2) = {3, 4}
α(b, b2) = {3, 4, 5, 6}
Zalety: wpªywa to na czas przeci¦cia list inwersyjnych (bierze si¦
pierwszy deskryptor z listy i pyta si¦ czy znajduje si¦ w pytaniu, je±li tak to zapami¦tujemy dan¡ list¦) Aktualizacja: jest skomplikowana, zmienia si¦ bowiem dªugo±¢ list i nale»y jest od pocz¡tku
uporz¡dkowa¢ !!!
PORZDKOWANIE LIST LEKSYKOGRAFICZNIE
Kartoteka wyszukiwawcza:
α(a, a1) = {1, 2, 5, 6}
α(a, a2) = {3, 4}
α(b, b1) = {1, 2}
α(b, b2) = {3, 4, 5, 6}
α(c, c1) = {1, 5}
α(c, c2) = {2, 6}
α(c, c3) = {3}
α(c, c4) = {4}
Umo»liwia zastosowanie podziaªu poªówkowego do wyszukiwania odpowiedniej listy inwersyjnej.
Zalety: Czas szukania odpowiedniej listy znacznie si¦ wtedy zmniejsza,
PORZDKOWANIE LIST WG CZSTOCI
WYSTPOWANIA DANYCH DESKRYPTORÓW W PYTANIACH
Zaªó»my, »e najcz¦±ciej w pytaniach szukamy odpowiedzi na pytania o deskryptory:
(c, c1), (c, c2), (b, b2). Listy z tymi deskryptorami umie±cimy wi¦c na samym pocz¡tku kartoteki wyszukiwawczej:
Kartoteka wyszukiwawcza:
α(c, c1) = {1, 5}
α(c, c2) = {2, 6}
α(b, b2) = {3, 4, 5, 6}
α(a, a1) = {1, 2, 5, 6}
α(a, a2) = {3, 4}
α(b, b1) = {1, 2}
α(c, c3) = {3}
α(c, c4) = {4}
Zalety: Czas szukania odpowiedniej listy znacznie si¦ wtedy zmniejsza, natomiast czas przeci¦cia dwóch list nie !!! Wady: Metoda nie zdaje egzaminu w przypadku zadania pytania spoza zbioru standardowych pyta« !!!
MODYFIKACJE zmniejszaj¡ce zaj¦to±¢ pami¦ci
1 zaznaczanie przedziaªów adresów
2 listy wspólne dla par deskryptorów z zaznaczeniem cz¦±ci wspólnej
3 listy wielodeskryptorowe
4 listy zanegowane
5 listy dla niepeªnego zbioru deskryptorówD0 ⊆ D
ZAZNACZANIE PRZEDZIAÓW ADRESÓW
Je»eli w jakiej± li±cie wyst¦puje ci¡g kolejnych adresów mo»na wtedy zaznaczy¢
przedziaª poprzez znacznik÷i wtedy nie wpisujemy adresów wszystkich obiektów, a tylko pierwszy i ostatni adres danego ci¡gu. Np.:
α(d1) = {1, 2, 3, 4, 5, 8, 12, 13, 14, 15, 16, 20} α0(d1) = {1 ÷ 5, 8, 12 ÷ 16, 20}
Kartoteka wyszukiwawcza:
α(a, a1) = {1, 2, 5, 6}
α(a, a2) = {3, 4}
α(b, b1) = {1 ÷ 2}
α(b, b2) = {3 ÷ 6}
α(c, c1) = {1, 5}
α(c, c2) = {2, 6}
α(c, c3) = {3}
α(c, c4) = {4}
Zalety: czas wyszukiwania jest krótszy, zmniejszona zaj¦to±¢ pami¦ci Aktualizacja: skomplikowana ze wzgl¦du na konieczn¡ zmian¦ przedziaªów
LISTY DLA PAR DESKRYPTORÓW Z ZAZNACZENIEM CZSCI WSPÓLNEJ
Je»eli mamy 2 listyα(di) iα(dj) maj¡ce wspólne dla siebie adresy obiektów to:
Lista wspólna dla pary deskryptorów:
αw(di, dj) = {αr(di)#α(di, dj)#αr(dj)}
gdzie:
α(di, dj) = α(di) ∩ α(dj) αr(di) = α(di) α(di, dj) αr(dj) = α(dj) α(di, dj)
Przykªad:
α(d1) = {1, 2, 5, 7, 10, 12, 13}
α(d2) = {3, 5, 7, 9, 10, 12, 15, 18}
α(d1, d2) = {5, 7, 10, 12}
αr(d1) = {1, 2, 13}
Zaªó»my, »e najcz¦±ciej w pytaniach szukamy odpowiedzi na pytania o deskryptory: (a, a2) i (b, b2). Utworzymy wi¦c zamiast osobnych list, jedn¡ list¦ wspóln¡ dla tej pary.
przed modykacj¡: 8 list . . .
α(a, a2) = {3, 4}
. . .
α(b, b2) = {3, 4, 5, 6}
. . .
po modykacji: 7 list
α(a, a1) = {1, 2, 5, 6}
αw(a, a2)(b, b2) = {∅#3, 4#5, 6}
α(b, b1) = {1, 2}
α(c, c1) = {1, 5}
α(c, c2) = {2, 6}
α(c, c3) = {3}
α(c, c4) = {4}
LISTY WIELODESKRYPTOROWE
Listy wielodeskryptorowe to szczególny przypadek list dla par deskryptorów.
Je»eli mamy 2 listyα(di) iα(dj) i listy te maj¡ pewne wspólne dla siebie adresy obiektów to: Np.:
α(d1) = {1, 2, 5, 7, 8, 12, 17}
α(d2) = {1, 4, 5, 9, 10, 17, 20}
α(d1d˙2) = {1, 5, 17}
Zalety: Czas wyszukiwania jest krótszy, zmniejszona zaj¦to±¢
pami¦ci
Aktualizacja: bardziej skomplikowana przykªad
. . .
α(a, a2)(b, b2)(c, c2) = {6}
LISTY USUWANIE LIST DUGICH LISTY ZANEGOWANE
A1 A2
x1 2 a
x2 1 a
x3 2 b
x4 2 a
x5 2 a
x6 2 a
x7 2 b
x8 2 a
Gdy α(A1, 2) = {x1, x3, x4, x5, x6, x7, x8} wówczas α(A1, 2) = {x2}
Gdy α(A2, a) = {x1, x2, x4, , x5, x6, x8} wówczas α(A2, a) = {x3, x7}
Dla pytania t = (A1, 2)(A2, b) t = d1d˙2
α(d1) = α(A1, 2) = {x2}
α(d2) = α(A2, b) = {x3, x7}
σ(t) = {x7}
Listy musz¡ pochodzi¢ z jednego atrybutu wzajemnie dwudeskryptorowego o warto±ciach wzajemnie si¦ neguj¡cych która± z warto±ci musi wyst¦powa¢ w opisie obiektów. Zalety: krótszy czas wyszukiwania, zmniejszona zaj¦to±¢ pami¦ci Aktualizacja: skomplikowana
Metoda ze zmniejszonym zbiorem list inwersyjnych
Listy inwersyjne w tej metodzie tworzymy nie dla wszystkich deskryptorów wyst¦puj¡cych w opisach obiektów, a dla pewnego podzbioruD0 ⊂ D tych deskryptorów. Wybrany zbiórD0 mo»e by¢
zbiorem deskryptorów najcz¦±ciej wyst¦puj¡cych w pytaniach do systemu S lub zbiorem deskryptorów pewnego atrybutu (pewnych atrybutów). W omawianej modykacji tworzymy listy inwersyjne α(di) , gdziedi ∈ D0 iS
idi = D0 .
Pytanie do systemu zadajemy w postaci termut . Zakªadamy, »e tak jak w metodzie list inwersyjnych bez modykacji termt ma posta¢ sumy termów skªadowych. Odpowied¹σ(t) jest sum¡
odpowiedzi na termy skªadowe.
Wyszukiwanie odpowiedzi na term skªadowyt , odbywa si¦
w nast¦puj¡cy sposób:
je»eli wszystkie deskryptory pytaniadj∈ D0 , wówczas wyszukiwanie odpowiedzi odbywa si¦ tak jak w klasycznej metodzie list inwersyjnych:
σ(ti) = α(d1) ∩ α(d2) ∩ . . . ∩ α(dk), dj∈ D01 ≤ j ≤ k
gdzie: k- liczba deskryptorów pytaniati ;
je»eli nie wszystkie deskryptory pytaniati nale»¡ do zbioruD0 , to znajdujemy najpierw odpowied¹ przybli»on¡ jako zbiórXD0 taki, »e:
XD0 =\
j ∈J
α(dj), J = {j : dj∈ D0, dj∈ ti}.
Oczywi±cieXD0 ⊇ Xti . Zatem dla deskryptorów ze zbioruD0 znajdujemy zbiór obiektów zgodnie z metod¡ list inwersyjnych. Otrzymany zbiór obiektów przegl¡damy nast¦pnie metod¡ list prostych, aby znale¹¢ adresy obiektów, w których opisie znajd¡ si¦ pozostaªe deskryptory pytania:
σ(ti) = Xti = {x ∈ XD0, ρx(ai) = vi, (ai, vi) = di∈ ti oraz di ∈ D/ 0}, je»eli wszystkie deskryptory pytaniati ∈ D/ 0 , to odpowied¹ znajdujemy metod¡
przegl¡du zupeªnego.
Przedstawiona modykacja ze wzgl¦du na zmniejszon¡ liczb¦ list inwersyjnych daje wyra¹n¡ popraw¦ redundancji. Wªa±ciwe dobranie zbioruD0 decyduje o efektywno±ci opisanej modykacji (przypadek przegl¡du zupeªnego wyst¦puje bardzo rzadko).
Zmniejszenie redundancji wynika tu ze zmniejszenia wielko±ci Pr
i =1α(di) , gdy» listy inwersyjne tworzymy dla mniejszej liczby deskryptorów.
Przykªad
Kartoteka wyszukiwawcza dla
D0= {(a, a1), (b, b2), (c, c2), (c, c3), (c, c4)}
α(a, a1) = {1, 2, 5, 6}
α(b, b2) = {3 ÷ 6}
α(c, c2) = {2, 6}
α(c, c3) = {3}
α(c, c4) = {4}
R = (4 + 1 + 2 + 1 + 1) − 6
6 = 2
6 =0.33
Wyszukiwanie odpowiedzi na pytania - przykªad nr 1
Na pytanie jednodeskryptorowe t = (c, c2)
Przeszukujemy wszystkie listy inwersyjne i znajdujemy list¦ z deskryptorem pytania t:
t α(a, a1) a wi¦c to nie jest szukana lista inwersyjne, szukamy wi¦c dalej. . .
t α(b, b2) a wi¦c to nie jest szukana lista inwersyjne, szukamy wi¦c dalej. . .
t ≤ α(c, c2) znale¹li±my list¦, która da nam odpowied¹ na pytanie t.
Przerywamy przeszukiwanie list i tworzymy odpowied¹ na pytanie:
σ(t) = α(c, c2) = {2, 6} = {x2, x6}
Wyszukiwanie odpowiedzi na pytania
Na pytanie wielodeskryptorowe t = (b, b2)(c, c2) + (a, a2) t = (b, b2)(c, c2) + (a, a2) = t1+ t2 gdzie t1 = (b, b2)(C, c2) i t2 = (a, a2). A wi¦c teraz odpowiadamy na ka»de z pyta«
skªadowych. ....
t1= (b, b2)(C, c2) t2= (a, a2) 1. Szukamy listy inwersyjnej dla pierwszego de-
skryptora pytania t1, a wi¦c deskryptora (B, b2) 1. Szukamy listy inwersyjnej dla pierwszego (jedynego) deskryptora pytania t2, a wi¦c deskryptora (a, a1)
(b, b2) α(a, a2) (a, a2) /∈ D0
(b, b2) ≤ α(B, b2) Przegl¡d zupeªny kartoteki wtórnej A wi¦c: α(B, b2) = {3, 4, 5, 6} σ(t2) = σ(a, a2) = {2, 4, 6}
2. Szukamy listy inwersyjnej dla drugiego deskryp- tora pytania t1, a wi¦c deskryptora (C,c2) (C , c2) α(a, a1)
(C , c2) α(B, b2) (C , c2) ≤ α(C, c2) A wi¦c: α(C, c2) = {2, 6}
3. Budujemy odpowied¹ na pytanie t1, jako prze- ci¦cie list inwersyjnych dla deskryptorów (B,b2) oraz (C,c2)
α(B, b2) ∩ α(c, c2) = {3, 4, 5, 6} ∩ {2, 6} = {6}
σ(t ) = {6} σ(t ) = {2, 4, 6}
Przykªad
Zadano pytanie: t = (a, a1)(c, c1)
(a, a1) ≤ α(a, a1) - pierwszy deskryptor pytania t
c, c1 /∈ D0 wi¦c α(a, a1) to odpowied¹ przybli»ona na pytanie t: XD0 = α(a, a1) = {1, 3, 5}
odpowied¹ dokªadna dla pytania t zostatnie znaleziona jako:
σ(t) = Xt= {x ∈ XD0, ρx(ai) = vi, (ai, vi) = di ∈ t oraz di ∈ D/ 0}, XD0 = {1, 3, 5} = {x1, x3, x7, x5}
:
ρx1(c) = c1 a (c, c1) ∈ t ρx3(c) = c3 a (c, c3) /∈ t ρx7(c) = c3 a (c, c3) /∈ t ρx5(c) = c1 a (c, c1) ∈ t Zatem:
σ(t) = {x1, x5}