Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Indeksowanie Seminarium: Wyszukiwarki internetowe Marta Cylkowska.

Podobne prezentacje


Prezentacja na temat: "Indeksowanie Seminarium: Wyszukiwarki internetowe Marta Cylkowska."— Zapis prezentacji:

1 Indeksowanie Seminarium: Wyszukiwarki internetowe Marta Cylkowska

2 Indeksowanie Cel: usprawnienie wyszukiwania Chcemy odpowiadać na pytania: –czy dany term jest w dokumencie? –jeśli jest, to gdzie? Zakładamy, że użytkownik chce wyszukać informację, a nie wyszukać wzorzec w tekście

3 Przygotowanie słownika Konwersja do jednolitego formatu Spacje, interpunkcja itp. Usunięcie zbyt częstych słów Słowa w podstawowej formie (stemming) Term jako złączenie kilku słów Thesaurus, Soundex

4 Konwersja formatu Dokumenty w postaci plików o różnych formatach Dokument zawiera nie tylko treść, ale też strukturę i metadane Dokument tekst struktura metadane

5 Litery i inne znaki Białe znaki Wielkie i małe litery –Bush, SOS, IDEA ( International Data Encryption Standard ) Myślniki –co-education razem –Hewlett-Packard razem lub osobno –state-of-the-art.osobno –San Francisco-Los Angeles osobno

6 Litery i inne znaki Znaki interpunkcyjne: –a.out -> a out czy aout ? Ale aoűt to sierpień po francusku! –U.S.A. -> U S A ? –Polands -> Polands, Poland s, Poland, Polands? Inne znaki z reguły pomijane –wyjątki: C++, J#, i++ (++i inaczej ), $10 Znaki diakrytyczne

7 Cyfry Zwykle same w sobie niosą mało informacji, mogą być pomijane Niektóre termy z cyframi więcej znaczą: –340B.C. – – –My PGP key is 324a3df234cb23e

8 Stop-lista Stop-lista zawiera bardzo częste słowa a, the, it, to, on, of, and, be,..., can(?) Przy wyszukiwaniu te słowa prawie nie eliminują dokumentów, więc nie indeksujmy ich Wtedy nie można wyszukać to be or not to be, the who,... Indeksujmy, ale z zapytania usuńmy. Chyba że zapytanie zawiera tylko słowa ze stop-listy

9 Stemming Chcemy wyznaczyć rdzeń słowa programming, programmable, programmers, programmed program Mniej różnych termów - oszczędność miejsca Być może użytkownikowi nie zależy na dokładnej formie, a być może zależy... university vs. universal

10 Stemming Jak wyszukać rdzeń słowa? –zbudować słownik jak do gry Scrabble –automatycznie (algorytm Portera): Porównanie najdłuższego suffiksu słowa ze wzorcem: –sses-> ss –s-> ε –ator-> ate Algorytm ma 5 faz i wiele takich reguł... Szczegóły algorytmu Portera:

11 Rozbicie słów Słowa mogą być złożone, nawet bardzo: –w języku niemieckim jest wiele takich słów –w polskim: polioksyetylenoalkiloamoniohydroksypropylomaleinian –można rozbić na: poli, oksy, etyleno, alkilo, amonio, hydroksy, propylo, maleinian

12 Łączenie grup słów Można kilka słów traktować jako term Rzeczowniki niosą najwięcej treści, dlatego grupy rzeczowników będą termami computer science Szukamy rzeczowników, które często są blisko w tekście Traktujemy je razem jako jeden term

13 Thesaurus, Soundex Grupowanie termów podobnych, aby je ujednolicić Thesaurus: podobne w znaczeniu Soundex: podobne w brzmieniu chebyshev tchebycheff Soundex można zrobić automatycznie Szczegóły algorytmu Soundex:

14 Modyfikacja zapytania Zapytanie może być modyfikowane dokładnie tak jak dokumenty –wtedy mniej dokładne wyniki wyszukiwania Może nie być modyfikowane (lub częściowo) –jest możliwe dokładnie wyszukanie –zależy to od struktury indeksu

15 Indeksowanie Już wiemy, co chcemy umieć wyszukiwać Nie wiemy jeszcze jak Indeks to struktura, która ma umożliwiać szybkie znajdowanie dokumentów zgodnych z zapytaniem

16 Struktura indeksu Żadna - przeglądanie wszystkich dokumentów Pliki odwrócone (inverted files) Drzewa suffiksowe, tablice suffiksowe Signature files Baza danych - dla dynamicznych zbiorów

17 Pliki odwrócone Mamy dane w postaci: [dokument (pozycja), term] Chcemy mieć je w postaci: [term, częstość, lista dokumentów (pozycji)]

18 Pliki odwrócone Słownik - wszystkie termy Lista wystąpień - dla każdego termu Słownik i listy są posortowane A24512 B214 C słowniklisty wystąpień Rozmiar słownika ok. n - łączny rozmiar wszystkich dokumentów

19 Lista wystąpień Zawiera nr dokumentu, w którym występuje term Może zawierać też dokładne miejsce występowania w tym dokumencie Dla termu wielokrotnie występującego w tekście musimy pamiętać wszystkie jego wystąpienia

