- 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-