Sys Inf 03 Manning w 03

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Słowniki i wyszukiwanie
tolerancyjne

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Struktury danych słowników

dla indeksów odwrotnych

Pamiętają termy słownika, częstość
dokumentów, wskaźniki do każdej listy
wystąpień …

w jakiej strukturze danych?

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Naiwny słownik

Jako tablica:

char[20] int Postings *

20 bajtów 4/8 bytes 4/8 bajtów

Jak pamiętać słownik efektywnie?

Jak możemy szybko przeglądać elementy w trakcie
przetwarzania pytania?

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Struktury danych dla
słowników

Dwie główne możliwości:

Tablice haszujące

Drzewa

Jedne systemy IR używają tablice
haszujące, inne drzewa

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Haszowanie

Każdy term słownika jest haszowany na liczbę
całkowitą

(Zakładamy, że wiecie coś o haszowaniu)

Szanse:

Przeszukiwanie jest szybsze niż dla drzew: O(1)

Ograniczenia:

Nie łatwo znaleźć najmniejszy warint:

judgment/judgement

Nie ma szukania przedrostków

[szukanie

tolerancyjne]

Jeżeli słownik szybko rośnie, potrzeba drogiej
operacji ponownego haszowania całości

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Root

a-m

n-z

a-hu

hy-m

n-sh

si-z

aa

rd

va

rk

hu

yg

en

s

si

ck

le

zy

go

t

Drzewo: drzewo binarne

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Drzewo: B-drzewo

Defininicja: Każdy wewnętrzny węzeł ma
pewną liczbę dzieci w przedziale [a,b], gdzie a,
b
to określone liczby naturalne, np.: [2,4].

a-hu

hy-m

n-z

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Drzewa

Najprostsze: drzewo binarne

Częściej: B-drzewo

Drzewa wymagają standardowego uporządkowania
znaków a więc i ciągów … ale to mamy

Szanse:

Rozwiązuje problem przedrostków (termy
zaczynąjace się od hyp)

Ograniczenia:

Wolniejsze: O(log M) [i to wymaga

zrównoważonego

drzewa]

Ponowne równoważenie drzew binarnych jest
kosztowne

Ale B-drzewa łagodzą ten problem

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Pytania z dziką kartą: *

mon*: znajdź wszystkie dokumenty
zawierające jakieś słowa zaczynające się od
“mon”.

Łatwe dla leksykonu będącego binarnym
drzewem (lub B-drzewem): wyszukaj
wszystkie słowa z zakresu: mon ≤ w < moo

*mon: znalezienie słów kończących się
“mon”: trudniejsze

Utrzymywanie dodatkowego B-drzewa dla
termów do tyłu.

Możemy wyszukać wszystkie słowa z zakresu: nom

≤ w < non.

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Przetwarzanie pytań

Teraz mamy określone wszystkie termy,
które pasują do pytania z dziką kartą.

Ciągle jeszcze musimy wyszukać
wystąpienia dla każdego ze znalezionych
termów.

Np.: rozważmy pytanie:
se*ate AND fil*er
To może skutkować przetworzeniem wielu
boolowskich pytań AND.

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Obsługa B-drzewami pytań z
termami z * na końcu

Jak możemy przetworzyć * w środku termu
pytania?

co*tion

Możemy wyszukać co* AND *tion w B-
drzewie i zrobić przecięcie tych dwóch
zbiorów termów

Drogie

Rozwiązanie: przekształć pytania z dziką
kartą tak aby * występowała na końcu

To przenosi nas do indeksu

permutacyjnego (Permuterm

Index).

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Indeks permutacyjny

Dla termu hello, indeks:

hello$, ello$h, llo$he, lo$hel, o$hell

Gdzie: $ to symbol specjalny.

Pytania:

X szukaj dla X$ X* szukaj dla $X*

*X szukaj dla X$*

*X* szukaj dla X*

X*Y szukaj dla Y$X* X*Y*Z

?

Pytanie = hel*o

X=hel, Y=o

Szukaj o$hel*

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Permutacyjne przetwarzanie
pytań

Przesuwaj dziką kartę na prawo

Następnie stosuj przeglądanie B-drzewa
jak poprzednio.

Permuterm problem: Rozmiar leksykonu
podniesiony do kwadratu

