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)