slajdy do wykładu II - Filip Graliński / UAM

Transkrypt

slajdy do wykładu II - Filip Graliński / UAM
Filip
Graliński
Inteligentne systemy
informacyjne
Wyszukiwarki
Filip
Graliński
Inteligentne systemy
informacyjne
Wyszukiwarki
Struktura i
znaczenie
Information
retrieval
Wyszukiwarki
Information
extraction
brak
struktury
struktura
Information
retrieval
Wyszukiwarki
Information
extraction
jak być
szybkim?
skąd trochę
struktury?
jak być
relewantnym?
brak
struktury
struktura
Information
retrieval
Wyszukiwarki
Information
extraction
z tekstu
(wyrazy!)
jak być
szybkim?
skąd trochę
struktury?
jak być
relewantnym?
brak
struktury
Information
retrieval
Wyszukiwarki
Information
extraction
przetwarzanie dokumentu – od tekstu do termów
wydobycie tekstu
rozpoznanie
języka i kodowania
przetwarzanie dokumentu – od tekstu do termów
wydobycie tekstu
rozpoznanie
języka i kodowania
tokenizacja
przetwarzanie dokumentu – od tekstu do termów
wydobycie tekstu
rozpoznanie
języka i kodowania
tokenizacja
wykrywanie
błędów
literowych
normalizacja
termy
lematyzacja
tokenizacja
Tokenizacja to podział na wyrazopodobne jednostki (tokeny)
I
trudności dla języka angielskiego:
tokenizacja
Tokenizacja to podział na wyrazopodobne jednostki (tokeny)
I
trudności dla języka angielskiego:
I
I
łącznik
apostrofy
tokenizacja
Tokenizacja to podział na wyrazopodobne jednostki (tokeny)
I
trudności dla języka angielskiego:
I
I
I
łącznik
apostrofy
daty, numery telefonów, adresy e-mailowe etc.
tokenizacja
Tokenizacja to podział na wyrazopodobne jednostki (tokeny)
I
trudności dla języka angielskiego:
I
I
I
I
łącznik
apostrofy
daty, numery telefonów, adresy e-mailowe etc.
tokeny typu C++, C#, Yahoo!
tokenizacja
Tokenizacja to podział na wyrazopodobne jednostki (tokeny)
I
trudności dla języka angielskiego:
I
I
I
I
I
łącznik
apostrofy
daty, numery telefonów, adresy e-mailowe etc.
tokeny typu C++, C#, Yahoo!
inne języki:
I
chiński – brak spacji
tokenizacja
Tokenizacja to podział na wyrazopodobne jednostki (tokeny)
I
trudności dla języka angielskiego:
I
I
I
I
I
łącznik
apostrofy
daty, numery telefonów, adresy e-mailowe etc.
tokeny typu C++, C#, Yahoo!
inne języki:
I
I
chiński – brak spacji
niemiecki – wyrazy złożone
tokenizacja
Tokenizacja to podział na wyrazopodobne jednostki (tokeny)
I
trudności dla języka angielskiego:
I
I
I
I
I
łącznik
apostrofy
daty, numery telefonów, adresy e-mailowe etc.
tokeny typu C++, C#, Yahoo!
inne języki:
I
I
I
chiński – brak spacji
niemiecki – wyrazy złożone
jęz. romańskie – zbitki typu l’ordinateur
Normalizacja
Czy powinny wyjść identyczne wyniki dla zapytań:
Uwaga! Spójność!
Zapytania powinny być normalizowane tak samo jak dokumenty
Normalizacja
Czy powinny wyjść identyczne wyniki dla zapytań:
I
łódź i Łódź ?
lowercasing
I
koń i kon ?
usuwanie diakrytyków
Uwaga! Spójność!
Zapytania powinny być normalizowane tak samo jak dokumenty
Normalizacja
Czy powinny wyjść identyczne wyniki dla zapytań:
I
łódź i Łódź ?
lowercasing
I
koń i kon ?
usuwanie diakrytyków
I
legenda i legendzie ?
lematyzacja
Uwaga! Spójność!
Zapytania powinny być normalizowane tak samo jak dokumenty
Normalizacja
Czy powinny wyjść identyczne wyniki dla zapytań:
I
łódź i Łódź ?
lowercasing
I
koń i kon ?
usuwanie diakrytyków
I
legenda i legendzie ?
lematyzacja
I
urządzić i urządzenie ?
Uwaga! Spójność!
Zapytania powinny być normalizowane tak samo jak dokumenty
Normalizacja
Czy powinny wyjść identyczne wyniki dla zapytań:
I
łódź i Łódź ?
lowercasing
I
koń i kon ?
usuwanie diakrytyków
I
legenda i legendzie ?
lematyzacja
I
urządzić i urządzenie ?
I
legenda i legendowy ?
rdzeniowanie
Uwaga! Spójność!
Zapytania powinny być normalizowane tak samo jak dokumenty
Normalizacja
Czy powinny wyjść identyczne wyniki dla zapytań:
I
łódź i Łódź ?
lowercasing
I
koń i kon ?
usuwanie diakrytyków
I
legenda i legendzie ?
lematyzacja
I
urządzić i urządzenie ?
I
legenda i legendowy ?
I
bałwan i bałwanek ?
rdzeniowanie
Uwaga! Spójność!
Zapytania powinny być normalizowane tak samo jak dokumenty
indeks (odwrócony)
z tekstu
(wyrazy!)
jak być
szybkim?
skąd trochę
struktury?
jak być
relewantnym?
brak
struktury
Information
retrieval
Wyszukiwarki
Information
extraction
odwrócony indeks (inverted index)
doc1
doc2
doc3
doc4
Ala ma kota.
Podobno jest kot w butach.
Ty chyba masz kota!
But chyba zgubiłem.
odwrócony indeks (inverted index)
doc1
doc2
doc3
doc4
Ala ma kota.
Podobno jest kot w butach.
Ty chyba masz kota!
But chyba zgubiłem.
stop words: jest, w
odwrócony indeks (inverted index)
doc1
doc2
doc3
doc4
Ala ma kota.
Podobno jest kot w butach.
Ty chyba masz kota!
But chyba zgubiłem.
stop words: jest, w
ala
but
chyba
kot
mieć
podobno
ty
zgubić
→
→
→
→
→
→
→
→
1
2
3
1
?
2
3
4
4
4
2
3
Lista wszystkich termów w kolekcji to słownik (vocabulary ):
{ala, but, chyba, kot, mieć, podobno, ty, zgubić}
indeks (odwrócony)
zapytania
boole’owskie
z tekstu
(wyrazy!)
jak być
szybkim?
skąd trochę
struktury?
jak być
relewantnym?
brak
struktury
Information
retrieval
Wyszukiwarki
Information
extraction
zapytania boole’owskie
I
pizzeria Poznań dowóz
zapytania boole’owskie
I
pizzeria AND Poznań AND dowóz
zapytania boole’owskie
I
pizzeria AND Poznań AND dowóz
I
(pizzeria OR pizza OR tratoria) AND Poznań AND dowóz
zapytania boole’owskie
I
pizzeria AND Poznań AND dowóz
I
(pizzeria OR pizza OR tratoria) AND Poznań AND dowóz
I
pizzeria AND Poznań AND dowóz AND NOT golonka
zapytania boole’owskie
I
pizzeria AND Poznań AND dowóz
I
(pizzeria OR pizza OR tratoria) AND Poznań AND dowóz
I
pizzeria AND Poznań AND dowóz AND NOT golonka
Jak domyślnie interpretować zapytanie?
I
jako zapytanie AND – być może za mało dokumentów
I
rozwiązanie pośrednie?
I
jako zapytanie OR – być może za dużo dokumentów
indeks (odwrócony)
zapytania
boole’owskie
z tekstu
(wyrazy!)
miary
wektorowe
jak być
szybkim?
skąd trochę
struktury?
jak być
relewantnym?
brak
struktury
Information
retrieval
Wyszukiwarki
Information
extraction
dokument jako wektor
doc1
doc2
doc3
doc4
Ala ma kota.
Podobno jest kot w butach.
Ty chyba masz kota!
But chyba zgubiłem.
dokument jako wektor
doc1
doc2
doc3
doc4
Ala ma kota.
Podobno jest kot w butach.
Ty chyba masz kota!
But chyba zgubiłem.
doc1
doc2
doc3
doc4
ala
1
0
0
0
but
0
1
0
1
chyba
0
0
1
1
kot
1
1
1
0
mieć
1
0
1
0
podobno
0
1
0
0
ty
0
0
1
0
zgubić
0
0
0
1
dokument jako wektor
doc1
doc2
doc3
doc4
doc5
Ala ma kota.
Podobno jest kot w butach.
Ty chyba masz kota!
But chyba zgubiłem.
Kot ma kota.
doc1
doc2
doc3
doc4
ala
1
0
0
0
but
0
1
0
1
chyba
0
0
1
1
kot
1
1
1
0
mieć
1
0
1
0
podobno
0
1
0
0
ty
0
0
1
0
zgubić
0
0
0
1
dokument jako wektor
doc1
doc2
doc3
doc4
doc5
Ala ma kota.
Podobno jest kot w butach.
Ty chyba masz kota!
But chyba zgubiłem.
Kot ma kota.
doc1
doc2
doc3
doc4
doc5
ala
1
0
0
0
0
but
0
1
0
1
0
chyba
0
0
1
1
0
kot
1
1
1
0
?
mieć
1
0
1
0
1
podobno
0
1
0
0
0
ty
0
0
1
0
0
zgubić
0
0
0
1
0
jak uwzględnić frekwencję wyrazu?
tf t,d
jak uwzględnić frekwencję wyrazu?
tf t,d
1 + log(tf t,d )
jak uwzględnić frekwencję wyrazu?
tf t,d
1 + log(tf t,d )
(
1,
0,
jeśli tf t,d > 0
w przeciwnym razie
jak uwzględnić frekwencję wyrazu?
tf t,d
1 + log(tf t,d )
(
1,
0,
jeśli tf t,d > 0
w przeciwnym razie
0.5 +
0.5 × tft,d
maxt (tf t,d )
odwrotna częstość w dokumentach
Czy wszystkie wyrazy są tak samo ważne?
odwrotna częstość w dokumentach
Czy wszystkie wyrazy są tak samo ważne?
NIE. Wyrazy pojawiające się w wielu dokumentach są mniej ważne.
odwrotna częstość w dokumentach
Czy wszystkie wyrazy są tak samo ważne?
NIE. Wyrazy pojawiające się w wielu dokumentach są mniej ważne.
Aby to uwzględnić, przemnażamy frekwencję wyrazu przez
odwrotną częstość w dokumentach (inverse document frequency ):
idf t = log
N
df t
,
idf t – odwrotna częstość wyrazu t w dokumentach
N – liczba dokumentów w kolekcji
df f – w ilu dokumentach wystąpił wyraz t?
odwrotna częstość w dokumentach (cd.)
wyraz wystąpił. . .
w 1 dokumencie
idf t = . . .
odwrotna częstość w dokumentach (cd.)
wyraz wystąpił. . .
w 1 dokumencie
idf t = . . .
= log N/1 = log N
odwrotna częstość w dokumentach (cd.)
wyraz wystąpił. . .
w 1 dokumencie
2 razy w kolekcji
idf t = . . .
= log N/1 = log N
= log N/2 lub log N
odwrotna częstość w dokumentach (cd.)
wyraz wystąpił. . .
w 1 dokumencie
2 razy w kolekcji
w połowie dokumentów
idf t = . . .
= log N/1 = log N
= log N/2 lub log N
= log N/(N/2) = log 2
odwrotna częstość w dokumentach (cd.)
wyraz wystąpił. . .
w 1 dokumencie
2 razy w kolekcji
w połowie dokumentów
we wszystkich dokumentach
idf t = . . .
= log N/1 = log N
= log N/2 lub log N
= log N/(N/2) = log 2
= log N/N = log 1 = 0
odwrotna częstość w dokumentach (cd.)
wyraz wystąpił. . .
w 1 dokumencie
2 razy w kolekcji
w połowie dokumentów
we wszystkich dokumentach
idf t = . . .
= log N/1 = log N
= log N/2 lub log N
= log N/(N/2) = log 2
= log N/N = log 1 = 0
Zamiast tf t,d będziemy w wektorach rozpatrywać wartości:
tf-idf t,d = tf t,d × idf t
odwrotna częstość w dokumentach (cd.)
wyraz wystąpił. . .
w 1 dokumencie
2 razy w kolekcji
w połowie dokumentów
we wszystkich dokumentach
idf t = . . .
= log N/1 = log N
= log N/2 lub log N
= log N/(N/2) = log 2
= log N/N = log 1 = 0
Zamiast tf t,d będziemy w wektorach rozpatrywać wartości:
tf-idf t,d = tf t,d × idf t
Overlap score measure:
Score(q, d) =
X
t∈q
tf-idf t,d