Empiryczna obserwacja dla

języka angielskiego.

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Indeksy bigram (k-gram)

Wylicz wszystkie k-gramy (sekwencje k
znaków) występujące w każdym termie

Np.: z tekstu “April is the cruelest
month
” otrzymujemy 2-gramy (bigramy)

$ to specjalny symbol graniczny słowa

Utrzymuj drugi indeks odwrotny od
bigramów do
termów słownika, który
pasuje do każdego bigramu.

$a,ap,pr,ri,il,l$,$i,is,s$,$t,th,he,e$,$c,cr,ru,
ue,el,le,es,st,t$, $m,mo,on,nt,h$

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Przykład indeksu bigramu

k-gram indeks znajduje termy opierając
się na pytaniu zawierające k-gramy (tutaj
k=2).

mo

on

among

$m

mace

among

amortize

madden

around

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Przetwarzanie dzikich kart

Pytanie mon* może być przetwarzane teraz jako

$m AND mo AND on

Daje termy które pasują do wersji AND naszego
pytania z dziką kartą.

Ale wymieniliśmy moon.

Musimy przefiltrować te termy względem pytania.

Te z wymienionych termów, które zostały są
następnie z indeksu odwrotnego term-dokument.

Szybkie, efektywne pamięciowo (w porównaniu do
permuterm).

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Przetwarzanie pytań z dziką
kartą

Jak poprzednio, musimy przetworzyć pytanie
boolowskie dla każdego wymienionego,
odfiltrowanego termu.

Dzikie karty powodują drogie przetwarzanie pytań
(bardzo duże dysjunkcje…)

pyth* AND prog*

Jeśli zachęcimy “leniwych” ludzi to odpowiedzą!

Search

Type your search terms, use ‘*’ if you need to.
E.g., Alex* will match Alexander. Niektóre wyszukiwarki –
w zaawansowanych bo mało kto zagląda.

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Korekta spellingu

Dwa główne podejścia

Korekcja indeksowanych dokumentów

Korekcja pytań użytkowników aby uzyskać dobre
odpowiedzi

Dwa główne problemy:

Izolowane słowa

Sprawdzanie każdego słowa na błędy

Nie wyłapiemy błędów maszynowych w poprawnych
słowach

np.: from

form

Zależność od kontekstu

Patrz na otaczające słowa,

Np.: I flew form Heathrow to Narita.

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Korekta dokumentu

Specjalnie wymagana dla dokumentów po
OCR

Korygujace algorytmy są do tego strojone: rn/m

Można użyć specjalistycznej wiedzy dziedzinowej

Np.: OCR może pomylić częściej O i D niż O oraz I
(sąsiadujące na klawiaturze QWERTY, więc częściej
mylone przy pisaniu).

Ale także: strony webowe i nawet materiały
drukowane mają literówki

Cel: słownik zawierający mało literówek

But often we don’t change the documents
but aim to fix the query-document mapping

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Literówki w pytaniach

Nasz główny problem

Np.: pytanie Alanis Morisett

Możemy

Wyszukać dokumenty indeksowane poprawnie,
OR

Zwrócić kilka alternatywnych sugestii
poprawnego pytania

Co sądzicie … ?

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Korekta izolowanych słów

Podstawowy warunek – istnieje leksykon z
poprawną pisownią

Dwa główne podejścia

Standardowy leksykon taki jak

Webster’s English Dictionary

“industry-specific” Leksykon – utrzymywany ręcznie

Leksykon indeksowanego korpusu

Np.:, wszystkie słowa w web

Wszystkie nazwy, akronimy itd.

(zawierające literówki)

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Korekta izolowanych słów

Mając dany leksykon i ciąg znaków Q,
znaleźć w leksykonie słowo najbliższe do Q

Co znaczy najbliższe?

Omówimy kilka alternatywnych podejść

Edycyjna odległość (Levenshtein distance)

Ważona edycyjna odległość

Nakładanie n-gramów

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Odległość edycyjna

Dla dwóch stringów S

1

i S

2

, to minimalna liczba

operacji do przekształcenia jednego w drugi

Operacje są typowe dla znaków

Insert, Delete, Replace

, (Transposition)

Np.: edycyjna odległość od dof do dog jest 1

Od cat do act jest 2

