Systemy Wyszukiwania Informacji: Metoda list inwersyjnych

Transkrypt

Systemy Wyszukiwania Informacji: Metoda list inwersyjnych
Systemy Wyszukiwania Informacji:
Metoda list inwersyjnych
dr agnieszka Nowak - Brzezi«ska
Instytut Informatyki, Zakªad Systemów Informatycznych
ul. Badzi«ska 39, Sosnowiec, Tel (+48 32) 368 97 65
e-mail:[email protected]
28 pa¹dziernika 2009
Wykªad IV
Charakterystyka metody list inwersyjnych
W metodzie list inwersyjnych kartoteka wtórna niczym si¦ nie ró»ni od
kartoteki z metody list prostych (obiekty pojawiaj¡ sia zgodnie z kolejno±ci¡ ich
napªywania), natomiast kartoteka wyszukiwawcza jest zakªadana w specjalny
sposób: Funkcja adresuj¡ca:
µ:X →N
(przyporz¡dkowanie adresu obiektowi):
µ(x ) = µ(y ), tx = ty
X ( x1 , x2 , . . . , x
k
dla
x, y ∈ X
) → N (n1 , n2 , . . . , nk )
Obiekty maj¡ ten sam adres, je±li posiadaj¡ identyczny opis deskryptorowy.
Tworzymy listy adresów tych obiektów, które w swoim opisie zawieraj¡
deskryptor
d
i
≤ tx
. Listy takie nazywamy listami inwersyjnymi:
α(di ) = {n1 , n2 , . . . , nz },
gdzie
d
i
= (ai , vij ) ∀d ∈D α(di )
i
Utworzony zbiór obiektów stanowi kartotek¦ wyszukiwawcz¡ w systemie. Przy
niewielkiej liczbie obiektów mo»na wprost pami¦ta¢ obiekty.
Budowa KW w MLI
Tworzymy funkcj¦ adresuj¡c¡
µ:
µ = {µ(x1 ) = 1; µ(x2 ) = 2; µ(x3 ) = 3; µ(x4 ) = 4;
µ(x5 ) = 5; µ(x6 ) = 6; µ(x7 ) = 7; µ(x8 ) = 8}
Budujemy zbiór deskryptorów
D
dla którego utwo rzymy listy inwersyjne:
D = {(a, a1 ), (a, a2 ), (b, b1 ), (b, b2 ), (c , c1 ), (c , c2 ), (c , c3 ), (c , c4 )}
x1
x2
x3
x4
x5
x6
x7
x8
a
a1
a1
a2
a2
a1
a1
a2
a2
B
b1
b1
b2
b2
b2
b2
b2
b2
C
c1
c2
c3
c4
c1
c2
c3
c4
Budowa KW w MLI
x1
x2
x3
x4
x5
x6
x7
x8
µ
1
2
3
4
5
6
7
8
x1
x2
x3
x4
x5
x6
x7
x8
a
a1
a1
a2
a2
a1
a1
a2
a2
a
a1
a1
a2
a2
a1
a1
a2
a2
B
b1
b1
b2
b2
b2
b2
b2
b2
B
b1
b1
b2
b2
b2
b2
b2
b2
C
c1
c2
c3
c4
c1
c2
c3
c4
C
c1
c2
c3
c4
c1
c2
c3
c4
Tworzymy listy inwersyjne
D = {(a, a1 ), (a, a2 ), (b, b1 ), (b, b2 ), (c , c1 ), (c , c2 ), (c , c3 ), (c , c4 )}
α(a, a1 ) = {1, 2, 5, 6}
α(a, a2 ) = {3, 4, 7, 8}
α(b , b1 ) = {1, 2}
α(b , b2 ) = {3, 4, 5, 6, 7, 8}
α(c , c1 ) = {1, 5}
α(c , c2 ) = {2, 6}
α(c , c3 ) = {3, 7}
α(c , c4 ) = {4, 8}
Wyszukiwanie odpowiedzi na pytania
1.
pytanie ogólne - suma termów skªadowych
t = t1 + t2 + . . . + t
dla ka»dego
k
i ∈ h1, k i
Skoro wi¦c:
t
i
= di
to powiemy, »e
t = d1 + d2 + . . . + d
k
σ(t ) = σ(d1 ) ∪ σ(d2 ) ∪ . . . ∪ σ(dk )
2.
pytanie szczegóªowe
t = t1 + t2 + . . . + t
Wtedy:
k
i
t
i
= d1 ∗ d2 ∗ . . . ∗ dm
σ(ti ) = σ(d1 ) ∩ σ(d2 ) ∩ . . . ∩ σ(dm )
σ(t ) = σ(t1 ) ∪ σ(t2 ) ∪ . . . ∪ σ(tk )
gdzie:
σ(ti ) = {x ∈ X : µ(x ) = ni ,
oraz
n
i
∈ N0 =
\
j
α(dj ),
gdzie
N0 ⊆ N, a d
j
∈ ti
pytanie:
t = (c , c3 )
D = {(a, a1 ), (a, a2 ), (b, b1 ), (b, b2 ), (c , c1 ), (c , c2 ), (c , c3 ), (c , c4 )}
α(a, a1 ) = {1, 2, 5, 6}
α(a, a2 ) = {3, 4, 7, 8}
α(b , b1 ) = {1, 2}
α(b , b2 ) = {3, 4, 5, 6, 7, 8}
α(c , c1 ) = {1, 5}
α(c , c2 ) = {2, 6}
α(c , c3 ) = {3, 7}
α(c , c4 ) = {4, 8}
Wyszukanie odpowiedzi:
1. Szukamy w±ród list inwersyjnych tej wªa±ciwej:
t d 1, t d 2, t d 3, t d 4, t d 5, t d 6, t ≤ d 7, t d 8.
α(d7 ) = {3; 7}.
Odtworzenie adresów obiektów: σ(t ) = {x3 , x7 }
2. Wygenerowanie listy inwersyjnej
3.
pytanie:
t = (a, a1 )(b, b1 ) + (c , c3 )
Wyszukanie odpowiedzi:
1.
2.
t = t 1 + t 2, t 1 = (a, a1)(b, b1),za± t 2 = (c , c 3)
t
Szukamy odpowiedzi na pytanie 1 :
• Szukamy list dla ka»dego deskryptora: (a, a1)i (b , b 1):
•
•
α(a, a1) = {1; 2; 5; 6}za± α(b , b 1) = {1; 2}
dokonujemy arzeciacia list: α(a1 ∗ b 1) = {1; 2; 5; 6} ∧ {1; 2} = {1; 2}
odtwarzamy adresu obiektów z tej listy:σ(t 1) = {x1 ; x2 }
t
cc
3.
Szukamy odpowiedzi na pytanie 2 (czyli tylko dla ( , 3 )):
• Szukamy listy z deskryptorem:(c , c3 ): α(c , c3 ) = {3; 7}
• odtwarzamy adresu obiektów z tej listy:σ(t1 ) = {x3 ; x7 }
4.
odtwarzamy odpowied¹ na pytanie
t :σ(t ) = σ(t 1) ∪ σ(t 2) = {x 1, x 2} ∪ {x 3; x 7} = {x 1; x 2; x 3; x 7}
algorytm wyszukiwania
1. Pobierz pierwszy deskryptor pierwszego termu skªadowego
2. Wygeneruj list¦ obiektów relewantnych do tego deskryptora
3. Je±li nie ma ju» nast¦pnych deskryptorów w tym termie skªadowym to przejd¹ do
pkt. 8
4. pobierz nast¦pny deskryptor pytania
5. Wygeneruj list¦ obiektów relewantnych do tego deskryptora
6. Dokonaj przeci¦cia na dotychczas wygenerowanych listach
7. przejd¹ do punktu punktu 3
8. Zapami¦taj wygenerowan¡ list¦
9. Je±li nie ma ju» nast¦pnych termów skªadowych to przejd¹ do punktu 17
10. pobierz pierwszy deskryptor nast¦pnego termu skªadowego
11. Wygeneruj list¦ obiektów relewantnych do tego deskryptora
12. Je±li nie ma ju» nast¦pnych dekryptorów w tym termie skªadowym to przejd¹ do
punktu 8.
13. pobierz nast¦pny deskryptor pytania
14. Wygeneruj list¦ obiektów relewantnych do tego deskryptora
15. Dokonaj przeci¦cia na dotychczas wygenerowanych listach dla tego termu
skªadowego
16. przejd¹ do punktu 12
17. podaj na wyj±cie sum¦ zapami¦tanych list
Parametry metody list inwersyjnych - ogólnie
1. Czas wyszukiwania:
jest zale»ny od typu pytania - czas odpowiedzi na
pytanie ogólne jest czasem krótkim, zale»y tylko od czasu generacji
poszczególnych list; natomiast dla pyta« szczegóªowych dochodzi do tego
jeszcze czas przecinania list.
2.
Przyspieszenie pracy sytemu odbywa si¦ niestety kosztem
R=
gdzie
3.
r
Pr
- to liczba deskryptorów,
Równie» zwi¦kszona
szybko±¢.
i =1
α(di ) − N
N
α(di )
zaj¦to±¢ pami¦ci
to dªugo±¢ listy inwersyjnej.
jest cen¡, któr¡ trzeba zapªaci¢ za
M = r ∗ mα( )
mα( ) - zaj¦to±¢ pami¦ci potrzebna na
di
,gdzie
r
- liczba deskryptorów,
di
zapami¦tanie jednej listy inwersyjnej.
4.
redundancji:
Preferowany tryb pracy systemu : praca wsadowa.
Czas wyszukiwania
Czas wyszukiwania jest zale»ny od typu pytania - czas odpowiedzi na pytanie
ogólne jest czasem krótkim, zale»y tylko od czasu generacji poszczególnych list;
natomiast dla pyta« szczegóªowych dochodzi do tego jeszcze czas przecinania
list:
• dla pyta« krótkich:
τ = τg
• dla pyta« szczegóªowych: gdy pytanie
t = t1 + t2 + . . . + t , za± ka»de z
t = d1 ∗ d2 ∗ . . . ∗ d ),
pyta« skªadowych jest iloczynem deskryptorów (
m
i
k
czas odpowiedzi jest dªu»szy gdy» dochodzi czas potrzebny na znalezienie
cz¦±ci wspólnej wygenerowanych list inwersyjnych. Ostatecznie zapiszemy
go tak:
τ =
X
i
τg (ti ) + τp (α, ti )
Redundancja
D = {(a, a1 ), (a, a2 ), (b, b1 ), (b, b2 ), (c , c1 ), (c , c2 ), (c , c3 ), (c , c4 )}
α(a, a1 ) = {1, 2, 5, 6}
α(a, a2 ) = {3, 4, 7, 8}
α(b , b1 ) = {1, 2}
α(b , b2 ) = {3, 4, 5, 6, 7, 8}
α(c , c1 ) = {1, 5}
α(c , c2 ) = {2, 6}
α(c , c3 ) = {3, 7}
α(c , c4 ) = {4, 8}
r
= 8,
N
= 8
α(d1 ) = 4,
α(d2 ) = 4,
α(d3 ) = 2,
α(d4 ) = 6,
α(d5 ) = 2,
α(d6 ) = 2,
α(d7 ) = 2,
α(d8 ) = 2.
R=
r
P
i
=1
α(d ) − N
N
i
=
4+4+2+6+2+2+2+2−8
=2
8
Modykacje
Podstawowymi wadami metody list inwersyjnych sa:
• nadmierna redundancja
• i zaj¦to±¢ pami¦ci.
aby zmniejszy¢ te dwa parametry, nie trac¡c zbytnio na szybko±ci mo»na
zastosowa¢ wybrane modykacje.

Podobne dokumenty