Seminarium: Wyszukiwarki internetowe Marta Cylkowska

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

Minimalizacja formuł Boolowskich
Wprowadzenie do narzędzi CAT
Algorytmy sortowania i porządkowania
Standardowa biblioteka języka C++
INDEKSY I SORTOWANIE ZEWNĘTRZNE
PROGRAMOWANIE STRUKTURALNE
ALGORYTM Co to jest algorytm?
Wyszukiwanie i zapisywanie informacji
ALGORYTMY I STRUKTURY DANYCH
Elementarne struktury danych Piotr Prokopowicz
Budowa i funkcje elektronicznego katalogu biblioteki szkolnej
Sortowanie Zajęcia 13.
ZŁOŻONOŚĆ OBLICZENIOWA
OPERATORY WYSZUKIWAWCZE
Promotor: prof. dr hab. Włodzisław Duch
Support.ebsco.com EBSCOhost Wyszukiwanie złożone (z wieloma frazami) Szkolenie.
Support.ebsco.com EBSCOhost Wyszukiwanie podstawowe dla Bibliotek akademickich Szkolenie.
Tablice.
Procesor tekstu Word część 2
Wprowadzenie do budowy usług informacyjnych
Wykład 2: Systemy klasy C.A.T. (Computer-Aided Translation)
Mechanika dzielenia na podsieci. Wykład 6
Wyszukiwanie w repozytoriach tekstowych w języku polskim
Zapis informacji Dr Anna Kwiatkowska.
Google – sposoby wyszukiwania
Bibliografia Geologiczna Polski Baza danych
Bibliotekarz – odkrywca. Agenda Proces tworzenia informacji Indeksy wyszukiwawcze Budowa rekordu w Promaxie Zapytania.
Temat: Porządkowanie i ochrona dokumentów komputerowych.
Wyszukiwarki internetowe
Strategia skutecznego szukania informacji w Internecie
Kod Graya.
Algorytm Naiwny Ciąg znaków: A B D C E Wzorzec: A B.
opracowanie: Agata Idczak
Algorytmy i struktury danych
Zbiór do posortowania mieści się w pamięci
Podstawy programowania II
Cyfrowe układy logiczne
Linux - polecenia.
Algorytmy i struktury danych
A. Sumionka. Starodawna gra marynarska; Gra dwu i wieloosobowa; Gracze wykonują ruchy naprzemian; Złożona ze stosów, w których znajduje się pewna ilość
dr hab. Ryszard Walkowiak prof. nadzw.
Języki i automaty część 3.
XML – eXtensible Markup Language
Liczby całkowite dodatnie BCN
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Współpraca z innymi aplikacjami. Organizacja informacji 10 XII 2013.
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Sposoby wyszukiwania informacji w Internecie
Projektowanie stron WWW WPROWADZENIE DO POZYCJONOWANIA STRON WWW
{ Organizacja strony Układ elementów. Wybór najważniejszych treści strony! Od czego zacząć ?
Opracowała T. Głuszak Nauczyciel bibliotekarz Zespołu Szkół w Dydni.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
ALGORYTMY I STRUKTURY DANYCH WYKŁAD 03 cd. Wyszukiwanie Grażyna Mirkowska PJWSTK, 2003/2004.
Excel Filtrowanie Funkcje bazodanowe
Działania w systemie binarnym
Powtórzenie wyk ł adu 10 Fizyczna organizacja danych w bazie danych. Indeksy.
Systemy liczenia IV Kodowanie i kody Danuta Stanek.
WYKŁAD 06 Programowanie dynamiczne Grażyna Mirkowska.
 Praktyczne sposoby wpisywania adresu:  pomijanie autouzupełnianie  próba samodzielnego tworzenia poprzez sprawdzanie podstawowych kombinacji.
Wyszukiwanie informacji w Internecie Marcin Wojnowski.
Tryby adresowania i formaty rozkazów mikroprocesora
Ważone indeksy w badaniu podmiotów ekonomii społecznej Marek Bożykowski
Jak korzystać z internetu? Porady Młodych Dziennikarzy.
Indeksy drzewiaste. ISAM ISAM - INDEXED SEQUENTIAL ACCESS METHOD Problem: –Dany jest plik uporządkowany – w jaki sposób zrealizować efektywnie zapytanie.
Listy.
Zbiory rozłączne.
Indeksy.
Algorytmy i struktury danych
Zapis prezentacji:

Seminarium: Wyszukiwarki internetowe Marta Cylkowska Indeksowanie Seminarium: Wyszukiwarki internetowe Marta Cylkowska

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

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

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

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

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

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

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

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

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: http://tartarus.org/~martin/PorterStemmer/def.txt

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

Łą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

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: http://www.creativyst.com/Doc/Articles/SoundEx1/SoundEx1.htm

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

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

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

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)]

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

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

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!

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ń

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

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

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

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

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ę

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

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

Dynamiczne zbiory

Tablice suffiksowe Listy uporządkowane w kolejności leksyko-graficznej tekstu znajdującego się po termie Łatwiejsze wyszukiwanie fraz 1 5 9 12 22 26 29 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

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

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

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) = 0010 0110 S(B) = 1010 0001 S(C) = 1000 0010 S(D) = 0101 0100

Podpis dla dokumentu Logiczny OR na podpisach termów, które zawiera: dokument: podpis: d1 = [A, B] 1010 0111 d2 = [A, B, D] 1111 0110 d3 = [B, C, D] 1111 0111 d4 = [A, D] 0111 0110 S(A) = 0010 0110 S(B) = 1010 0001 S(C) = 1000 0010 S(D) = 0101 0100

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

Wyszukiwanie w SF Przykład Uzyskane wyniki dla poszczególnych termów: dokument: podpis: d1 = [A, B] 1010 0111 d2 = [A, B, D] 1111 0110 d3 = [B, C, D] 1111 0111 d4 = [A, D] 0111 0110 S(A) = 0010 0110 S(B) = 1010 0001 S(C) = 1000 0010 S(D) = 0101 0100 Uzyskane wyniki dla poszczególnych termów: A: d1, d2, d3, d4 C: d1, d2, d3 B: d1, d2, d3 D: d2, d3, d4

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

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 5 0.092 10 0.008 12 0.003

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