background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Słownik termów i listy odwołań. 
Parsowanie dokumentu

Jaki jest format?

pdf/word/excel/html?

Jaki jest język?

Jaki zbiór znaków jest użyty?

To są wszystko problemy klasyfikacji, 
które będą omawiane później.

Ale te zadania są często wykonywane
heurystycznie …

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Kompilacje: Format/język

Indeksowane dokumenty mogą zawierać 

dokumenty w wielu różnych językach

Pojedynczy indeks może zawierać termy w kilku 

językach.

Niekiedy dokument lub jego składowe mogą 

zawierać wiele języków/formatów

Francuski email z niemieckim załącznikiem w pdf.

Co jest pojedynczym dokumentem?

Zbiór?

Email?  (Być może jeden z wielu w skrzynce.)

Email z 5załącznikami?

Grupa zbiorów (PPT lub LaTeX jako strony HTML)

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

TOKENY  I TERMY

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Podział na tokeny

Input

: “Friends, Romans and 

Countrymen

Output

: Tokeny

Friends

Romans

Countrymen

Token

 jest instancją sekwencji znaków

Każdy taki token jest teraz kandydatem na 
wejście indeksu, po dalszym przetwarzaniu

Opis poniżej

Ale które tokeny są odpowiednie?

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Podział na tokeny

Problemy z podziałem:

Finland’s capital 

 

     Finland? Finlands? Finland’s?

Hewlett-Packard  Hewlett i Packard  

jako dwa tokeny?

state-of-the-art: rozbicie połączonej sekwencji.  

co-education

lowercaselower-caselower case ?

To może być nieefektywne pozwolić użytkownikowi 
wstawiać możliwe łączniki

San Francisco: jeden token czy dwa?  

Jak podjąć decyzję, że to jeden token?

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Liczby

3/20/91  Mar. 12, 1991 20/3/91

55 B.C.

B-52

My PGP key is 324a3df234cb23e

(800) 234-2333

Często mamy zagnieżdżone spacje

Starsze systemy IR nie mogły indeksować liczb

Ale czasem jest to bardzo wygodne:  pomyślmy o 
szukaniu kodów błędu/ścieżki webowe

(Odpowiedzią jest użycie n-gramów: później)

Będziemy często indeksować meta-dane oddzielnie

Opisy danych, format, itd.

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Podział na tokeny: problemy 
językowe 

Francuski

L'ensemble  jeden token czy dwa?

L’ Le ?

Czy l’ensemble ma odpowiadać un ensemble

Do 2003, nie było tego w Google

Międzynarodowość!

Niemieckie rzeczowniki złożone nie są dzielone

Lebensversicherungsgesellschaftsangestellter

‘pracownik firmy ubezpieczeń na życie’

Niemieckie systemy wyszukiwawcze najwięcej zyskują na 
module  compound splitter 

Może być ok. 15% spadku wydajności dla niemieckiego 

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Podział na tokeny: problemy 
językowe

Chiński i japoński nie mają spacji 
między wyrazami:

莎莎莎莎莎莎莎莎莎莎莎莎莎莎莎莎莎莎莎莎

Nie zawsze jest gwarancja unikalnego 
podziału na tokeny 

Further complicated in Japanese, with 
multiple alphabets intermingled

Daty/ilości w różnych formatach

フフフフフフ 500 フフフフフフフフフフフフフ $500K( フ 6,000 フフ )

Katakana Hiragana

Kanji Romaji

Użytkownik końcowy może całość wyrazić w hiragana!

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Podział na tokeny: problemy 
językowe

Arabski (lub hebrajski) są głównie pisane z 
prawa na lewo, ale pewne elementy jak np. 
liczby są pisane z lewa na prawo

Słowa są oddzielane, ale litery tworzą w słowach 
skomplikowane zawijasy

                            ←  →    ← →                         ← 
start

‘Algeria odzyskała niepodległość w 1962 roku po 
132 latach francuskiej okupacji.’

Kodowanie jest dość skomplikowane, ale postać w 
pamieci jest prosta

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Stop lista

Stop lista usuwa ze słownika słowa 
pomocnicze. Intuicja:

Mają one małe znaczenia semantyczne: the, a, and, to, be

Jest ich dużo: ~30% odwołań dla 30 najczęstszych słów

