Zgłębianie tekstu

Transkrypt

Zgłębianie tekstu
Inteligencja obliczeniowa
Laboratorium 12: Zgłębianie tekstu.
Zgłębianie tekstu to obecnie bardzo modna dziedzina. Internet jest pełny tekstów, danych, które nie
są schematycznie uporzadkowana. Wydobywanie informacji z tekstu jest trudne. Wymaga on z
reguły wielostopniowej obróbki (usuwanie znaków, liczb, słów nic nie wnoszących do treści), by
był zdatny do analizy.
Na laboratoriach spróbujemy wykorzystać kilka technik do podstawowego zgłębiania tekstu.
Zadanie 1 (2 pkt)
Ściągnij załączone na stronie pliki (w paczce zip)
• language.txt (strona z wikipedii definiująca język)
• computer.txt (strona z wikipedii definiująca komputer)
• programming-language.txt (strona z wikipedii definiująca język programowania)
• natural-computing.txt (strona z wikipedii definiująca algorytmy inspirowane naturą)
• life.txt (strona z wikipedii definiująca życie)
• genetic-algorithm.txt (strona z wikipedii definiująca algorytm genetyczny)
Korzystając z samouczka:
https://rstudio-pubs-static.s3.amazonaws.com/31867_8236987cf0a8444e962ccd2aec46d9c3.html
dokonaj analizy tych dokumentów w R.
a) Zainstaluj potrzebne paczki i załąduj dokumenty (rozdział Loading Texts)
b) Dokonaj obróbki textu (rozdział Preprocessing).
Proszę zwłaszcza zwrócić uwagę na akapit „Removing stopwords”. Jakie to słowa? Wyświetl
odpowiednią komendą (wykomentowaną w samouczku). Niestety lista nie jest pełna. Jakie słowaśmieci znajdą się na naszej liście słów kluczowych („also”? „can”? „used”?). W Nastepnym
akapicie „Removing particular words” dodaj te słowa do usunięcia. Rób to tak długo, aż będziesz
zadowolony z efektu (lista może być nieco dłuższa).
c) Stwórz macierz dtm (Document-Term-Matrix), jak podano w rozdziałach Stage the Data,
Explore your Data, Focus!. Co oznaczają liczby w kolumnach, a co liczby w wierszach tej
macierzy?
d) Przechodzimy do części badawczej. Jaki słowa występują najczęściej w dokumentach?
Przedstaw wyniki w formie tekstowej i na wykresach. Rozdział: Word Frequencies, Plot Word
Frequencies.
e) Sprawdź jaka korelacja zachodzimi między termami: computer, life, programming, language.
Rozdział Term Correlations.
f) Stwórz chmury słów (word clouds). Ustaw min.freq na taką wartość, by chmura była
interesująca. Rozdział Word Clouds.
g) Słowa (termy) są podobne, gdy często wystepują w tym samym dokumencie. Kuszące jest, by
sprawdzić czy algorytmy do klasteryzacji pogrupują je w klastry odpowiadające dokumentom, w
których wystepują.
Stwóz dendrogram i sprawdź, czy słowa siedzące na wspólnej gałęzi są ze sobą powiązane
tematycznie.
Nastepnie korzystając z algorytmu K-Means, dokonaj grupowania słów na kilka klastrów. Sprawdź
jak algorytm działa dla k=2,3,4,5,6.
Zadanie 2 (1 pkt)
Wykorzystaj macierz dtm z poprzedniego zadania do znalezienia podobieństwa dokumentów.
Wówczas łatwo będzie odpowiedzieć na takie pytania jak: „Czy artykuł o algorytmie genetycznym
jest bardziej podobny do artykułu o życiu czy programowaniu?”
Do badania podobieństwa dokumentów wykorzystaj podobieństwo kosinusowe:
https://en.wikipedia.org/wiki/Cosine_similarity
Dodatkowe zadania: Program WEKA
Poniższe zadania są nieobowiązkowe, ale ich rozwiązanie da
dodatkowe 2 punkty do tych laboratoriów.
Zajęcia mają na celu przedstawienie alternatywnego środowiska do zgłębiania danych. Jest dość
popularne i ma wygodne GUI. Warto je poznać obok pakietu R.
Zadanie 1
Zapoznamy się z interfejsem WEKI:
a) Odpal program WEKA i wejdź do menu Explorer
b) Załaduj plik iris.csv. Wskaż gdzie na interfejsie pojawia się informacja o tym ile instancji
(irysów) jest w bazie danych i przez ile atrybutów każdy jest reprezentowany.
c) W okienku atrybutów kliknij na każdy z nich i sprawdź:
- Jakie jest minimum, maksimum, średnia i odchylenie standardowe każdego z nich.
- Jak dany atrybut rozkłada się na wykresie względem gatunku irysa (niebieski, czerwony,
turkusowy). Czy da się wywnioskować jak rozpoznawać gatunek na podstawie wykresu?
d) Przejdź do zakładki Visualize w Weka Explorerze. Gdy weźmiemy tylo PetalWidth i PetalLength
pod uwagę, to jak rozmieszczone będą irysy na wykresie. Czy da się coś z tego wywnioskować?
Przedstaw swoje spostrzeżenia.
e) W Weka GUI Chooser wejdź do menu Tools/ArffViewer i otwórz plik iris.csv, by zobaczyć dane.
Zadanie 2
Jak można modyfikować dane? Poznamy podstawowe filtry.
a) Nałóż (Apply) na atrybuty filtr Unsupervised/Attribute/Normalize. Jakie będzie min i max
atrybutów po normalizacji? Cofnij filtr (Undo).
b) Nałóż (Apply) na atrybuty filtr Unsupervised/Attribute/Standarize. Jaka będzie średnia i
odchylenie atrybutów po standaryzacji? Cofnij filtr (Undo).
c) Na atrybut petalwidth nałóż filtr Unsupervised/Attribute/Discretize z liczbą przedziałów 5.
d) Wykorzystaj Unsupervised/Attribute/Reorder, by zmienić kolejność atrybutu SepalLength i
SepalWidth.
e) Zapisz plik pod nazwą iris-weka-filtr, a następnie otwórz go w Weka GUI
Chooser/Tools/ArffViewer.
f) Skorzystaj z filtru Unsupervised/Instance/Randomize i ponownie zapisz plik. Co zrobił filtr?
Zadanie 3
Dokonamy analizy głównych składowych w programie WEKA:
a) Dokonaj preprocessingu danych. Zlogarytmuj dane wykorzystując filtr MathExpression (podaj
odpowiedni wzór!), następnie ustandaryzuj dane.
b) Przyjrzyj się filtrowi PrincipalComponents i sprawdź czy działa z dokładnością 95%.
c) Dokonaj filtrowania. Jak zmieni się tabela? Zapisz plik pod nazwą iris-weka-pca i otwórz w
Viewerze.
d) Porównaj otrzymane wyniki z wynikami otrzymanymi w R na poprzednich laboratoriach. Czy
zgadza się tabela? Czy zgadzają się współczynniki kombinacji liniowej w nagłówkach kolumn?
e) Wejdź do zakładki Visualize i spójrz jaka jest zależność między głównymi składowymi. Czy
wykres przypomina ten z poprzednich laboratoriów?
f) Zapisz plik na dysku pod inną nazwą.
Zadanie 4
Jak klasyfikować w WEKA?
Uruchom program WEKA.
a) załaduj zbiór plik oryginalny z irysami a następnie w zakładce klasyfikacji (Classify) dodaj
podziel zbiór na treningowy i testowy w proporcjach 70/30.
b) Uruchom klasyfikator C4tworzący drzewa decyzyjne (w WEKA nazywa się on Trees/J48) i
wskaż gdzie narysowane jest drzewo decyzyjne, gdzie widnieje procentowa liczba dobrze
sklasyfikowanych instancji, gdzie znajduje się macierz błędu oraz dane FP Rate i TP Rate.
Porównaj jak wypadną inne klasyfikatory:
• Bayes/NaiveBayes
• kNearestNeighbors
Zadanie 5
Sprawdzimy, czy algorytm grupowania w programie WEKA dobrze podzieli irysy na 3 gatunki,
jakimi są w rzeczywistości. Jak sądzisz, uda się?
• Uruchom WEKĘ, załaduj iris.csv po PCA.
• Skasuj atrybut klasa, tak by zostały tylko dwa atrybuty.
• Dokonaj klasteryzacji (Cluster) metodą k-średnich, dla k=3.
• Kliknij na nazwę algorytmu w Result List prawym przyciskiem myszy i wybierz opcję
Visualize Clusters. Nastepnie dobierz odpowiednie X i Y na osie. Jak wyglądają klastry?
Zadanie 6
Skorzystaj z programu WEKA, zakładka Associate i algorytm Apriori do wyszukania reguł
asocjacyjnych w oryginalnym zbiorze irysów.
• Przed szukaniem reguł konieczna będzie dyskretyzacja danych.
• Jak wyglądają reguły asocjacyjne?
• Algorytm wyszukuje tylko 10 najtrafniejszych asocjacji, jak zmienić by podawał więcej?
• Znajdź i wskaż kilka reguł asocjacyjnych, w których pojawia się atrybut Species/class.