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.