Ale obecny trend to unikanie stop listy:

Dobre techniki kompresji powodują, że przestrzeń 
potrzebna na stop listę jest bardzo mała (później)

Dobre techniki optymalizacji pytania pozwalają na krótki 
czas przetwarzania stop listy (później).

Potrzebujemy te słowa dla:

Pytania o frazy: “King of Denmark”

Różne tytuły piosenek, itd.: “Let it be”, “To be or not to be”

“Pytania relacyjne”:  “flights to London”

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Normalizacja do termów

Musimy „normalizować” słowa w indeksowanych 
tekstach do postaci takiej jak słowa w pytaniach

Musimy dopasować U.S.A. i USA

Rezultatem są termy :  

term

 jest 

znormalizowanym typem słowa, który jest 
wejściem do słownika w IR

Zwykle definiujemy klasy równoważności 
termów, np.: 

Skreślając kropki

U.S.A., USA  

  USA

Skreślając łączniki

anti-discriminatory, antidiscriminatory  

  antidiscriminatory

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Normalizacja: różne języki

Akcenty: np.: francuski résumé i resume.

Umlauts: np.: niemiecki: Tuebingen i Tübingen

Muszą być równoważne

Najważniejsze kryterium:

Jak nasi użytkownicy lubią pisać pytania dla tych 
słów?

Nawet dla języków które standardowo mają 
akcenty użytkownicy często ich nie piszą

Niekiedy najlepiej znormalizować do termów bez 
akcentów

Tuebingen, Tübingen, Tubingen  Tubingen

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Normalizacja: różne języki

Normalizacja dla formatu daty

7 フ 30 フ  vs. 7/30

Japończyk użyje kana vs. Chinese characters

Tokenizacja i normalizacja może zależeć od 
języka i może to wymagać rozpoznania języka

Najważniejsze: musimy znormalizować 
indeksowany tekst i termy pytania do tej 
samej postaci

Morgen will ich in MIT … 

Czy to niemieckie“

mit”?

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Duże i małe litery

Redukujemy wszystkie litery do 
małych

wyjątek: duże litery w środku zdania?

e.g., General Motors

Fed vs. fed

SAIL vs. sail

Często najlepiej używać małe litery 
bo użytkownicy i tak piszą małymi…

Google example:

Query C.A.T.  

#1 wynik jest dla “cat” (well, 
Lolcats) not Caterpillar Inc.

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Normalizacja do termów

Alternatywą dla klas równoważności jest 
rozwiniecie asymetryczne

Przykład  zastosowania

Enter: window

Search: window, windows

Enter: windows

Search: Windows, windows, 

window

Enter: Windows

Search: Windows

Potencjalnie lepsze, ale mniej efektywne

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Tezaurusy i soundex

Czy obsłużymy synonimy i homonimy?

Np.: dla klas  równoważności 

car = automobile  color = colour

Możemy 

Jeśli dokument zawiera automobile, indeksować go  

car-automobile (i odwrotnie)

Lub możemy rozbudować pytanie

Jeśli pytanie zawiera automobile, szukać także car 

Co z błędami spellingu?

Jednym z podejść jest soundex, tworzący klasy 

równoważności oparte na heurystykach 

fonetycznych

Więcej później

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Lemmatization

Redukcja różnych form do form 
podstawowych

Np.:

am, are, is  be

car, cars, car'scars'  car

the boy's cars are different colors  the 

boy car be different color

Lemmatization zakłada właściwą redukcję 
do form słownikowych

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Stemming

Redukcja termów do rdzeni przed 
indeksowaniem

“Stemming” sugeruje obcinanie

Zależy od języka

np.: automate(s), automatic, automation 
redukujemy do automat.

for example compressed 
and compression are both 
accepted as equivalent to 
compress
.

for exampl compress and
compress ar both accept
as equival to compress

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Algorytm Portera

Powszechnie używany dla stemmingu 
angielskiego

Wyniki pokazują że jest co najmniej tak dobry 
jak inne algorytmy

Konwencje + 5 faz redukcji

Fazy są stosowane sekwencyjnie

Każda faza zawiera zbiór komend

Przykład konwencji: Z zasad w złożonej 
komendzie wybierz tę, która się stosuje do 
najdłuższej końcówki.

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Typowe reguły Portera

sses  ss