(Just 1 with transpose.)

Od cat do dog jest 3.

Ogólnie znajdywane przez programowanie
dynamiczne.

Patrz

http://www.merriampark.com/ld.htm

bo

dobry przykład i applet.

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Ważona odległość edycyjna

Jak poprzednio, ale waga operacji zależy
od rodzaju znaków

Tzn. dla błędów OCR lub klawiatury, np.: m jest
bardziej prawdopodobnie pomylone z n niż z q

Więc, wymiana m na n ma mniejszą odległość
edycyjną niż na q

Może to być sformułowane jako model
probabilistyczny

Wymaga macierzy wag jako wejścia

Zmodyfikowane programowanie
dynamiczne do określenia wag

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Zastosowanie odległości
edycyjnych

Dla danego pytania, utwórz wszystkie sekwencje
znaków z określoną (ważoną) odległością (np.: 2)

Przetnij ten zbiór z listą „poprawnych” słów

Pokaż termy, które znalazłeś jako sugestie

Alternatywnie,

Możemy przejrzeć wszystkie możliwe korekty w zbiorze
inwersyjnym i zwrócić wszystkie dokumenty… wolne

Możemy przetwarzać z pojedynczą najbardziej
prawdopodobną korektą

Alternatywy ubezwłasnowolnią użytkownika, ale
wzmocnią interakcję z nim

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Odległość edycyjna do wszystkich
termów słownika?

Dla danego (przekłamanego) pytania – czy
możemy obliczyć odległość edycyjną do
wszystkich termów słownika?

Drogie i wolne

Alternatywa?

Jak możemy zmniejszyć zbiór
kandydackich termów?

Jedna z możliwości to użycie nakładania n-
gramów do tego celu

To można użyć także do korekcji spellingu.

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Nakładanie n-gramów

Określ wszystkie n-gramy w stringu
pytania i w leksykonie

Użyj indeks n-gramów (wywołaj
wyszukiwanie dla dzikiej karty) aby
wyszukać wszystkie termy leksykonu
pasujące do każdego z n-gramów pytania

Określ próg liczby pasujących n-gramów

Warianty – wagi dla typów klawiatur, etc.

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Przykład dla trigramów

Przyjmijmy tekst november

Trigramy to nov, ove, vem,

emb, mbe, ber

.

Pytanie to december

Trigramy to dec, ece, cem,

emb, mbe, ber

.

Więc 3 trigramy się nakładają (z 6 w
każdym termie)

Jak możemy to przekształcić w
znormalizowaną miarę nakładania?

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Jedna opcja – współczynnik

Jaccarda(J.C.)

To powszechnie używana miara nakładania

Niech X i Y będą dwoma zbiorami; wtedy J.C.
to

Równy 1 jeśli X i Y mają te same elementy
oraz 0 jeśli są rozłączne

X i Y nie muszą być tych samych rozmiarów

Zawsze przypisujemy liczbę między 0 i 1

Teraz próg decyduje czy mamy dopasowanie

Np.: Jeżeli J.C. > 0.8, to deklarujemy dopasowanie

Y

X

Y

X

 /

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Dopasowanie trigramów

Rozpatrzmy pytanie lord – chcemy
zidentyfikować słowa pasujące do 2 z tych
3 bigramów (lo, or, rd)

lo

or

rd

alone

lor
d

sloth

lor
d

morbid

border card

border

ardent

Standardowe “merge” dla wystąpień określi …

Zastosuj tu miarę Jaccarda (lub inną).

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Korekta spellingu
uwzględniająca kontekst

Tekst: I flew from Heathrow to Narita.

Rozpatrzmy pytanie o frazę “flew form
Heathrow”

Chcemy odpowiedzieć

Chodziło Ci o “flew from Heathrow”?

Ponieważ żaden dokument nie pasuje do

pytania o frazę.

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Korekta uwzględniająca
kontekst

Potrzebujemy tekstu z otoczenia aby

rozpoznać kontekst.

Pierwszy pomysł: wyszukać ze słownika termy

zbliżone (w ważonej odległości edycyjnej) do

każdego termu w pytaniu

Teraz próbuj wszystkie możliwe wynikowe frazy

z jednym „ustalonym” słowem danej próbie

flew from heathrow

fled form heathrow

flea form heathrow