20 Wyszukiwanie Odnalezienie wszystkich termów z zapytania w słowniku Odzyskanie list wystąpień dla każdego termu Manipulacja listami wystąpień Przeglądanie dokumentów dla zapytań z frazami, gdy adresem jest dokument Dopiero w ostatniej fazie zaglądamy do tekstu!

21 Wyszukiwanie Zapytanie proste tylko wyszukanie w liście wystąpień Zapytanie złożone AND wyznaczenie części wspólnej Zapytanie złożone OR scalenie posortowanych list wystąpień Czas liniowy względem długości list wystąpień

22 Wyszukiwanie A AND B AND C - czy kolejność jest istotna? Tak, lepiej zacząć od najrzadziej występującego termu Mamy częstości wystąpień w słowniku! B214 C A Najlepsza kolejność to (A AND B) AND C

23 Skip pointers W pierwszej liście po 16 jest 32 W drugiej można przeskoczyć dodatkowym wskaźnikiem 17, 21 nie muszą być przeglądane

24 Skip pointers Ile powinno być dodatkowych wskaźników? –Dużo często będziemy po nich skakać dużo porównań na wskaźnikach –Mało mniejsza szansa na skoki mniej porównań –Optimum:, gdzie L to długość listy wystąpień odpowiednie dla niezmieniającej się listy

25 Budowanie indeksu Cały indeks nie mieści się w pamięci RAM Algorytm budowania indeksu: –Zbuduj indeksy dla mniejszej liczby dokumentów, tak by się mieściły w RAM –Scalaj te indeksy

26 Budowanie indeksu Dla każdego dokumentu, dla każdego termu –szukaj termu w słowniku –jeśli nie znaleziono, to dodaj do słownika i dokument do listy wystąpień –jeśli znaleziono, to jeśli trzeba dodaj do listy wystąpień adres dokumentu na właściwą pozycję

27 Scalanie indeksów Budujemyindeksów o wielkości M Scalamy je w fazach Faza I Faza II Faza III

28 Dynamiczne zbiory Update jest kosztowny Wykonywany raz na jakiś czas Dokumenty dodawane, usuwane pamiętane osobno

29 Dynamiczne zbiory

30 Tablice suffiksowe Listy uporządkowane w kolejności leksyko- graficznej tekstu znajdującego się po termie Łatwiejsze wyszukiwanie fraz Alaniemakota, czyAlamakota? ala122 kot1229 ma926 nie5 Plik odwrócony ala221 kot2912 ma269 nie5 Tablica suffiksowa

31 Wyszukiwanie fraz Znajdź pierwszy term w słowniku Przejdź do jego listy wystąpień Zaglądając do tekstu wyszukaj binarnie frazę

32 Signature files Dane w postaci: [dokument, podpis dokumentu] Podpis to ciąg m-bitowy Każdy term ma też swój podpis Podpis dokumentu to OR wszystkich termów, które zawiera Niech t 1, t 2,..., t r - różne termy dokumentu d, wtedy

33 Podpis dla termów Podpis to ciąg m-bitowy Mamy k funkcji haszujących: h k : termy {1..m} Ustawiamy i-ty bit podpisu termu t na 1 tylko wtedy gdy któraś funkcja h(t) = i –Przykład dla k = 3, m = 8 S(A) = S(B) = S(C) = S(D) =

34 Podpis dla dokumentu Logiczny OR na podpisach termów, które zawiera: S(A) = S(B) = S(C) = S(D) = dokument:podpis: d 1 = [A, B] d 2 = [A, B, D] d 3 = [B, C, D] d 4 = [A, D]

35 Wyszukiwanie w SF Oblicz podpis dla t, sprawdź które dokumenty zawierają podpis dla t Te dokumenty być może zawierają t –dopuszczamy pomyłki lub –skanujemy wszystkie dokumenty aby to sprawdzić Pozostałe dokumenty na pewno nie zawierają t

36 Wyszukiwanie w SF Przykład S(A) = S(B) = S(C) = S(D) = dokument:podpis: d 1 = [A, B] d 2 = [A, B, D] d 3 = [B, C, D] d 4 = [A, D] Uzyskane wyniki dla poszczególnych termów: A: d 1, d 2, d 3, d 4 C: d 1, d 2, d 3 B: d 1, d 2, d 3 D: d 2, d 3, d 4

37 Wyszukiwanie w SF Złożone zapytania typu t 1 AND t 2 : –oblicz podpis S(d) dla d = [t 1, t 2 ] –znajdź dokumenty zawierające S(d) Tak samo szybkie jak dla pojedynczych termów Mniejsze prawdopodobieństwo pomyłki

38 Ile pomyłek się zdarzy? To zależy od parametrów k- liczba funkcji haszujących m- liczba bitów (ustalamy na ile nas stać) n- liczba termów w dokumencie –Optymalnie jest –Prawdopodobieństwo pomyłki wynosi: pdb pomyłki

39 Porównanie metod Rozmiar w stosunku do oryginalnego tekstu (n) –Pliki odwrócone0.05n - 0.4n –Tablice suffiksowe0.4n –Signature files0.1n - 0.2n Wspomaganie wyszukiwania fraz –Tablice suffiksowe


Pobierz ppt "Indeksowanie Seminarium: Wyszukiwarki internetowe Marta Cylkowska."

Podobne prezentacje


Reklamy Google