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.