Korekta oparta na trafieniach: Sugeruj

alternatywy mające najwięcej trafień.

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Inne podejście

Podziel pytanie o frazę na koniunkcję
biwords (wykład poprzedni).

Wyszukaj pary słów, które potrzebują
korekty tylko jednego termu.

Wymień frazy i … ustaw wg rankingu!

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Główne problemy w korekcie
spellingu

Określamy wiele alternatyw dla “Did you mean?”

Potrzeba wybrania, które przedstawimy
użytkownikowi

Stosujemy heurystyki

Alternatywne dokumenty z największą liczbą trafień

Analiza logów pytań + „podrasowanie”

Dla najbardziej popularnych najwyższych pytań

Korekta spellingu jest droga obliczeniowo

Unikanie rutynowego przetwarzania dla każdego
pytania?

Przetwarzanie tylko pytań pasujących do kilku
dokumentów

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Soundex

Klasyfikacja heurystyk dla poszerzenia
pytania o

fonetyczny

równoważnik

Specyfikacja językowa – głównie dla nazwisk

Np.: chebyshevtchebychef

Wymyślone dla dyplomów amerykańskich
… w 1918

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Soundex – typowy algorytm

Przekształć każdy token do 4-znakowej
formy zredukowanej

Wykonaj to samo z termami pytania

Zbuduj i przeszukuj indeks dla tej
zredukowanej postaci

(Jeśli pytanie wymaga dopasowania soundex)

http://www.creativyst.com/Doc/Articles/SoundEx1/SoundEx1.htm#Top

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Soundex – typowy algorytm

1.

Zapamiętaj pierwszą literę słowa.

2.

Zastąp wszystkie wystąpienia

następujacych liter na '0' (zero):

  'A', E', 'I', 'O', 'U', 'H', 'W', 'Y'.

3.

Zamień litery na cyfry jak poniżej:

B, F, P, V  1

C, G, J, K, Q, S, X, Z  2

D,T  3

L  4

M, N  5

R  6

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Soundex c.d.

4.

Usuń wszystkie pary kolejnych cyfr.

5.

Usuń wszystkie zera z ciągu wynikowego.

6.

Uzupełnij wynikowy ciąg końcowymi
zerami i zwróć cztery pierwsze pozycje,
które są wynikiem w postaci <uppercase
letter> <digit> <digit> <digit>.

Np.: Herman becomes H655.

Czy hermann generuje ten sam kod?

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Soundex

Soundex jest klasycznym algorytmem,
wykorzystywanym przez większość baz
danych (Oracle, Microsoft, …)

Jak użyteczny jest soundex?

Not very – for information retrieval

Dobry dla zadań o dużej kompletności (np.:
Interpol), jednak gorszy dla nazwisk
określonych narodowości

Zobel i Dart (1996) opisują inne algorytmy
dla fonetycznego dopasowania znacznie
lepsze dla wyszukiwania informacji

background image

Introduction to Information
Retrieval

Introduction to Information
Retrieval

Jakie pytania możemy
przetwarzać?

Mamy

Pozycyjny indeks odwrotny z pomijającymi
wskaźnikami

Indeks dla dzikiej karty

Korektę spellingu

Soundex

Pytania takie jak

(SPELL(moriset) /3 toron*to) OR

SOUNDEX(chaikofski)


Document Outline


Wyszukiwarka

Podobne podstrony:
Sys Inf 03 Manning w 06
Sys Inf 03 Manning w 19
Sys Inf 03 Manning w 02
Sys Inf 03 Manning w 07
Sys Inf 03 Manning w 21
Sys Inf 03 Manning w 20
Sys Inf 03 Manning w 09
Sys Inf 03 Manning w 01
Sys Inf 03 Manning w 04
Sys Inf 03 Manning w 08
Sys Inf 03 Manning w 05
Sys Inf 03 Manning w 06
Sys Inf 03 Manning w 19
Sys Inf 03 Manning w 02
Sys Inf 03 Manning w 07
Sys Inf Manning w
opracowane pytania MSI (1), Studia Zarządzanie PWR, Zarządzanie PWR I Stopień, V Semestr, Modelowani
abc projekt sys.inf, szkola, projekt II
Mat Dyd sys inf zarz zapasami EFS

więcej podobnych podstron