SYSTEMY SYSTEMY
WYSZUKIWANIA WYSZUKIWANIA
INFORMACJI INFORMACJI
METODA DOYLE’A METODA DOYLE’A
Łukasz Kajzer, WSTI GR. 5CZ, styczeń 2007
Trochę czystej teorii…
Trochę czystej teorii…
Metoda Doyle'a Metoda Doyle'a to metoda wyszukiwania to metoda wyszukiwania informacji w bazie danych.
informacji w bazie danych.
Na początek przedstawię algorytm Na początek przedstawię algorytm
słowny tej metody, a później zajmiemy słowny tej metody, a później zajmiemy
się konkretnym przykładem
się konkretnym przykładem
Algorytm słowny Doyle’a Algorytm słowny Doyle’a
1.1. Dokonujemy wstępnego podziału dokumentów na m Dokonujemy wstępnego podziału dokumentów na m grup.
grup.
2.2. Dla każdej z grup wypisujemy zbiór obiektów ją Dla każdej z grup wypisujemy zbiór obiektów ją tworzących - Sj, oraz zbiór deskryptorów
tworzących - Sj, oraz zbiór deskryptorów
występujących w opisach dokumentów tejże grupy - występujących w opisach dokumentów tejże grupy -
Cj; gdzie j oznacza numer grupy. Następnie dla Cj; gdzie j oznacza numer grupy. Następnie dla
każdej z grup zliczamy ilość deskryptorów każdej z grup zliczamy ilość deskryptorów
opisujących jej elementy; zapamiętujemy największą opisujących jej elementy; zapamiętujemy największą
wartość i inkrementujemy ją - otrzymamy wartość wartość i inkrementujemy ją - otrzymamy wartość
bazową – b.
bazową – b.
Algorytm słowny Doyle’a Algorytm słowny Doyle’a
3.3. Dla każdego deskryptora, każdej z grup, dokonujemy Dla każdego deskryptora, każdej z grup, dokonujemy zliczenia liczby wystąpień danego deskryptora w
zliczenia liczby wystąpień danego deskryptora w opisach dokumentów tejże grupy. Tworzymy w ten opisach dokumentów tejże grupy. Tworzymy w ten
sposób wektor częstości i oznaczamy (dla j-tej grupy) sposób wektor częstości i oznaczamy (dla j-tej grupy)
przez Fj.
przez Fj.
4.4. W ramach grupy przydzielamy każdemu z W ramach grupy przydzielamy każdemu z
deskryptorów odpowiednią rangę. Rangę 1 otrzymuje deskryptorów odpowiednią rangę. Rangę 1 otrzymuje
deskryptor o największej częstości wystąpień, rangę deskryptor o największej częstości wystąpień, rangę
2 kolejny, itd. W przypadku takiej samej częstości 2 kolejny, itd. W przypadku takiej samej częstości
wystąpień dla dwu, lub więcej, deskryptorów wystąpień dla dwu, lub więcej, deskryptorów
przydzielamy im tą samą rangę. Otrzymujemy wektor przydzielamy im tą samą rangę. Otrzymujemy wektor
rangi opisujący grupę i oznaczamy przez Rj.
rangi opisujący grupę i oznaczamy przez Rj.
Algorytm słowny Doyle’a Algorytm słowny Doyle’a
5.5. Kolejnym krokiem jest obliczenie wektora profilu Kolejnym krokiem jest obliczenie wektora profilu grupy - Pj. Poszczególne współrzędne wektora grupy - Pj. Poszczególne współrzędne wektora
otrzymamy poprzez wyliczenie różnicy pomiędzy otrzymamy poprzez wyliczenie różnicy pomiędzy
wartością bazową – b a rangą, dla każdego z wartością bazową – b a rangą, dla każdego z
deskryptorów.
deskryptorów.
6.6. Obliczamy wartość funkcji punktującej – g(di,Pj) dla Obliczamy wartość funkcji punktującej – g(di,Pj) dla każdego dokumentu i każdego profilu. Wartość
każdego dokumentu i każdego profilu. Wartość
funkcji punktującej jest sumą wartości współrzędnych funkcji punktującej jest sumą wartości współrzędnych
wektora profilu, odpowiadającym deskryptorom wektora profilu, odpowiadającym deskryptorom
opisującym system, dla tegoż dokumentu w danej opisującym system, dla tegoż dokumentu w danej grupie. Obliczamy wartość funkcji punktującej dla grupie. Obliczamy wartość funkcji punktującej dla
każdego dokumentu z każdym profilem.
każdego dokumentu z każdym profilem.
Algorytm słowny Doyle’a Algorytm słowny Doyle’a
7.7. Dla każdego dokumentu zapamiętujemy największą wartość Dla każdego dokumentu zapamiętujemy największą wartość funkcji g(di,Pj), oraz numer profilu, z którym ją uzyskano.
funkcji g(di,Pj), oraz numer profilu, z którym ją uzyskano.
8.8. Dla każdej z grup dokonujemy obliczenia współczynnika Hj, Dla każdej z grup dokonujemy obliczenia współczynnika Hj, gdzie Hj = max(g(di,Pj)).
gdzie Hj = max(g(di,Pj)).
9.9. Obliczamy wartość progową funkcji punktującej dla każdej z Obliczamy wartość progową funkcji punktującej dla każdej z grup:
grup:
gdzie T jest założoną wartością progowa, a jest gdzie T jest założoną wartością progowa, a jest
nazywana mocą związania dokumentów w grupę, 0< <1. nazywana mocą związania dokumentów w grupę, 0< <1. Jednym ze sposobów obliczenia wartości T polega na Jednym ze sposobów obliczenia wartości T polega na obliczeniu jej z wzoru: T =
obliczeniu jej z wzoru: T = max[max(g(di,Pj))+min(g(di,Pj))] div 2.
max[max(g(di,Pj))+min(g(di,Pj))] div 2.
Algorytm słowny Doyle’a Algorytm słowny Doyle’a
7.7. Następnym krokiem jest utworzenie grup poprawionych (j-tą Następnym krokiem jest utworzenie grup poprawionych (j-tą grupę poprawioną oznaczamy przez Sj’). Na grupę Sj’
grupę poprawioną oznaczamy przez Sj’). Na grupę Sj’
składają się takie dokumenty, których wartość funkcji składają się takie dokumenty, których wartość funkcji punktującej z profilem Pj jest większa od wyliczonej punktującej z profilem Pj jest większa od wyliczonej uprzednio wartości Tj.
uprzednio wartości Tj.
8.8. W ten sposób oprócz zakładanych wcześniej m grup W ten sposób oprócz zakładanych wcześniej m grup otrzymaliśmy jeszcze jedną grupę, na którą składają się otrzymaliśmy jeszcze jedną grupę, na którą składają się
dokumenty, które w procesie grupowania nie znalazły się w dokumenty, które w procesie grupowania nie znalazły się w żadnej z utworzonych grup. Grupę tą nazywamy grupą
żadnej z utworzonych grup. Grupę tą nazywamy grupą dokumentów swobodnych.
dokumentów swobodnych.
9.9. Algorytm należy powtarzać do momentu, w którym skład Algorytm należy powtarzać do momentu, w którym skład utworzonych grup nie ulegnie zmianie.
utworzonych grup nie ulegnie zmianie.
… … no to może konkrety :) no to może konkrety :)
Pewnie wielu z Was pomyśli sobie teraz – Pewnie wielu z Was pomyśli sobie teraz –
„ Ale o co chodzi ??”.
„ Ale o co chodzi ??”.
Znam to doskonale – moje początki także Znam to doskonale – moje początki także były trudne. Czas więc rozwiać wszelakie były trudne. Czas więc rozwiać wszelakie
wątpliwości pokazując algorytm Doyle’a wątpliwości pokazując algorytm Doyle’a
krok po kroku na przykładzie.
krok po kroku na przykładzie.
Pozostało wziąć głęboki wdech i Pozostało wziąć głęboki wdech i
zaczynamy…
zaczynamy…
UWAGA ! ! ! UWAGA ! ! !
Słownictwo użyte podczas przykładu Słownictwo użyte podczas przykładu
NIE JEST NIE JEST
prawidłowym słownictwem w Systemach prawidłowym słownictwem w Systemach Wyszukiwania Informacji, jednakże pozwala Wyszukiwania Informacji, jednakże pozwala
szybko i prosto zrozumieć praktyczne szybko i prosto zrozumieć praktyczne rozwiązywanie problemów metodą Doyle’a.
rozwiązywanie problemów metodą Doyle’a.
Wszystkie stwierdzenia potoczne należy odnieść Wszystkie stwierdzenia potoczne należy odnieść
w kontekście przedstawionego Algorytmu w kontekście przedstawionego Algorytmu
Słownego !!!
Słownego !!!
Przykład zastosowania Przykład zastosowania
metody Doyle’a metody Doyle’a
Rzeczy, które znać musimy przed Rzeczy, które znać musimy przed
przystąpieniem do wyjaśnienia (dla osób, przystąpieniem do wyjaśnienia (dla osób, które od razu przejdą do tego podpunktu) które od razu przejdą do tego podpunktu)
S S
jj– wektor dokumentów – wektor dokumentów
C C
jj– wektor pojęć – wektor pojęć
R R
jj– wektor rang – wektor rang
P P
jj– profil (odpowiednik centroidu) – profil (odpowiednik centroidu)
F F
jj– wektor częstotliwości – wektor częstotliwości
Tak wygląda przykładowy Tak wygląda przykładowy
zadany nam problem zadany nam problem
w postaci tabeli…
w postaci tabeli…
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10
d1 d2 d3 d4 d5 d6 d7 d8 d9
1 1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1
Pierwszym krokiem jest Pierwszym krokiem jest
ustalenie sobie grup S ustalenie sobie grup S
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10
d1
1
d2 d3 d4 d5 d6 d7 d8 d9
1
1 1
1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
S
1S
2S
3W kolejnym kroku tworzymy tabele, w której W kolejnym kroku tworzymy tabele, w której
reprezentujemy podane na początku wartości reprezentujemy podane na początku wartości SSjj – ta kolumna symbolizuje numer grupy (u – ta kolumna symbolizuje numer grupy (u nas nas 1,2,3)1,2,3)
CCjj – wektor pojęć, czyli spisujemy w kolumnie, – wektor pojęć, czyli spisujemy w kolumnie, które C mieszczą się w konkretnych
które C mieszczą się w konkretnych grupach
grupach
FFjj – wektor częstotliwości to nic innego jak – wektor częstotliwości to nic innego jak
liczba „1” występująca w danej kolumnie liczba „1” występująca w danej kolumnie CC
PPjj – profil to różnica pomiędzy wartością – profil to różnica pomiędzy wartością bazową
bazową (łatwo ją wyznaczyć, gdyż jest do (łatwo ją wyznaczyć, gdyż jest do wartość
wartość najdłuższego wektora C z grup najdłuższego wektora C z grup powiększona o 1) a wektorem rang…
powiększona o 1) a wektorem rang…
RRj j ––rangi przypisuje się podobnie jak pozycje w rangi przypisuje się podobnie jak pozycje w zawodach sportowych – im większy
zawodach sportowych – im większy wektor
wektor częstotliwości, tym wyższa ranga (1 częstotliwości, tym wyższa ranga (1 oznacza najwyższą)
oznacza najwyższą)
Tak prezentuje się nasza tabela Tak prezentuje się nasza tabela zgodnie z poprzednimi założeniami zgodnie z poprzednimi założeniami
S1 C1 F1 R1 P1 S2 C2 F2 R2 P2 S3 C3 F3 R3 P3 d1 C1 2 1 5 d4 C4 1 3 3 d7 C6 2 2 4 d2 C2 2 1 5 d5 C5 2 2 4 d8 C8 2 2 4 d3 C3 2 1 5 d6 C6 2 2 4 d9 C9 3 1 5
C4 2 1 5 C7 3 1 5 C
10 2 2 4 C8 1 3 3
Na podstawie poprzedniej tabelki generujemy Na podstawie poprzedniej tabelki generujemy
kolejną tzw. funkcję punktującą g(d
kolejną tzw. funkcję punktującą g(dii,P,Pjj). ).
Jak to wygląda praktycznie ? Jak to wygląda praktycznie ?
Otóż bierzemy rząd np. d
Otóż bierzemy rząd np. d1 1 a następnie a następnie sumujemy wszystkie wartości P
sumujemy wszystkie wartości P11 z tabeli biorąc z tabeli biorąc pod uwagę te wektory C w których „1”
pod uwagę te wektory C w których „1”
występuje w danym rzędzie. Ponieważ „1”
występuje w danym rzędzie. Ponieważ „1”
mamy w C
mamy w C11, C, C33, C, C4 4 których wartość Pktórych wartość P11 dla dla
wszystkich jest 5, więc suma 5+5+5 daje nam wszystkich jest 5, więc suma 5+5+5 daje nam
15 co umieszczamy w tabeli. Analogicznie 15 co umieszczamy w tabeli. Analogicznie
postępujemy z d
postępujemy z dxx w pozostałych grupach. w pozostałych grupach.
Musimy stworzyć taką oto tabelę, Musimy stworzyć taką oto tabelę,
a następnie wyznaczyć H
a następnie wyznaczyć H
maxmaxP1 P2 P3
d1 15 3 0
d2 10 0 0
d3 15 3 0
d4 0 13 4
d5 5 12 4
d6 0 12 4
d7 0 4 13
d8 0 3 13
d9 0 7 13
HHmaxmax wyznacza największa wartość funkcji wyznacza największa wartość funkcji punktującej dla danej grupy (u nas P
punktującej dla danej grupy (u nas P1115, 15, PP2213, P13, P3313)13)
Obszary zaznaczone na czerwono to wartości Obszary zaznaczone na czerwono to wartości
mieszczące się w zakresie wartości mieszczące się w zakresie wartości
uśrednionej.
uśrednionej.
Wartość uśredniona, można przyjąć, iż jest to Wartość uśredniona, można przyjąć, iż jest to
(max+min)/2 co dla naszego przypadku (max+min)/2 co dla naszego przypadku
wyznacza wartość 9 ((15+3)/2=9) wyznacza wartość 9 ((15+3)/2=9)
Wykorzystamy ją teraz do wyznaczenia progu Wykorzystamy ją teraz do wyznaczenia progu
klasyfikacji klasyfikacji
T T
jj= H = H
jj– – α α (H (H
jj– T) – T)
αα to tzw. czynnik skalujący przyjmowany empirycznie to tzw. czynnik skalujący przyjmowany empirycznie pomiędzy 0 a 1
pomiędzy 0 a 1
Wyznaczamy kolejne T
Wyznaczamy kolejne T11, T, T22, T, T33 dla dla poszczególnych grup tj.
poszczególnych grup tj.
TT11 = 15 - 0,5 (15 – 9) = 15 – 3 = 12 = 15 - 0,5 (15 – 9) = 15 – 3 = 12 TT2 2 = 13 – 0,5 (13 – 9) = 13 – 2 = 11= 13 – 0,5 (13 – 9) = 13 – 2 = 11 TT33 = 13 – 0,5 (13 – 9) = 13 – 2 = 11 = 13 – 0,5 (13 – 9) = 13 – 2 = 11 a następnie sprawdzamy czy funkcja a następnie sprawdzamy czy funkcja
punktująca jest > od T punktująca jest > od Tjj
g (dg (dii,P,Pjj) ≥ T) ≥ Tjj więc:
więc:
SS11′′ = {d = {d11,d,d33}} SS22′′ = {d = {d44,d,d55,d,d66}}
SS33′′ = = {d{d77,d,d88,d,d99}}
Mam nadzieję, że ten krótki pokaż pomoże Mam nadzieję, że ten krótki pokaż pomoże komuś zrozumieć na czym polega metoda komuś zrozumieć na czym polega metoda
Doyl’a Doyl’a
WSTI LUTY 2007