Zaglądamy pod maskę: podstawy działania silnika wyszukiwawczego na przykładzie Lucene

Podobne dokumenty
Wyszukiwanie dokumentów WWW bazujące na słowach kluczowych

Wyszukiwanie dokumentów/informacji

Wstęp do przetwarzania języka naturalnego

Indeksowanie full text search w chmurze

Wyszukiwanie tekstów

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych

Architektury Usług Internetowych. Wyszukiwanie usług w systemie BeesyCluster

Metody indeksowania dokumentów tekstowych

Bazy dokumentów tekstowych

Interaktywne wyszukiwanie informacji w repozytoriach danych tekstowych

Warszawa. Indeksowanietreściwteoriipraktyce. warsztaty

Wyszukiwanie i Przetwarzanie Informacji Information Retrieval & Search

Zastosowanie metod statystycznych do ekstrakcji słów kluczowych w kontekście projektu LT4eL. Łukasz Degórski

Eksploracja tekstu. Wprowadzenie Wyszukiwanie dokumentów Reprezentacje tekstu. Eksploracja danych. Eksploracja tekstu wykład 1

Wyszukiwanie i Przetwarzanie Informacji Information Retrieval & Search

EKSPLORACJA ZASOBÓW INTERNETU LAB 1 - MIŁOSZ KADZIŃSKI LABORATORIUM WSTĘPNE WYSZUKIWANIE INFORMACJI TEKSTOWYCH WEDŁUG PODOBIEŃSTWA

19 Własności iloczynu skalarnego: norma, kąt i odległość

1. Dane punkty na płaszczyźnie. Trzeba narysować dendrogram centroidu

Przetwarzanie języka w praktyce. przykładzie problemu rozstrzygania wieloznaczności

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

Forma. Główny cel kursu. Umiejętności nabywane przez studentów. Wymagania wstępne:

Wyszukiwanie informacji w internecie. Nguyen Hung Son

Wyszukiwanie binarne

Tematy próbnego pisemnego egzaminu dojrzałości z matematyki

Numeryczne rozwiązywanie równań i układów równań

TEORETYCZNE PODSTAWY INFORMATYKI

baton OR mars 282,000, ,000,000 baton OR mars 283,000,000 WYSZUKIWANIE BOOLOWSKIE

Energia potencjalna pola elektrostatycznego ładunku punktowego

Eksploracja złożonych typów danych Text i Web Mining

POMOC. 1. Wybór Katalogu

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

Text mining w programie RapidMiner Michał Bereta

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

Technologie wyszukiwania pełnotekstowego

Plan wynikowy. Klasa III Technikum ekonomiczne. Kształcenie ogólne w zakresie rozszerzonym

SPOTKANIE 2: Wprowadzenie cz. I

Hybrydowa metoda rekomendacji dokumentów w środowisku hipertekstowym

Algorytm memetyczny w grach wielokryterialnych z odroczoną preferencją celów. Adam Żychowski

OPTYMALIZACJA SCHEMATU WAŻENIA TERMINÓW DLA MODELU WEKTOROWEGO TERM FREQUENCY OPTIMIZATION FOR THE VECTOR SPACE MODEL

Nowy wymiar jakości danych w ubezpieczeniach. Wojciech Partyka

Aktualizacja baz danych systemu qs-stat

Systemy Wspomagania Decyzji

Multiwyszukiwarka EBSCO Discovery Service - przewodnik

Wymagania na egzamin poprawkowy z matematyki w roku szkolnym 2018/2019 klasa 1 TLog

INTERPOLACJA I APROKSYMACJA FUNKCJI

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz.3

Równania prostych i krzywych; współrzędne punktu

Wymagania programowe na poszczególne oceny. Klasa 2. Potęgi o wykładnikach naturalnych i całkowitych. Poziom wymagań edukacyjnych:

METODY INŻYNIERII WIEDZY

Obliczenia iteracyjne

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY I GIMNAZJUM

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Co wylicza Jasnopis? Bartosz Broda

DZIAŁ I: LICZBY I DZIAŁANIA Ocena dostateczna. Ocena dobra. Ocena bardzo dobra (1+2) ( ) Uczeń: (1+2+3) Uczeń: określone warunki

Pobieranie i przetwarzanie treści stron WWW

ROZWIĄZANIA DO ZADAŃ

Indeksowanie w bazach danych

Rozwiązywanie równań nieliniowych i ich układów. Wyznaczanie zer wielomianów.

