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:agnieszka.nowak@us.edu.al 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), t x = t y dla x, y X X (x 1, x 2,..., x k ) N(n 1, n 2,..., n k ) 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 t x. Listy takie nazywamy listami inwersyjnymi: α(d i ) = {n 1, n 2,..., n z}, gdzie d i = (a i, v ij ) di Dα(d 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 µ: µ = {µ(x 1) = 1; µ(x 2) = 2; µ(x 3) = 3; µ(x 4) = 4; µ(x 5) = 5; µ(x 6) = 6; µ(x 7) = 7; µ(x 8) = 8} Budujemy zbiór deskryptorów D dla którego utwo rzymy listy inwersyjne: D = {(a, a 1), (a, a 2), (b, b 1), (b, b 2), (c, c 1), (c, c 2), (c, c 3), (c, c 4)} a B C x 1 a 1 b 1 c 1 x 2 a 1 b 1 c 2 x 3 a 2 b 2 c 3 x 4 a 2 b 2 c 4 x 5 a 1 b 2 c 1 x 6 a 1 b 2 c 2 x 7 a 2 b 2 c 3 x 8 a 2 b 2 c 4
Budowa KW w MLI a B C x 1 a 1 b 1 c 1 x 2 a 1 b 1 c 2 x 3 a 2 b 2 c 3 x 4 a 2 b 2 c 4 x 5 a 1 b 2 c 1 x 6 a 1 b 2 c 2 x 7 a 2 b 2 c 3 x 8 a 2 b 2 c 4 µ a B C 1 x 1 a 1 b 1 c 1 2 x 2 a 1 b 1 c 2 3 x 3 a 2 b 2 c 3 4 x 4 a 2 b 2 c 4 5 x 5 a 1 b 2 c 1 6 x 6 a 1 b 2 c 2 7 x 7 a 2 b 2 c 3 8 x 8 a 2 b 2 c 4
Tworzymy listy inwersyjne D = {(a, a 1), (a, a 2), (b, b 1), (b, b 2), (c, c 1), (c, c 2), (c, c 3), (c, c 4)} α(a, a 1) = {1, 2, 5, 6} α(a, a 2) = {3, 4, 7, 8} α(b, b 1) = {1, 2} α(b, b 2) = {3, 4, 5, 6, 7, 8} α(c, c 1) = {1, 5} α(c, c 2) = {2, 6} α(c, c 3) = {3, 7} α(c, c 4) = {4, 8}
Wyszukiwanie odpowiedzi na pytania 1. pytanie ogólne - suma termów skªadowych t = t 1 + t 2 +... + t k dla ka»dego i 1, k Skoro wi c: t i = d i to powiemy,»e t = d 1 + d 2 +... + d k σ(t) = σ(d 1) σ(d 2)... σ(d k ) 2. pytanie szczegóªowe t = t 1 + t 2 +... + t k i t i = d 1 d 2... d m Wtedy: gdzie: σ(t i ) = σ(d 1) σ(d 2)... σ(d m) σ(t) = σ(t 1) σ(t 2)... σ(t k ) σ(t i ) = {x X : µ(x) = n i, oraz n i N = j α(d j ), gdzie N N, a d j t i
pytanie: t = (c, c 3 ) D = {(a, a 1 ), (a, a 2 ), (b, b 1 ), (b, b 2 ), (c, c 1 ), (c, c 2 ), (c, c 3 ), (c, c 4 )} α(a, a 1 ) = {1, 2, 5, 6} α(a, a 2 ) = {3, 4, 7, 8} α(b, b 1 ) = {1, 2} α(b, b 2 ) = {3, 4, 5, 6, 7, 8} α(c, c 1 ) = {1, 5} α(c, c 2 ) = {2, 6} α(c, c 3 ) = {3, 7} α(c, c 4 ) = {4, 8} Wyszukanie odpowiedzi: 1. Szukamy w±ród list inwersyjnych tej wªa±ciwej: t d1, t d2, t d3, t d4, t d5, t d6, t d7, t d8. 2. Wygenerowanie listy inwersyjnej α(d 7 ) = {3; 7}. 3. Odtworzenie adresów obiektów: σ(t) = {x 3, x 7 }
pytanie: t = (a, a 1 )(b, b 1 ) + (c, c 3 ) Wyszukanie odpowiedzi: 1. t = t1 + t2, t1 = (a, a1)(b, b1),za± t2 = (c, c3) 2. Szukamy odpowiedzi na pytanie t 1: Szukamy list dla ka»dego deskryptora: (a, a1)i (b, b1): α(a, a1) = {1; 2; 5; 6}za± α(b, b1) = {1; 2} dokonujemy arzeciacia list: α(a1 b1) = {1; 2; 5; 6} {1; 2} = {1; 2} odtwarzamy adresu obiektów z tej listy:σ(t1) = {x 1 ; x 2 } 3. Szukamy odpowiedzi na pytanie t 2 (czyli tylko dla (c, c 3)): Szukamy listy z deskryptorem:(c, c 3 ): α(c, c 3 ) = {3; 7} odtwarzamy adresu obiektów z tej listy:σ(t 1 ) = {x 3 ; x 7 } 4. odtwarzamy odpowied¹ na pytanie t:σ(t) = σ(t1) σ(t2) = {x1, x2} {x3; x7} = {x1; x2; x3; x7}
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 redundancji: r i=1 R = α(d i ) N N gdzie r - to liczba deskryptorów, α(d i ) to dªugo± listy inwersyjnej. 3. Równie» zwi kszona zaj to± pami ci jest cen, któr trzeba zapªaci za szybko±. M = r m α(di ),gdzie r - liczba deskryptorów,m α(di ) - zaj to± pami ci potrzebna na zapami tanie jednej listy inwersyjnej. 4. 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 = t 1 + t 2 +... + t m, za± ka»de z pyta«skªadowych jest iloczynem deskryptorów (t i = d 1 d 2... d k ), czas odpowiedzi jest dªu»szy gdy» dochodzi czas potrzebny na znalezienie cz ±ci wspólnej wygenerowanych list inwersyjnych. Ostatecznie zapiszemy go tak: τ = τ g (t i ) + τ p(α, t i ) i
Redundancja D = {(a, a 1), (a, a 2), (b, b 1), (b, b 2), (c, c 1), (c, c 2), (c, c 3), (c, c 4)} α(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 α(d 1 ) = 4, α(d 2 ) = 4, α(d 3 ) = 2, α(d 4 ) = 6, α(d 5 ) = 2, α(d 6 ) = 2, α(d 7 ) = 2, α(d 8 ) = 2. R = r i=1 α(d i) N N = 4 + 4 + 2 + 6 + 2 + 2 + 2 + 2 8 8 = 2
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.