EKSPLORACJA ZASOBÓW INTERNETU LAB 1 - MIŁOSZ KADZIŃSKI LABORATORIUM WSTĘPNE WYSZUKIWANIE INFORMACJI TEKSTOWYCH WEDŁUG PODOBIEŃSTWA 1. Dane kontaktowe Miłosz Kadziński (milosz.kadzinski@cs.put.poznan.pl, pokó 1.6.6 w CWiBT, tel. 6653022; maile z tytułem zaczynaącym się od [EZI], konsultace czw. 9:45) Terminy zaęć: czw. 11.45 13.15; 13.30 15.00 - sala 1.6.21; nie mamy zaęć 13 października Forma zaęć: przedstawienie poęcia lub algorytmu, wspólne rozwiązywanie zadań, samodzielne rozwiązywanie zadań, przesłanie rozwiązań do wtorku do północy lub przedstawienie oprogramowania na określonych zaęciach Adres przedmiotu: http://www.cs.put.poznan.pl/mkadzinski/ezi/ Zaliczenie: raporty z rozwiązaniem zadań po każdych zaęciach; punkty zbierane przez cały semestr 2. Zakres materiału Część I: Analiza struktury sieci WWW: idee i techniki wydobywania informaci tekstowe z sieci wyszukiwanie i tworzenie rankingów stron internetowych według ich tekstowe zawartości i struktury hiperpołączeń. Część II: Analiza zawartości sieci WWW: metody uczenia maszynowego i eksploraci danych porządkuące sieć względem zawartości grupowanie i klasyfikaca; zamiana danych znaduących się w sieci na wiedzę. Część III: Analiza użytkowania sieci WWW: użycie metod eksploraci danych do odkrycia wzorców korzystania z zasobów sieciowych; pokazanie zachowań użytkowników. 3. Plan laboratorium I 3.1. Wyszukiwanie informaci tekstowych według podobieństwa Strony internetowe przypominaą zbiory dokumentów Metody wyszukiwania informaci tekstowych (information retrieval) można wykorzystać w wyszukiwarkach internetowych (bez wzięcia pod uwagę struktury znaczników HTML i zewnętrzne struktury połączeń) Przygotowanie dokumentów (tokenizaca, stop words, normalizaca, stemming i lematyzaca) Model przestrzeni wektorowe: miara TF-IDF oraz odległość cosinusowa Współczynnik Jaccarda 3.2. Zadania wykonywane w parach 2 zadania - 6 punktów (termin przesłania raportu 11 października (wtorek do północy); przesłanie po terminie to 0 punktów) Zadanie programistyczne 8 punktów (do zaęć 20 października na razie nie trzeba przesyłać; pokazuemy na zaęciach) potem eszcze coś do tego dodzie Nieobecność na zaęciach nie zwalnia od wykonania zadań W semestrze będzie ok. 12 zestawów zadań. Możecie (nie musicie:) maksymalnie 2 razy pozwolić sobie na niewykonanie zadań bez żadnych konsekwenci (tzn. zmniesza się sumaryczna liczba punktów, którą możecie zdobyć). W praktyce na końcu odrzucam dwa nagorsze wyniki. - 1 -
4. Przygotowanie dokumentów 4.1. Tokenizaca Monolityczny tekst zostae podzielony na ciąg poedynczych tokenów. Tokeny to ciągi znaków ograniczone ustalonymi separatorami takimi ak space 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 spaci: Los Angeles, white space vs. whitespace, Mar 11, 2010, York University vs. New York University, Nowy Targ-Stary Sącz Tokeny specyficzne dla danego ęzyka: C++, C#, M*A*S*H, black@mail.yahoo.com, http://stuff.big.com/new/specials.html, 142.32.48.231, 1Z9999W99845399981, Specyfika ęzyka: francuski (np. l ensemble), niemiecki (np. Lebensversicherungsgesellschaftsangestellte), chiński: Wykorzystanie k-gramów zamiast słów (ciąg kolenych znaków bez wzięcia pod uwagę, czy dane słowo się kończy czy też nie) 4.2. Lista stop words Wyrazy, które nie niosą żadnych istotnych treści, poawiaą się niemal we wszystkich dokumentach (np. rodzaniki, przyimki, itd. a, on, the, at, in ). Zobacz: http://en.wikipedia.org/wiki/stop_words W praktyce w systemach pozyskiwania informaci można spotkać trzy podeścia: bardzo długie listy (200-300 termów), krótkie listy (7-12 termów) i brak listy. W kolekci dokumentów można posortować termy wg. liczby wystąpień i wyeliminować te naczę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 wykorzystuą listy stopwords (rozmiar indeksu, czas). - 2 -
4.3. Normalizaca Wyszukiwanie powinno odwoływać się do tokenów oznaczaą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 podeścia: klasy równoważności termów oraz relace (car automobile). Problemy: Akcenty i znaki diakrytyczne: naïve vs. naive, Łódź vs. Lodz, peña vs. pena. Standardowe podeś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 ęzyka: angielski: colour vs. color, 3/12/91 vs. Mar. 12, 1991, Chebyshev vs. Tchebycheff, Beiing vs. Pekin; hiszpański: el, la, los, las; niemiecki: Schütze vs. Schuetze Uwaga: angielski to 60% sieci i tylko 1/3 blogów 4.4. Stemming i lematyzaca W dokumentach można znaleźć różne formy tych samych słów, np.: organize, organizes, organizing. Istnieą też rodziny słów o podobnym znaczeniu: democracy, democratic, democratization. Cel stemmingu i lematyzaci to redukca słowa do formy podstawowe: Różnica: Stemming prosta heurystyka, polega na odcięciu końca słowa w nadziei, że się uda ; Lematyzaca dokładny algorytm, wykorzystuący słownik i analizę morfologiczną; ma na celu znalezienie lematu (formy słownikowe). Nabardzie 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ędniaą 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 reprezentaca 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 (text corpus). - 4 -
5. Podstawowe rodzae reprezentaci tekstów: Reprezentaca binarna (Boolean representation): dokument d est reprezentowany przez wektory o długości m, gdzie m est liczba termów: ( d 1, d 2,..., d gdzie d i = 0 dla n i = 0 (liczba wystąpień termu i-tego w dokumencie -tym) oraz d i = 1 dla n i > 0, m ) np.: d = Time flies like an arrow but fruit flies like a banana oraz T = {bee, wasp, fly, fruit, like} reprezentaca binarna po wykonaniu stemmingu: (0, 0, 1, 1, 1) Reprezentaca bag-of-words uwzględnia liczbę wystąpień termu, np.: reprezentaca bag-of-words: (0, 0, 2, 1, 2) Mary is quicker than John vs. John is quicker than Mary Reprezentaca pełna miesca wystąpienia termu razem z ich liczbą. 6.1. Model przestrzeni wektorowe Model przestrzeni wektorowe (vector space model) reprezentue dokumenty ako wektory w wielowymiarowe przestrzeni euklidesowe, gdzie osie reprezentuą termy. Załóżmy, że w kolekci est: n dokumentów d 1, d 2,, d n, m termów t 1, t 2,, t m, n i to liczba wystąpień termu t i w dokumencie d. W reprezentaci TF (term frequency) oparte na częstości termów współrzędne wektora d są reprezentowane przez funkce 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 ni = 0 TF( ti, d ) = TFi = ni. dla ni > 0 max k nk (mianownik sprawdzamy liczbę wystąpień wszystkich termów w danym dokumencie i wyznaczamy tę maksymalną). Reprezentaca TF est obliczana lokalnie (wszystkie osie są uważane za ednakowe). Termy, które często występuą w dokumentach nie muszą być związane z kontekstem dokumentu (np. auto industry). Podstawowym celem miary IDF (inverse document frequency), odwrotne częstości dokumentów, est zmnieszenie współrzędnych pewnych osi, reprezentuących termy, które poawiaą się w wielu dokumentach (odzwierciedla specyficzność termu odnośnie zbioru dokumentów). Miara IDF obliczana est ako logarytm ze stosunku liczby wszystkich dokumentów kolekci ( D = n) do liczby dokumentów zawieraących słowo t i D i : D N IDF ( ti ) = log = log. Di D (miara idf est wysoka dla termów, które rzadko występuą w dokumentach i niska dla termów, które często występuą w dokumentach) i - 5 -
W reprezentaci TFIDF każda współrzędna wektora dokumentu est obliczana ako iloczyn czynników TF i IDF: d i = TF t, d ) IDF ( t ). ( i i Zapytanie q można przedstawić w notaci TF-IDF (wektor TF skalowany est przez wektor IDF wynikaący z analizy kolekci dokumentów) Ranking dokumentów pod względem adekwatności względem zapytania: miary podobieństwa - cosinus kąta pomiędzy wektorem zapytań i wektorem dokumentu (iloczyn skalarny przez iloczyn wektorowy = suma iloczynów odpowiadaących sobie współrzędnych przez iloczyn długości (długość to pierwiastek z sumy kwadratów)): sim( d, q) = r r d q r r d q Problem wyboru termów do reprezentaci dokumentów: Użycie wszystkich termów ze zbioru; Wybór termów z dużymi wartościami TF (podobieństwo nie wskazue na zawartość dokumentów), Wybór termów z dużymi wartościami IDF (termy bardzie specyficzne, rzadkie wektory dokumentów), Połączenie kryteriów TF i IDF wartość iloczynu TF (dla całego zbioru) i IDF są nawiększe.. 7. Współczynnik Jaccarda Alternatywa dla miary cosinusowe stosowana w kontekście wyszukiwania według podobieństwa. Wykorzystue wszystkie termy, które występuą w dokumentach, ale używa prostsze binarne reprezentaci. Idea polega na rozważeniu tylko niezerwowych współrzędnych binarnych wektorów. Współczynnik Jaccarda zdefiniowany est ako procent niezerowych współrzędnych, różnych dla obu wektorów (iloraz liczby współrzędnych, które są równe 1 w d 1 i w d 2 oraz liczby współrzędnych, które są równe 1 w d 1 lub d 2 ). W kontekście zbioru termów występuących w dokumencie T(d ): sim( d 1, d 2 ) T ( d ) T ( d 1 2 =. T ( d1 ) T ( d 2 ) Obliczenia proste, ale dla dużych kolekci nieefektywne wyszukiwanie według podobieństwa. Dlatego większość obliczeń wykonywana est off-line. Dla każdego dokumentu obliczanych est kilka nabliższych dokumentów. Teoretycznie liczba par n(n-1)/2 dla n dokumentów. W praktyce: Termy, które często występuą w różnych dokumentach są eliminowane, Tylko dokumenty, które maą przynamnie eden wspólny term tworzą parę. ) - 6 -
8. Ćwiczenia 1. W kolekci znaduą 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}, znadź nabardzie adekwatny dokument zgodnie z miarą TF, a następnie TF/IDF (T={information, retrieval, agency}) Reprezentaca bag-of-words: Q = { }, D1 = { }, D2 = { } D3 = { }, D4 = { } Reprezentaca 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 kolekci dokumentów z zadania I, wypełni macierz 4x4 współczynnikami Jaccarda, wyrażaącymi podobieństwo między wszystkimi parami dokumentów. D1 D2 D3 D4 D1 D2 D3 D4-7 -
9. Omówienie zadań do samodzielnego wykonania 1. [4.5] W kolekci znadue 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, znadź nabardzie adekwatny dokument zgodnie z miarą TF/IDF. Wykorzysta cosinusową miarę podobieństwa oraz zbiór termów T = {bee, wasp, fly, fruit, like}. Dla ułatwienia podano macierz z wartościami reprezentaci bag-of-words (wielkość znaków nie est istotna, wykorzystano stemmingu (flies, flight, flying = fly, fruity = fruit, itd.)). Przedstaw znormalizowe wartości TF i TFIDF [0.5] (osobno pokaż również obliczone współczynniki IDF [0.5]). Poda wektor TFIDF dla zapytania Q. Przedstaw macierz podobieństwa dokumentów do zapytania [0.5] i udziel ostateteczne odpowiedzi [0.5]. Czy nabardzie adekwatny dokument est rzeczywiście adekwatny? Dlaczego nie? Co mogło być 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 (poda wartość i skomentu)? [0.5] Czy est to pożądana właściwość miary TF/IDF (nie chodzi o to, czy algorytm rzeczywiście działa tak ak go zaproektowano, ale czy est to pożądane z punktu widzenia systemu obliczaącego podobieństwo dokumentów z zapytaniem rozważanym ako całość)? Dlaczego? Czy dla większych zbiorów termów i kolekci tekstów wpływ takie zmiany będzie równie duży? [1] 2. [1.5] Dana est następuąca kolekca 5 dokumentów D1-D5, które poddano eliminaci 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łni macierz 5x5 współczynnikami Jaccarda wyrażaącymi podobieństwo między wszystkimi parami dokumentów. Czy konieczne est wypełnienie całe macierzy? Które dokumenty są nabardzie podobne? [1.5] - 8 -
3. [8] Dany est zbiór dokumentów (plik documents.txt) oraz zbiór słów kluczowych (plik keywords.txt). Zaimplementu prostą wyszukiwarkę dokumentów, która uporządkue e dla podanego zapytania zgodnie z cosinusową 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ściwe; tworząc ego reprezentacę w przestrzeni TF-IDF potraktu tytuł i treść ako "całość"; dokumenty oddzielone są pustą linią; W pliku keywords.txt termy znaduą się w osobnych liniach; Wszystkie termy (z keywords i documents) muszą być poddane działaniu algorytmu stemmingu (skorzysta z gotowe implementaci z http://tartarus.org/~martin/porterstemmer/, o samym algorytmie możesz poczytać w pliku potter-algorithm.txt); nie zapomni o zamianie wszystkich liter na małe i wyeliminowaniu z dokumentów znaków interpunkcynych, itd.; (powinna istnieć możliwość wyświetlenia dokumentów i termów uż w przetworzone 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ądkowane zgodnie z maleącą miarą podobieństwa do zapytania; poedyncza pozyca na liście powinna mieć format (tytuł dokumentu; wartość miary podobieństwa); Prosty interface mile widziany, ale nieobowiązkowy Weryfikaca poprawności działania odbywa się na podstawie zadania kilku zapytań i sprawdzeniu wynikowego uporządkowania dokumentów; Dowolny ęzyk programowania spośród tych, dla których dostępny est PorterStemmer; Czas realizaci do zaęć 20 października; Program będzie rozwiany w ramach kolenych zadań. - 9 -