ies  i

ational  ate

tional  tion

 Wagi dla reguł zależnych od słów

 (m>1) EMENT 

replacement → replac

cement  → cement

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Inne algorytmy stemmingu

Np.: Lovins stemmer 

http://www.comp.lancs.ac.uk/computing/research/stemming/general/lovins.ht
m

Pojedyncze przejście, usuwanie najdłuższych 
przyrostków (około 250 reguł)

Pełna analiza morfologiczna daje co najwyżej 
wymierne korzyści dla wyszukiwania

Czy wykonywać stemming i inne normalizacje?

Angielski: bardzo różne efekty. Podnosi kompletność dla 
pewnych pytań, ale psuje precyzję dla innych

Np.: operative (dentistry) ⇒ oper

Definitywnie użyteczne dla hiszpańskiego, niemieckiego, 
fińskiego, …

30% wzrostu wydajności dla fińskiego!

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Specyfika językowa

Wiele omawianych transformacji jest

Specyficznych dla języków i

Często też specyficznych dla aplikacji

Istnieją dodatki “plug-in” do procesu 
indeksowania

Są dostępne plug-in open source i 
komercyjne

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Wejścia słownika – pierwsze 
podejście

ensemble.french

フフ .

japanese

MIT.english

mit.german

guaranteed.english

entries.english

sometimes.english

tokenization.english

Można 

grupować wg 

języka (lub nie 

…).  

Wiecej przy 

ranking/przetwa

-rzanie pytań.

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

SZYBSZE ŁĄCZENIE 
WYSTĄPIEŃ:
SKIP WSKAŹNIKI/SKIP 
LISTY

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Przypomnienie podstawowego 
łączenia

Przejdź przez dwie listy jednocześnie w 
czasie liniowym od całkowitej liczby 
wystąpień

128

31

2

4

8

41

48

64

1

2

3

8

11

17

21

Brutus

Caesar

2

8

Jeśli długości list to m i n, to łączenie wymaga O(m+n)
operacji.

Czy można lepiej?
Tak (jeśli indeks nie zmienia się zbyt szybko).

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Zwiększanie wystąpień z 
pomocą 

skip pointers

 (w czasie 

indeksowania)

Dlaczego?

Aby pominąć wystąpienia które nie 
figurują w wynikach wyszukiwania.

Jak?

Gdzie umieszczamy skip pointers?

128

2

4

8

41

48

64

31

1

2

3

8

11

17

21

31

11

41

128

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Przetwarzanie pytań z użyciem 

skip pointers

128

2

4

8

41

48

64

31

1

2

3

8

11

17

21

31

11

41

128

Przyjmijmy że przeszliśmy przez listy aż 
przetworzyliśmy 8 na każdej liście. Dopasowaliśmy je i 
idziemy dalej.

Mamy wtedy 41 i 11 na niższej.  11 jest mniejsze.

Ale następnik 11 na niższej liście to 31, więc pominąć 
 pośrednie wystąpienia.

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Gdzie możemy umieścić 
przeskoki?

Kompromis:

Więcej przeskoków  krótszy rozstaw 

przeskoków  bardziej prawdopodobny 

przeskok.  Ale dużo porównań dla  skip 
pointers.

Mniej przeskoków  mało porównań 

wskaźników, ale długie przeskoki  mniej 

skutecznych przeskoków.

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Umiejscowienie przeskoków

Prosta heurystyka: dla długości listy L, użyć L 

równomiernie rozłożonych skip pointers.

To nie uwzględnia rozkładu termów w 
pytaniach.

Dobrze jeśli indeks jest raczej statyczny; gorzej 
jeśli  L się zmienia ponieważ są aktualizacje.

To definitywnie zwykle pomaga; ale dla 
nowoczesnego sprzętu nie zawsze (Bahle et al. 
2002) chyba, że przetwarzamy w pamięci

Koszt ładowania I/O większej listy wystąpień  może 
przekroczyć zyski z szybszego łączenia w pamięci!

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

PYTANIA O FRAZY I 

INDEKSY POZYCYJNE

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Pytania o frazy

Chcemy odpowiadać na pytania takie jak 
stanford university” – jako fraza

Więc zdanie “I went to university at 
Stanford”
 nie pasuje 

Może to wchodzić w skład  “advanced search” i 
użytkownicy to akurat rozumieją

