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.