Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Seminarium: Wyszukiwarki internetowe Marta Cylkowska

Podobne prezentacje


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

1 Seminarium: Wyszukiwarki internetowe Marta Cylkowska
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 Myślniki
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: Inne znaki z reguły pomijane
a.out -> „a out” czy „aout” ? Ale aoűt to sierpień po francusku! U.S.A. -> „U S A” ? Poland’s -> Poland’s, 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 programming, programmable, programmers, programmed  program
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: Chcemy mieć je 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 słownik listy wystąpień A 2 4 5 12 B 14 C 28 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 Zapytanie złożone AND
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! B 2 14 C 3 4 5 22 23 24 A 12 Najlepsza kolejność to (A AND B) AND C

23 Skip pointers W pierwszej liście po 16 jest 32
128 128 2 4 8 16 32 64 8 31 31 1 2 3 5 8 17 21 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 Mał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 Budujemy indeksów o wielkości M Scalamy je w fazach
Faza III Faza II Faza I Budujemy indeksów o wielkości M Scalamy je w fazach

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 Ala nie ma kota, czy Ala ma kota? ala 1 22 kot 12 29 ma 9 26 nie 5 Plik odwrócony Tablica suffiksowa ala 22 1 kot 29 12 ma 26 9 nie 5

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: Podpis to ciąg m-bitowy
[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 t1, t2, ..., tr - różne termy dokumentu d, wtedy

33 Podpis dla termów Podpis to ciąg m-bitowy
Mamy k funkcji haszujących: hk: 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:
dokument: podpis: d1 = [A, B] d2 = [A, B, D] d3 = [B, C, D] d4 = [A, D] S(A) = S(B) = S(C) = S(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 Uzyskane wyniki dla poszczególnych termów:
dokument: podpis: d1 = [A, B] d2 = [A, B, D] d3 = [B, C, D] d4 = [A, D] S(A) = S(B) = S(C) = S(D) = Uzyskane wyniki dla poszczególnych termów: A: d1, d2, d3, d4 C: d1, d2, d3 B: d1, d2, d3 D: d2, d3, d4

37 Wyszukiwanie w SF Złożone zapytania typu t1 AND t2:
oblicz podpis S(d) dla d = [t1, t2] 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 Optymalnie jest
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ócone 0.05n - 0.4n Tablice suffiksowe 0.4n Signature files 0.1n - 0.2n Wspomaganie wyszukiwania fraz Tablice suffiksowe


Pobierz ppt "Seminarium: Wyszukiwarki internetowe Marta Cylkowska"

Podobne prezentacje


Reklamy Google