Wiele pytań to pośrednie pytania o frazę

Dlatego nie wystarczy pamiętać tylko

   <term docs> entries

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Pierwsze podejście: indeksy z 
parami słów

Indeksowanie każdej kolejnej pary termów 
w tekście jako frazy

Np.: tkst “Friends, Romans, Countrymen” 
może generować pary

friends romans

romans countrymen

Każda z tych par jest teraz termem w 
słowniku

Przetwarzanie pytań -fraz z dwóch słów 
jest teraz proste.

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Pytania o dłuższe frazy

Dłuzsze frazy przetwarzamy jak wild-card:

stanford university palo alto można 
podzielić na pary:

stanford university AND university palo 

AND palo alto

Bez analizy dokumentów nie możemy ustalić 

czy dokumenty pasujące do pytania 
zawierają tę frazę.

Mogą być fałszywe odpowiedzi!

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Poszerzone pary słów

Parsuj indeksowany tekst i utwórz wystąpienia wg 

części mowy.

Połącz termy np. wg rzeczowników (N) i 

przedimków/przyimków (X).

Nazwij każdy string termów w postaci NX*N 

poszerzony biword.

Każdy taki poszerzony biword jest termem w 

słowniku.

Np.:  catcher in the rye

                N           X   X    N

Przetwarzanie pytań: parsuj do N-ek i  X-ów

Podziel pytanie na ulepszone pary słów

Szukaj w indeksie: catcher rye

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Problemy dla indeksów par 
słów

Fałszywe wynik – jak poprzednio

Eksplozja indeksu ze względu na większy 
słownik

Niemożliwe dla więcej niż par słów (np.: trójek)

Indeksy biword nie są standardowym 
rozwiązaniem ale czasami są częścią 
złożonej strategii

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Rozwiązanie 2: indeksy 
pozycyjne

W wystąpieniach pamiętaj dla każdego  
termu  pozycje na których jest jego token:

<term, liczba dokumentów zawierających term;
doc1: position1, position2 … ;
doc2: position1, position2 … ;
itd.>

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Pytania z odległością

LIMIT! /3 STATUTE /3 FEDERAL /2 TORT 

Ponownie tutaj /k znaczy “w k słowach”.

Oczywiście: pozycyjne indeksy mogą być 
użyte dla takich pytań a indeksy biword 
nie.

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Rozmiar indeksu pozycyjnego

Możemy kompresować  
wartość/przesunięcie: później 

Jednak indeks pozycyjny zwiększa pamięć 
istotnie

Mimo to indeks pozycyjny jest 
standardowo używany ze względu na jego 
moc i przydatność do frazowych pytań i 
pytań z odległością … w systemach z 
rankingiem.

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Rozmiar indeksu pozycyjnego

Potrzebujemy wejście dla każdego 
wystąpienia – nie tylko dla dokumentu

Rozmiar indeksu zależy od średniego 
rozmiaru dokumentu

Średnia strona web ma <1000 termów

SEC filings, książki, nawet poematy … łatwo 
100,000 terms

Rozpatrzmy częstość termów 0.1%

dlaczego?

100

1

100,000

1

1

1000

Wystąpienia 

pozycji

Wystąpienia

   Rozmiar dokumentu

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Reguły kciuka

Pozycyjny indeks jest 2–4 większy niż 
niepozycyjny indeks

Pozycyjny indeks ma 35–50% oryginalnego 
tekstu

Ostrzeżenie: wszystko to jest prawdziwe 
dla jezyków typu angielski

background image

Introduction to Information 
Retrieval

Introduction to Information 
Retrieval

 

 

 

 

Schematy złożone

Te dwa podejścia mogą z pożytkiem połączone

Dla szczególnych fraz (“Michael Jackson”, 
“Britney Spears”
) jest nieefektywne 
utrzymywanie list pozycyjnych

Tym bardziej dla fraz jak  “The Who”

Williams et al. (2004) oceniają bardziej 
skomplikowane mieszane schematy 
indeksowania

Typowa mieszanka pytań webowych dla tych 
skomplikowanych schematów potrzebowała ¼ 
czasu wymaganego dla indeksu pozycyjnego

Wymagała jednak 26% więcej pamięci niż dla 
indeksu pozycyjnego


Document Outline