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.