EGZAMIN MATURALNY Z MATEMATYKI

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY W KLASIE I GIMNAZJUM

Zastosowania obliczeń inteligentnych do wyszukiwania w obrazowych bazach danych

RÓWNANIA NIELINIOWE Maciej Patan

Informatyka wspomaga przedmioty ścisłe w szkole

Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

Wykład 10 Skalowanie wielowymiarowe

Języki formalne i automaty Ćwiczenia 6

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Wymagania edukacyjne z matematyki Klasa I. LICZBY I DZIAŁANIA Dopuszczający (K) Dostateczny (P) Dobry (R) bardzo dobry (D) Celujący (W) Uczeń:

Excel - podstawa teoretyczna do ćwiczeń. 26 lutego 2013

Zadania z algebry liniowej Iloczyn skalarny, przestrzenie euklidesowe

Wprowadzenie do metod numerycznych Wykład 3 Metody algebry liniowej I Wektory i macierze

ZAGADNIENIA PROGRAMOWE I WYMAGANIA EDUKACYJNE DO TESTU PRZYROSTU KOMPETENCJI Z MATEMATYKI DLA UCZNIA KLASY II

REPREZENTACJA I WYSZUKIWANIE DOKUMENTÓW TEKSTOWYCH W BAZACH DANYCH

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Sieci komputerowe. Wykład 8: Wyszukiwarki internetowe. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Kryteria oceniania z zakresu klasy pierwszej opracowane w oparciu o program Matematyki z plusem dla Gimnazjum

DZIAŁ 1. LICZBY I DZIAŁANIA

83 Przekształcanie wykresów funkcji (cd.) 3

Matematyka stosowana i metody numeryczne

METODY INŻYNIERII WIEDZY

Metody numeryczne w przykładach

KLUCZ PUNKTOWANIA ODPOWIEDZI

Plan wynikowy. Klasa III Technik pojazdów samochodowych/ Technik urządzeń i systemów energetyki odnawialnej. Kształcenie ogólne w zakresie podstawowym

KARTOTEKA ZAGADNIENIOWA Pedagogicznej Biblioteki Wojewódzkiej w Słupsku Krok po kroku. Jolanta Janonis, Pedagogiczna Biblioteka Wojewódzka w Słupsku

Podstawy Informatyki. Sprawność algorytmów

STRONA DO WSTAWIENIA: STR_TYT\MEPGI1_001tyt.pdf

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008

Administracja i programowanie pod Microsoft SQL Server 2000

Multiwyszukiwarka EBSCO Discovery Service przewodnik

ocena dopuszczająca ( K)

CLUSTERING. Metody grupowania danych

Informatyka A. Algorytmy

Ćwiczenie Wyznaczanie tras sumarycznych dla adresów IPv4 i IPv6

Wymagania edukacyjne z matematyki dla klasy I gimnazjum wg programu Matematyka z plusem

Rozkład łatwości zadań

Metoda list prostych Wykład II. Agnieszka Nowak - Brzezińska

Transkrypt:

2..22 Zaglądamy pod maskę: podstawy działania silnika wyszukiwawczego na przykładzie Lucene Dominika Puzio

Indeks

Podstawy: dokument Dokument: jednostka danych, pojedynczy element na liście wyników wyszukiwania, to co chcemy wyszukiwać ( strona www, artykuł, post, dobro konsumpcyjne ) dokument id: content: Ala ma kota pole 3

Podstawy: indeks Indeks: repozytorium, w którym silnik wyszukiwawczy przechowuje dane, zorganizowane w taki sposób, aby dało się w nich szybko wyszukiwać id: content: Ala ma kota id:2 content: Ola ma psa id:3 content: Ala lubi psa 4

Indeks odwrócony doc content: content: Ala Ala ma ma kota kota doc2 content: content: Ola Ola ma ma psa psa doc3 content: content: Ala Ala lubi lubi psa psa ala 3 ma 2 kota ola 2 psa 2 3 lubi 3 5

Indeks: budowanie doc content: content: Ala Ala ma ma kota kota content:ala 3 doc2 content: content: Ola Ola ma ma psa psa doc3 content: content: Ala Ala lubi lubi psa psa content:kota content:ma content:lubi content:ma 3 2 content:ola content:ma 2 2 content:psa content:ola 2 content:psa 2 3 6

Indeks: słownik content:ala 3 content:kota słownik content:lubi 3 content:ma 2 content:ola 2 content:psa 2 3 termy listy id dokumentów 7

