Model boolowski wyszukiwania informacji

Download Report

Transcript Model boolowski wyszukiwania informacji

W. Bartkiewicz
Wprowadzenie do budowy usług
informacyjnych
Wykład 2. Model boolowski wyszukiwania informacji
Model boolowski
• Model boolowski jest prostym modelem wyszukiwania, opartym na
działaniach na zbiorach i algebrze boolowskiej.
– Dokumenty indeksowane są poprzez wyodrębnienie w nich słów
kluczowych (termów).
– Zapytania specyfikowane są jako wyrażenia boolowskie, np.
„bolid and wyścigi and not meteor”
– Wynik zapytania jest generowany poprzez przetwarzanie zbiorów
dokumentów, odpowiadających poszczególnym termom zapytania..
• Wskutek swojej prostoty i jasnego formalizmu model boolowski
przyciągał w przeszłości wiele uwagi i do dziś stanowi podstawę wielu
komercyjnych systemów bibliograficznych.
Model boolowski –
Indeks odwrotny (inwersyjny)
Odsyłacz do
dokumentu
Brutus
2
4
8
16
Kalpurnia
1
2
3
5
Cezar
13
Słownik
32
8
64
13
21
128
34
16
Listy odsyłaczy
Posortowane wg. docID (dlaczego - później)
Model boolowski –
Przetwarzanie zapytania: AND
• Rozważmy przetwarzanie zapytanie: Brutus AND Kalpurnia
– Zlokalizuj term Brutus w słowniku. Słownik powinien więc być zbudowany
na bazie odpowiedniej struktury danych wspomagającej wyszukiwanie.
Pobierz odsyłacze do zawierających go dokumentów.
– Zlokalizuj term Kalpurnia w słowniku.
Pobierz odsyłacze do zawierających go dokumentów.
– Połącz dwa zbiory odsyłaczy.
2
4
8
16
1
2
3
5
32
8
64
13
128
21
Brutus
34 Kalpurnia
Model boolowski –
Łączenie : AND
• Przechodząc równolegle przez oba zbiory odsyłaczy łączymy je w czasie
liniowym w zależności od całkowitej liczby elementów.
2
8
2
4
8
16
1
2
3
5
32
8
64
13
Brutus
34 Kalpurnia
128
21
Jeśli listy odsyłaczy mają odpowiednio x i y elementów,
łączenie wymaga O(x+y) operacji.
Kluczowe: odsyłacze muszą myć uporządkowane wg. docID
Model boolowski –
Łączenie : AND
• MERGE(p, q)
1 answer  {Ø}
2 while p  NIL and q  NIL
3
if docID[p] = docID[q]
4
then ADD(answer, docID[p])
5
p  next[p]
6
q  next[q]
7
else if docID[p] < docID[q]
8
then p  next[p]
9
else q  next[q]
10 return answer
Model boolowski –
Łączenie: możliwość optymalizacji
128
16
2
4
8
16
32
128
31
8
1
64
2
3
5
8
17
21
31
44
• Możemy próbować przyśpieszyć łączenie poprzez dodanie tablic
indeksujących listy odsyłaczy.
– Jeśli porównujemy np. 17 i 32, to w drugiej liście wykorzystując tablicę
indeksującą możemy przeskoczyć do elementu 44 bez sprawdzania 21 i 31.
• Im większa gęstość indeksowania tym większe prawdopodobieństwo
przeskoku, ale krótsze przeskoki, więcej operacji porównań odsyłaczy.
– Typowo stosowana jest prosta heurystyka: długość tablicy indeksującej =
pierwiastek z liczby odsyłaczy.
• Indeks musi być względnie stały – zwiększone koszty aktualizacji.
Model boolowski –
Łączenie
• Analogicznie łatwo można na łączenie dla zapytań postaci
Brutus OR Kalpurnia
Brutus AND NOT Kalpurnia
2
4
8
16
1
2
3
5
32
8
64
13
128
21
Brutus
34 Kalpurnia
Model boolowski –
Optymalizacja zapytania
Brutus
2
Calpurnia
1
Caesar
4
2
8
16 32 64 128
3
5
8
16 21 34
13 16
Zapytanie: Brutus AND Kalpurnia AND Cezar
• Rozważmy zapytanie, które jest koniunkcją t termów.
• Jaki jest najlepszy porządek przetwarzania tego zapytania?
• Przetwarzanie według rosnącej liczby odsyłaczy
– (Cezar AND Brutus) AND Kalpurnia
Model boolowski –
Dowolne zapytanie
• Realizacja dowolnego zapytania może być trudna. Najpierw powinniśmy
wykonywać koniunkcje.
• Dlatego zazwyczaj w większości przypadków zapytania sprowadzane są
do tzw. alternatywnej postaci normalnej.
Zapytanie: Brutus AND (Kalpurnia OR NOTCezar)
Brutus
(x1)
Kalpur
nia (x2)
Cezar
(x3)
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
x1 x2 x3  x1 x2 x3  x1 x2 x3
Kanoniczna alternatywna
postać normalna
Model boolowski –
Dowolne zapytanie
Kanoniczna alternatywna postać normalna jest nieoptymalna. Zredukujemy
ją metodą Quinna.
x1 x2 x3  x1 x2 x3  x1 x2 x3
Rozszerzmy wyrażenie przy pomocy wszystkich możliwych operacji
niepełnego sklejania dla wyrazów sąsiednich (różniących się tylko jednym
elementem).
x1 x2 x3  x1 x2 x3  x1 x2 x3  x1 x3  x1 x2
Wyrazy iloczynowe o mniejszej liczbie elementów mogą pochłaniać
wyrazy o większej liczbie elementów
x1 x3  x1 x2
Skrócona alternatywna
postać normalna
Model boolowski –
Dowolne zapytanie
• Skrócona alternatywna postać normalna również nie zawsze ma
charakter optymalny. Rozważmy następujące wyrażenie logiczne
Brutus
(x1)
Kalpur
nia (x2)
Cezar
(x3)
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
x1 x2 x3  x1 x2 x3  x1 x2 x3 
x1 x2 x3  x1 x2 x3
x1 x2  x2 x3  x1 x2  x1 x3
Model boolowski –
Dowolne zapytanie
x1 x2
x2 x3
x1 x2
x1 x3
x1 x2 x3
+
+
x1 x2 x3
+
x1 x2 x3
x1 x2 x3
x1 x2 x3
+
+
+
+
+
• Tworzymy tzw. tablicę implikantów, której kolumny wyznaczone są
przez wyrazy iloczynowe pochodzące z postaci kanonicznej, zaś wiersze
przez wyrazy iloczynowe z postaci skróconej. Znak "+" oznacza że dany
wyraz z postaci skróconej jest fragmentem wyrazu z postaci kanonicznej.
• Jeśli któraś kolumna zawiera tylko jeden "+", to oznacza to, że wyraz
kanoniczny musi być opisywany przez odpowiadający mu wyraz z
postaci skróconej. Jeśli plusów jest więcej to mamy dowolność wyboru.
Model boolowski –
Dowolne zapytanie
x1 x2
x2 x3
x1 x2
x1 x3
x1 x2 x3
+
+
x1 x2 x3
+
x1 x2 x3
x1 x2 x3
x1 x2 x3
+
+
+
+
+
• Układ wyrazów postaci skróconej, w których wierszach znajduje się plus
jedyny w swojej kolumnie, tworzy tzw. jądro implikantów.
• Nieredukowalna postać funkcji boolowskiej musi zawierać wyrazy
iloczynowe z jądra, oraz te wyrazy do niego nienależące, które
dopełniają istnienie plusów w każdej kolumnie.
• W naszym przypadku istnieją więc dwie równoważne postaci
nieredukowalne:
x1 x2  x1 x2  x2 x3
x1x2  x1x2  x1x3
Model boolowski –
Podsumowanie
• Zalety:
– Prostota i jasny formalizm. Zapytania boolowskie są precyzyjne. Uważnie
zaprojektowanie, pozwalają na zachowanie pełnej kontroli, transparentności
i precyzji procesu wyszukiwania.
– Zapytania boolowskie są często preferowane przez profesjonalistów
zajmujących się wyszukiwaniem informacji z danej dziedziny. Model ten
stanowi podstawę wielu komercyjnych systemów bibliograficznych.
• Wady:
– Strategia wyszukiwawcza modelu boolowskiego bazuje na binarnym
kryterium decyzyjnym – dokument albo jest relewantny, albo nie, bez żadnej
pośredniej gradacji. Może to pogarszać jakość działania systemu, zwłaszcza
biorąc pod uwagę nieprecyzyjny charakter języka naturalnego.
– Pomimo, że wyrażenia boolowskie mają precyzyjną semantykę, wcale nie
jest łatwo przełożyć na nie potrzebę informacyjną. Większość, zwłaszcza
nieprofesjonalnych użytkowników uważa wyrażanie swoich zapytań w
postaci wyrażeń boolowskich za trudne. Ograniczają się do najprostszych
warunków, które nie pozwalają na właściwy opis potrzeb informacyjnych.