- 1 - EKSPLORACJA ZASOBÓW INTERNETU LAB 1

Transkrypt

- 1 - EKSPLORACJA ZASOBÓW INTERNETU LAB 1
EKSPLORACJA ZASOBÓW INTERNETU LAB 1 - MIŁOSZ KADZIŃSKI (c)
LABORATORIUM 1
WYSZUKIWANIE INFORMACJI TEKSTOWYCH W EDŁUG PODOBIEŃSTWA
1. Zakres materiału
Część I: Analiza struktury sieci WWW: idee i techniki wydobywania informacji tekstowej z sieci – wyszukiwanie
i tworzenie rankingów stron internetowych według ich tekstowej zawartości i struktury hiperpołączeń.
Część II: Analiza zawartości sieci WWW: metody uczenia maszynowego i eksploracji danych porządkujące
sieć względem zawartości – grupowanie i klasyfikacja; zamiana danych znajdujących się w sieci na wiedzę.
Część III: Analiza uŜytkowania sieci WWW: uŜycie metod eksploracji danych do odkrycia wzorców korzystania
z zasobów sieciowych; pokazanie zachowań uŜytkowników.
2. Plan laboratorium I
2.1. Wyszukiwanie informacji tekstowych według podobieństwa
Strony internetowe przypominają zbiory dokumentów
Metody wyszukiwania informacji tekstowych (information retrieval) moŜna wykorzystać w wyszukiwarkach
internetowych (bez wzięcia pod uwagę struktury znaczników HTML i zewnętrznej struktury połączeń)
Przygotowanie dokumentów (tokenizacja, stop words, stemming i lematyzacja)
Model przestrzeni wektorowej: miara TF-IDF oraz odległość kosinusowa
Współczynnik Jaccarda
2.2. Zadania wykonywane w parach
2 zadania - 6 punktów (termin przesłania raportu 13 października; przesłanie po terminie to 0 punktów)
Zadanie programistyczne – 8 punktów (do 28 października)
Nieobecność na zajęciach nie zwalnia od wykonania zadań
-1-
3. Przygotowanie dokumentów
3.1. Tokenizacja
Monolityczny tekst zostaje podzielony na ciąg pojedynczych tokenów. Tokeny to ciągi znaków ograniczone
ustalonymi separatorami takimi jak spacje lub znaki przestankowe (choć w ogólności separatorem moŜe być
dowolny ciąg, który da się opisać w postaci wyraŜenia regularnego).
Wybrane problemy:
Wykorzystanie apostrofów:
Wykorzystanie myślników:
co-education, Hewlett-Packard, the hold-him-back-and-drag-him-away maneuver
Wykorzystanie spacji:
Los Angeles, white space vs. whitespace, Mar 11, 2010,
York University vs. New York University, Nowy Targ-Stary Sącz
Tokeny specyficzne dla danego języka:
C++, C#, M*A*S*H, [email protected], http://stuff.big.com/new/specials.html,
142.32.48.231, 1Z9999W99845399981,
Specyfika języka: francuski (np. l’ensemble), niemiecki (np. Lebensversicherungsgesellschaftsangestellte), chiński:
Wykorzystanie n-gramów zamiast słów (ciąg n kolejnych znaków bez wzięcia pod uwagę, czy dane słowo się
kończy czy teŜ nie)
3.2. Lista stop words
Wyrazy, które nie niosą Ŝadnych istotnych treści, pojawiają się niemal we wszystkich dokumentach
(np. rodzajniki, przyimki, itd. – „a”, „on”, „the”, „at”, „in”). Zobacz:
http://en.wikipedia.org/wiki/Stop_words
W praktyce w systemach pozyskiwania informacji moŜna spotkać trzy podejścia:
bardzo długie listy (200-300 termów), krótkie listy (7-12 termów) i brak listy.
W kolekcji dokumentów moŜna posortować termy wg. liczby wystąpień i wyeliminować te najczęstsze.
Problemy: „President of the United States” vs. President AND “United States”; To be or not to be, Let it be
W praktyce wyszukiwarki nie wykorzystują listy stopwords (rozmiar indeksu, czas).
-2-3
3.3. Normalizacja
Wyszukiwanie powinno odwoływać się do tokenów oznaczających to samo, pomimo Ŝe ich zapis róŜni się:
U.S.A vs. USA, anti-discriminatory vs. anitdiscriminatory, windows vs. window vs. Windows, C.A.T vs. cat
Dwa podstawowe podejścia: klasy równowaŜności termów oraz relacje (car – automobile).
Problemy:
Akcenty i znaki diakrytyczne: naïve vs. naive, Łódź vs. Lodz, peña vs. pena.
Standardowe podejście: „wyrównanie” tokenów do formy bez znaków diakrytycznych (szybkość, lenistwo,
ograniczenia sprzętu lub oprogramowania)
Wielkość znaków: popularne - zmiana na małe litery (problemy: General Motors, Bush)
Alternatywne rozwiązanie – zmiana na małe litery tylko dla niektórych tokenów (początek zdania lub tytuły)
Specyfika języka: angielski: colour vs. color, 3/12/91 vs. Mar. 12, 1991, Chebyshev vs. Tchebycheff,
Beijing vs. Pekin; hiszpański: el, la, los, las; niemiecki: Schütze vs. Schuetze
Uwaga: angielski to 60% sieci i tylko 1/3 blogów
3.4. Stemming i lematyzacja
W dokumentach moŜna znaleźć róŜne formy tych samych słów, np.: organize, organizes, organizing.
Istnieją teŜ rodziny słów o podobnym znaczeniu: democracy, democratic, democratization.
Cel stemmingu i lematyzacji to redukcja słowa do formy podstawowej:
RóŜnica:
Stemming – prosta heurystyka, polega na odcięciu końca słowa „w nadziei, Ŝe się uda”;
Lematyzacja – dokładny algorytm, wykorzystujący słownik i analizę morfologiczną; ma na celu znalezienie
lematu (formy słownikowej).
Najbardziej znany stemmer został opracowany przez Portera (Porter Stemmer):
http://www.tartarus.org/˜martin/PorterStemmer/
Reguły dla róŜnych grup słów:
Często uwzględniają liczbę sylab (np. replacement to replac, ale cement, to nie c):
Inne stemmery:
Lovins stemmer - http://www.cs.waikato.ac.nz/˜eibe/stemmers/
Paice stemmer - http://www.comp.lancs.ac.uk/computing/research/stemming/
-3-
Przykład działania róŜnych stemmerów:
Formalna reprezentacja róŜni się od oryginalnego dokumentu. Słowa z tego zbioru to termy (terms). Zbiór
termów ze wszystkich dokumentów to słownik.
-4-
4. Podstawowe rodzaje reprezentacji tekstów:
Reprezentacja binarna (Boolean representation): dokument dj jest reprezentowany przez wektory
o długości m, gdzie m jest liczbą termów:
(d 1j , d 2j ,..., d mj )
gdzie d j = 0 dla
i
n ij = 0 (liczba wystąpień termu i-tego w dokumencie j-tym) oraz d ij = 1 dla n ij > 0 ,
np.:
dj=”Time flies like an arrow but fruit flies like a banana” oraz T = {bee, wasp, fly, fruit, like}
reprezentacja binarna po wykonaniu stemmingu: (0, 0, 1, 1, 1)
Reprezentacja bag-of-words – uwzględnia liczbę wystąpień termu, np.:
reprezentacja bag-of-words: (0, 0, 2, 1, 2)
„Mary is quicker than John” vs. „John is quicker than Mary”
Reprezentacja pełna – miejsca wystąpienia termu razem z ich liczbą.
5. Model przestrzeni wektorowej
Model przestrzeni wektorowej (vector space model) reprezentuje dokumenty jako wektory w wielowymiarowej
przestrzeni euklidesowej, gdzie osie reprezentują termy.
ZałóŜmy, Ŝe w kolekcji jest:
n dokumentów d1, d2, …, dn,
m termów t1, t2, …, tm,
nij to liczba wystąpień termu ti w dokumencie dj.
W reprezentacji TF (term frequency) opartej na częstości termów współrzędne wektora dj są reprezentowane
przez funkcje liczby termów, zwykle normalizowane przez długość dokumentu. MoŜna to zrobić na róŜne
sposoby, ale my będziemy przewaŜnie wykorzystywać:

0 dla n ij = 0

TF (t i , d j ) = TFij =  nij
.
dla n ij > 0

 max k n kj
(mianownik – sprawdzamy liczbę wystąpień wszystkich termów w danym dokumencie i wyznaczamy tę
maksymalną).
Reprezentacja TF jest obliczana lokalnie (wszystkie osie są uwaŜane za jednakowe). Termy, które często
występują w dokumentach nie muszą być związane z kontekstem dokumentu (np. auto industry).
Podstawowym celem miary IDF (inverse document frequency), odwrotnej częstości dokumentów, jest
zmniejszenie współrzędnych pewnych osi, reprezentujących termy, które pojawiają się w wielu dokumentach
(odzwierciedla specyficzność termu odnośnie zbioru dokumentów). Miara IDF obliczana jest jako logarytm
ze stosunku liczby wszystkich dokumentów kolekcji (|D| = n) do liczby dokumentów zawierających słowo ti |Di|:
IDF (t i ) = log
D
Di
= log
N
.
| Di |
(miara idf jest wysoka dla termów, które rzadko występują w dokumentach i niska dla termów, które często
występują w dokumentach)
-5-
W reprezentacji TFIDF kaŜda współrzędna wektora dokumentu jest obliczana jako iloczyn czynników TF i IDF:
d ij = TF (t i , d j ) ⋅ IDF (t i ) .
Zapytanie q moŜna przedstawić w notacji TF-IDF (wektor TF skalowany jest przez wektor IDF wynikający
z analizy kolekcji dokumentów)
Ranking dokumentów pod względem adekwatności względem zapytania:
miary podobieństwa - kosinus kąta pomiędzy wektorem zapytań i wektorem dokumentu (iloczyn
wektorowy przez iloczyn skalarny = suma iloczynów odpowiadających sobie współrzędnych przez iloczyn
długości (długość to pierwiastek z sumy kwadratów)):
r r
d j ⋅q
sim( d j , q ) = r r
dj q
.
Problem wyboru termów do reprezentacji dokumentów:
UŜycie wszystkich termów ze zbioru;
Wybór termów z duŜymi wartościami TF (podobieństwo nie wskazuje na zawartość dokumentów),
Wybór termów z duŜymi wartościami IDF (termy bardziej specyficzne, rzadkie wektory dokumentów),
Połączenie kryteriów TF i IDF – wartość iloczynu TF (dla całego zbioru) i IDF są największe.
6. Współczynnik Jaccarda
Alternatywa dla miary kosinusowej stosowana w kontekście wyszukiwania według podobieństwa. Wykorzystuje
wszystkie termy, które występują w dokumentach, ale uŜywa prostszej binarnej reprezentacji. Idea polega na
rozwaŜeniu tylko niezerwowych współrzędnych binarnych wektorów. Współczynnik Jaccarda zdefiniowany
jest jako procent niezerowych współrzędnych, róŜnych dla obu wektorów (iloraz liczby współrzędnych, które są
równe 1 w d1 i w d2 oraz liczby współrzędnych, które są równe 1 w d1 lub d2). W kontekście zbioru termów
występujących w dokumencie T(dj):
sim(d 1 , d 2 ) =
T (d 1 ) ∩ T (d 2 )
T (d 1 ) ∪ T (d 2 )
.
Obliczenia proste, ale dla duŜych kolekcji nieefektywne wyszukiwanie według podobieństwa. Dlatego
większość obliczeń wykonywana jest off-line. Dla kaŜdego dokumentu obliczanych jest kilka najbliŜszych
dokumentów. Teoretycznie liczba par n(n-1)/2 dla n dokumentów. W praktyce:
Termy, które często występują w róŜnych dokumentach są eliminowane,
Tylko dokumenty, które mają przynajmniej jeden wspólny term tworzą parę.
-6-
7. Ćwiczenia
1. W kolekcji znajdują się 4 dokumenty oznaczone symbolami D1-D4:
D1 = {information retrieval infromation retrieval}
D2 = {retrieval retrieval retrieval retrieval}
D3 = {agency information retrieval agency}
D4 = {retrieval agency retrieval agency}
Dla zapytania Q = {information retrieval}, znajdź najbardziej adekwatny dokument zgodnie z miarą TF,
a następnie TF/IDF (T={information, retrieval, agency})
Reprezentacja bag-of-words:
Q={
},
D1 = {
},
D2 = {
}
D3 = {
},
D4 = {
}
Reprezentacja TF:
Q={
}, |Q| =
D1 = {
}, |D1| =
sim(Q,D1)=
D2 = {
}, |D2| =
sim(Q,D2)=
D3 = {
}, |D3| =
sim(Q,D3)=
D4 = {
}, |D4| =
sim(Q,D4)=
TF-IDF
idf(information) =
idf(retrieval)=
idf(agency)=
Q={
}, |Q| =
D1 = {
}, |D1| =
sim(Q,D1)=
D2 = {
}, |D2| =
sim(Q,D2)=
D3 = {
}, |D3| =
sim(Q,D3)=
D4 = {
}, |D4| =
sim(Q,D4)=
2. Dla kolekcji dokumentów z zadania I, wypełnij macierz 4x4 współczynnikami Jaccarda, wyraŜającymi
podobieństwo między wszystkimi parami dokumentów.
D1
D2
D1
D2
D3
D4
-7-
D3
D4
8. Omówienie zadań do samodzielnego wykonania
1. [4.5] W kolekcji znajduje się 5 dokumentów oznaczonych symbolami D1-D5:
D1 = "Time flies like an arrow but fruit flies like a banana."
D2 = "It's strange that bees and wasps don't like each other."
D3 = "The flight attendant sprayed the cabin with a strange fruity aerosol."
D4 = "Try not to carry a light, as wasps and bees may fly toward it."
D5 = "Fruit flies fly around in swarms. When flying they flap their wings 220 times a second."
Dla zapytania Q = „fruit flies”, znajdź najbardziej adekwatny dokument zgodnie z miarą TF/IDF. Wykorzystaj
kosinusową miarę podobieństwa oraz zbiór termów T = {bee, wasp, fly, fruit, like}. (wielkość znaków nie jest
istotna, konieczne jest wykorzystanie stemmingu (flies, flight, flying = fly, fruity = fruit; itd.). Podano już macierz
z wartościami reprezentacji bag-of-words. Przedstaw znormalizowane wartości TF i TF-IDF [0.5] (osobno
pokaŜ równieŜ obliczone współczynniki IDF [0.5]). Podaj wektor TF-IDF dla zapytania Q . Przedstaw
macierz podobieństwa dokumentów do zapytania [0.5] i udziel ostatetecznej odpowiedzi [0.5]. Czy najbardziej adekwatny dokument jest rzeczywiście adekwatny zgodnie ze zdrowym rozsądkiem? Jeśli nie, to
co jest tego przyczyną? [1]
Po wykonaniu powyŜszych poleceń załóŜ, Ŝe w dokumencie D4 autor trzy razy (a nie tylko raz) wspomniał
słowo „fly”. Jak wpłynie to na miarę podobieństwa D4 z Q (podaj wartość i skomentuj)? [0.5] Czy jest to
poŜądana właściwość miary TF/IDF (nie chodzi o to, czy algorytm rzeczywiście działa tak jak go
zaprojektowano, ale czy jest to poŜądane z punktu widzenia systemu obliczającego podobieństwo
dokumentów z zapytaniem rozwaŜanym jako całość)? Dlaczego? Czy dla większych zbiorów termów i kolekcji
tekstów wpływ takiej zmiany będzie równie duŜy? [1]
2. [1.5] Dana jest następująca kolekcja 5 dokumentów D1-D5, które poddano eliminacji stopwords i procesowi
stemmingu:
D1 = “I have been walking a long way to be here with you today." = “I have be walk long way be here you today”
D2 = “It is a long way to Warsaw, it is a long way to go…" = “it be long way Warsaw go”
D3 = “To be or not to be, this is the question!" = “be not this question”
D4 = “I have a pair of problems for you to solve today." = “I have pair problem you solve today”
D5 = “I am not able to question these orders." = “I be not able question this order”
Wypełnij macierz 5x5 współczynnikami Jaccarda wyraŜającymi podobieństwo między wszystkimi parami
dokumentów. Czy konieczne jest wypełnienie całej macierzy? Które dokumenty są najbardziej podobne?
-8-
3. [8] Dany jest zbiór dokumentów (plik documents.txt) oraz zbiór słów kluczowych (plik keywords.txt).
Zaimplementuj prostą wyszukiwarkę dokumentów, która uporządkuje je dla podanego zapytania zgodnie
z kosinusową miarą podobieństwa. Dokumenty i zapytania powinny być reprezentowane w przestrzeni TF-IDF.
Uwagi:
KaŜdy dokument z pliku documents.txt składa się z tytułu (pierwsza linia) oraz treści właściwej; tworząc
jego reprezentację w przestrzeni TF-IDF potraktuj tytuł i treść jako "całość"; dokumenty oddzielone są
pustą linią;
W pliku keywords.txt termy znajdują się w osobnych liniach;
Wszystkie termy (z keywords i documents) muszą być poddane działaniu algorytmu stemmingu
(skorzystaj z gotowej implementacji z http://tartarus.org/~martin/PorterStemmer/, o samym algorytmie
moŜesz poczytać w pliku potter-algorithm.txt); nie zapomnij o zamianie wszystkich liter na małe
i wyeliminowaniu z dokumentów znaków interpunkcyjnych, itd.; (powinna istnieć moŜliwość wyświetlenia
dokumentów i termów juŜ w przetworzonej postaci);
Program musi umoŜliwiać wczytanie pliku z dokumentami i pliku ze zbiorem termów;
Program musi umoŜliwiać zadanie dowolnego zapytania;
Wyniki powinny być prezentowane w formie listy uporządkowanej zgodnie z malejącą miarą podobieństwa
do zapytania; pojedyncza pozycja na liście powinna mieć format (tytuł dokumentu; wartość miary
podobieństwa);
Wymagany (prosty) interface uŜytkownika;
Weryfikacja poprawności działania odbywa się na podstawie zadania kilku zapytań i sprawdzeniu
wynikowego uporządkowania dokumentów;
Dowolny język programowania spośród tych, dla których dostępny jest PorterStemmer;
Czas realizacji do 28 października;
Program będzie rozwijany w ramach kolejnych zadań.
-9-

Podobne dokumenty