Indeks: słownik doc id: id: content:ala ma ma kota kota content:ala 3 content:kota doc2 id:2 id:2 content:ola ma ma psa psa doc3 id:3 id:3 content:ala lubi lubi psa psa content:lubi 3 content:ma 2 content:ola 2 content:psa 2 3 id: id:2 2 id:3 3 8

Indeks: przebieg wyszukiwania QUERY: [content: ala] content:ala 3 QUERY: [content: ala OR content: kota] content:ala 3 content:kota OR 3 QUERY: [content: ala AND content: kota] content:ala 3 content:kota AND 9

Indeks: oglądamy słownik Luke czytnik indeksów Lucene

Algorytm scoringu (czyli dlaczego kot jest ważniejszy niż pies)

Vector Space Model i trochę historii historycznie: idea użycia komputerów do poszukiwania informacji pojawiła się w 945 roku (http://www.theatlantic.com/magazine/archive/945/7/as-we-may-think/3388/) pierwsze silniki wyszukiwawcze (akademickie) lata 5' pierwsze wielkoskalowe silniki wyszukiwawcze, gotowe do użytku komercyjnego lata 7' Vector Space Model: algebraiczny model dokumentu tekstowego, opracowany i pierwszy raz użyty w latach 6' na Cornell University jako część systemu SMART (System for the Mechanical Analysis and Retrieval of Text) jednej z pierwszych tekstowych wyszukiwarek Vector Space Ranking: algorytm scoringu oparty o Vector Space Model 2

Informacje zawarte w słowniku content:ala 3 content:kota content:lubi 3 content:ma 2 content:ola 2 dokument : zawiera słowo ala dokument 2: nie zawiera słowa ala dokument 3: zawiera słowo ala content:psa 2 3 3

Alternatywny zapis słownika doc doc2 doc3 content:ala content:kota content:lubi content:ma content:ola content:psa Indeks macierzowy 4

Vector Space Model: wektor dokumentu doc doc2 doc3 ala kota doc3 lubi doc2 ma doc ola psa ala kota lubi ma ola psa wektor dokumentu wektor dokumentu doc w przestrzeni doc słów 5

Vector Space Model: waga słów doc ala kota lubi ma ola psa Założenie Vector Space Model: informacja o tym, że słowo wystąpiło w dokumencie (lub nie) nie jest wystarczająca. Model bierze pod uwagę również to, że: im więcej wystąpień słowa w dokumencie, tym wyżej powinien być na liście wyników nie wszystkie słowa są jednakowo ważne 6

Vector Space Model: waga słów Wartością współrzędnej słowa s w dokumencie d jest waga w s, d obliczana na podstawie liczby wystąpień słowa s w dokumencie d i wartości informacyjnej słowa s. doc w ala,doc w kota,doc w lubi,doc w ma,doc w ola,doc w psa,doc ala kota lubi ma ola psa 7

Vector Space Model Krok : każde słowo w dokumencie dostaje wagę zależną od liczby wystąpień słowa w dokumencie i wartości informacyjnej słowa bierzemy pod uwagę liczbę wystąpień poszukiwanego słowa w dokumencie - im więcej razy słowo z zapytania wystąpiło w dokumencie, tym wyższy score dla dokumentu dla każdego słowa w dokumencie mamy liczbę: tf s, d (term frequency) = liczba wystąpień słowa s w dokumencie d dla każdego słowa w dokumencie wyznaczamy wagę wg. wzoru: w s, d = log tf s, d dlatf s,d w przeciwnym wypadku 8

Vector Space Model Dlaczego logarytm? w s,d = log tf s, d dlatf s,d w przeciwnym wypadku żeby nie mieć zależności wprost (dokument zawierający słowo razy, nie jest razy lepszy od tego, który zawiera je raz) Dlaczego +log? żeby słowo, które wystąpiło w dokumencie raz, nie otrzymało wagi ( log = ) Dlaczego osobno przypadek, kiedy tf s, d =? dlatego, że log = -ꝏ 9

Vector Space Model Krok : każde słowo w dokumencie dostaje wagę zależną od liczby wystąpień słowa w dokumencie i wartości informacyjnej słowa bierzemy pod uwagę liczbę wystąpień poszukiwanego słowa w całym indeksie im rzadsze słowo, tym więcej informacji niesie i dokument je zawierający powinien mieć wyższy score dla każdego słowa w dokumencie mamy liczbę: df s (document frequency) = liczba dokumentów w indeksie zawierających słowo s dla każdego słowa w dokumencie wyznaczamy tzw. inverse document frrequency: idf s =log N df s N - liczba wszystkich dokumentów w indeksie 2

Vector Space Model Krok : każde słowo w dokumencie dostaje wagę zależną od tf i idf dla każdego słowa w dokumencie wyznaczamy wagę: w s, d = log tf s,d log N df s waga jest wyznaczana podczas indeksowania i zapisywana w indeksie Przykład: doc doc2 doc3 ala tf ala, doc = tf ala,doc3 = tf ala,doc2 = N = 3 df ala = 2 w ala,doc =w ala, doc3 = log log 3 2,58 w ala,doc2 = log 3 2 = 2

Vector Space Model Krok 2: każdy dokument przedstawiamy jako wektor w przestrzeni słów doc w ala,doc w kota,doc w lubi,doc w ma,doc w ola,doc w psa,doc ala kota lubi ma ola psa doc: Ala ma kota doc [,58,58,58 ] ala kota lubi ma ola psa 22

Vector Space Model Krok 2: każdy dokument przedstawiamy jako wektor w przestrzeni słów doc: Ala ma kota doc2: Ola ma psa doc3: Ala lubi psa doc [,58,58,58 ] doc2 [,58,58,58 ] doc3 [,58,58,58 ] ala kota lubi ma ola psa 23

Vector Space Model (Ranking) Krok 3: zapytanie przedstawiamy jako wektor w przestrzeni słów z: kota i psa z [,58,58 ] ala kota lubi ma ola psa 24

Vector Space Model (Ranking) Krok 4: liczymy odległość pomiędzy wektorem zapytania a wektorem dokumentu odległość Euklidesowa nie jest dobra: a b a b d a, b = a, b = d a, b =.5.25 2.5.25 2.35 a, b = 25

Vector Space Model (Ranking) Krok 4: liczymy odległość pomiędzy wektorem zapytania a wektorem dokumentu jako miary odległości można użyć kąta między wektorami ale obliczanie kąta jest trudne (π!) zamiast samego kąta można policzyć jego cosinus: cos = cos9 = cos a, b = a b a b = i i a i 2 a i b i i b i 2 cosinus kąta między wektorami = odległość cosinusowa wektorów 26

Vector Space Model (Ranking). każde słowo w dokumencie dostaje wagę zależną od liczby wystąpień słowa w dokumencie i wartości informacyjnej słowa 2. każdy dokument przedstawiamy jako wektor w przestrzeni słów 3. zapytanie przedstawiamy jako wektor w przestrzeni słów 4. liczymy odległości cosinusowe pomiędzy wektorem zapytania a wektorami dokumentów 5. sortujemy dokumenty malejąco według odległości ich wektorów od wektora zapytania uproszczony wzór na score dokumentu: score q,d = s q s q d log tf s, q idf s log tf s, d idf s log tf s, q idf s 2 s d log tf s,d idf s 2 27

Vector Space Model w praktyce gdzie: scoring Lucene: score q,d = q d q querynorm q tf t,d idf 2 t boost s norm t, d t q querynorm(q) - czynnik normalizujący (stała), wprowadzony aby dało się porównać wyniki różnych typów zapytań, nie ma wpływu na pozycję dokumentu na liście tf zmodyfikowane term frequency idf zmodyfikowane inverse document frequency boost(s) dodatkowa waga słowa (termu) ustawiana w treści zapytania norm(t, d) norma dokumentu, liczba obliczana w trakcie indeksowania i zapisywana w indeksie: boost(d) dodatkowa waga dokumentu, ustawiana w czasie indeksowania field - długość pola (liczba słów) tf t, d := tf t,d N idf t := log df norm t,d =boost d boost field field boost(field) dodatkowa waga pola, ustawiana w czasie indeksowania 28

Vector Space Model w praktyce normy dokumentów 29

Vector Space Model w praktyce wartości tf dla każdego termu słownik + df dla każdego termu 3

Zasoby wiedzy Lucene Wiki: http://wiki.apache.org/lucene-java Luke http://code.google.com/p/luke/ Java User List: java-user@lucene.apache.org M. McCandless, E. Hatcher, O. Gospodnetić Lucene in Action, Second Edition Lucid Works:http://www.lucidworks.com/ C.D. Manning, P. Raghavan, H. Schutze Introduction to Information Retrieval http://www-csli.stanford.edu/~hinrich/information-retrieval-book.html 3