Zgłębianie tekstu.
Transkrypt
Zgłębianie tekstu.
Zgłębianie danych Laboratorium 11: Zgłębianie tekstu. Wyobraźmy sobie, że zostaliśmy zatrudnieni w roli informatyka przez księgarnię. Księgarnia posiada swoją stronę internetową, na której zamieszcza książki informatyczne i humanistyczne. Gdy ktoś kupuje książkę informatyczną, strona internetowa powinna podsunąć mu inne propozycje książek informatycznych (może go też zainteresują?). Jak jednak wiedzieć, które książki są tematycznie podobne mając do dyspozycji tylko opisy książek? Poznamy dziś podstawowe techniki umożliwiające badanie podobieństwa dokumentów. Zadanie 1 Utwórz plik ARFF (dla programu WEKA) z jednym atrybutem book-description, który jest kilkuzdaniowym opisem książki. Dodaj 5 opisów książek informatycznych i 5 opisów książek humanistycznych (korzystając np. z jakiejś księgarni online). Dla ułatwienia późniejszych zadań, niech będą w języku angielskim. Postaraj się by w opisach słowa kluczowe czasem się powtarzały, oraz aby różne opisy książek miały wspólne słowa kluczowe np. „Windows is an operating system. This system is great for beginners” „An operating system for free? Choose Linux!” Załaduj plik do WEKI, a następnie zapoznaj się z filtrem StringToWordVector, który tworzy macierz TFM (Term Frequency Matrix). • Jak będą wyglądały opisy książek po przepuszczeniu przez filtr? Co będzie atrybutami? • Sprawdź jak działa filtr gdy opcja outputWordCount jest zaznaczona na FALSE i TRUE. W obu przypadkach zapisz plik pod inną nazwą i obejrzyj powstałą macierz TFM w ARFFViewer. • Do czego służą opcje stopwords (use StopList), stemmer, tokenizer? Podać przykład stopwords w języku angielskim i polskim. • Jak ograniczyć liczbę słów-kluczy? Zadanie 2 Zamiast częstości występowania słów fi, można podać inne liczby, które być może lepiej zbadają podobieństwo dokumentów. Jest to np. waga TF-IDF dana wzorem: fi*ln(n/ni) (n-liczba dokumentów, ni-liczba dokumentów ze słowem nr i) Waga ta dzięki logarytmowi „dyskryminuje słowa”, które występują w za dużej liczbie dokumentów (bo przecież co to za słowo klucz, które jest w niemal każdym dokumencie? Powinno ono być mniej ważne). • Zastosuj jeszcze raz filtr StringToWordVector tak, aby zamiast częstości była waga TF-IDF. Jaką opcję trzeba zaznaczyć? Zapisz plik. Porównaj z macierzą z zadania 2. • Oblicz jedną wagę TF-IDF za pomocą kalkulatora/programu R/Google lub Wolfram Alpha i porównaj tą z WEKI. Zadanie 3 Mając macierz z częstościami wystepowania słów dla poszczególnych dokumentów (będących wektorami liczb) jak zbadać, które dokumenty są do siebie podobne? Miar jest wiele, ale my skorzystamy z odległości cosinusowej, która bada kąt pomiędzy wektorami. Przykładowo dla wektorów trzywymiarowych x=(x1,x2,x3), y=(y1,y,2,y3) odległośc cosinusowa wynosi: Jeśli wektory są do siebie podobne to znaczy, że mają podobne proporcje wystepowań słów. A to oznacza, że kąt między nimi jest mały, co z kolei oznacza, że cosinus tego kąta wynosi prawie 1. Ponieważ cosinus to ten olbrzymi ułamek powyżej to odległośc wyniesie 0. Gdy dokumenty są niepodobne np. (0,1) i (1,0), to kat może wynieść nawet 90 stopni. Wówczas cosinus wynosi 0, a odległość 1. Policz na kartce lub za pomocą arkusza/R/Wolfram odległość cosinusową pomiędzy wybranymi dwoma książkami z tej samej dziedziny i dwoma książkami z różnych dziedzin. Zadanie 4 Napisz procedurę w R, która dla macierzy TFM obliczonej w WEKA poda macierz podobieństw dokumentów. Np. dla trzech dokumentów D1, D2, D3 taka macierz może wyglądać nastepująco: D1 D2 D3 D1 0 0,56 0,4 D2 0,56 0 0,9 D3 0,4 0,9 0 Z takiej macierzy łatwo wówczas odczytać, że odległość cosinusowa pomiędzy dokumentem D1 i D2 wynosi 0,56.