Zgłębianie tekstu 1
Transkrypt
Zgłębianie tekstu 1
Laboratorium 3 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. 1. Utwórz plik ARFF 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!” 2. Załaduj plik do WEKI, a następnie zapoznaj się z filtrem StringToWordVector. • 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? 3. 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/Google/Wolfram Alpha i porównaj tą z WEKI. 4. Zbadamy teraz podobieństwo dokumentów. Wyliczyć wartość odległości kosinusowej dla przykładowych par dokumentów: informatyczny-humanistyczny, informatycznyinformatyczny, humanistyczny-humanistyczny. Jak rozumieć odległość kosinusową jeśli każdy dokument to wektor? 5. Spróbuj powtórzyć powyższe zadania dla opisów książek w języku polskim (stwórz plik z opisami). Należy stworzyć stoplistę słów polskich i załadować ją w filtrze StringToWordVector. Stoplista taka powinna być plikiem tekstowy zawierającym po jednym słowie w wierszu. Stoplistę polskich słów można znaleźć też w internecie np. na wikipedii. Spróbuj w miarę możliwości znaleźć i zaimportować do WEKI polski stemmer np. Morfologikstemming. (Wskazówki: http://weka.wikispaces.com/Stemmers)