1. Sieci neuronowe...1 1.1. Model neuronu...1 1.2. Perceptron...2 1.3. Sieci RBF...2 1.4. Definiowanie i trenowanie sieci neuronowych...3 1.4.1. Reguła delty...3 1.4.2. Algorytm wstecznej propagacji...4 1.5. Sieci samoorganizujące się (ang. Self-organizing maps SOMs)...4 1.6. Realizacja sieci neuronowych w RM...6 1.6.1. Sieci MLP...7 1.6.2. SOM...9 2. Text Mining...11 2.1. Realizacja analizy tekstów z wykorzystaniem ODM...12 2.2. Realizacja analizy tekstów z wykorzystaniem RM...17 1. Sieci neuronowe Sieć neuronowa (sztuczna sieć neuronowa) to ogólna nazwa struktur matematycznych i ich programowych lub sprzętowych modeli, realizujących obliczenia lub przetwarzanie sygnałów poprzez rzędy elementów wykonujących pewną podstawową operację na swoim wejściu, zwanych neuronami. 1.1. Model neuronu Poniżej przedstawiono model sztucznego neuronu, który na wejściu uzyskuje sygnały we1 wen. Moc poszczególnych sygnałów jest określona poprzez ich wagi w1 wn. w1 we1 we2 w2 wen wn Potencjał membranowy neuronu można wyliczyć z zależności n p wi xi w T x i 1-1-
gdzie w jest wektorem współczynników wag, x - wektorem sygnałów wejściowych, (.)T - operatorem transponowania wektora lub macierzy, n - liczbą wejść neuronu. W bloku sumowania, zależnie od typu sieci, mogą być stosowane: funkcje kombinacji liniowej, funkcje kombinacji radialnej. W bloku aktywacji wykorzystywana jest tzw. funkcja aktywacji. Jest to funkcja niemalejąca jednej zmiennej, ciągła lub nieciągła (np. element progowy) przyjmująca wartości z przedziału <0,1> lub <-1,1>. liniowa ( y = e, najprostszy możliwy przypadek), nieliniowa: o jednobiegunowa (unipolarna), np. funkcja sigmoidalna, o dwubiegunowa (bipolarna), np. tangens hiperboliczny Neurony łączone są ze sobą w sieci. Sygnał w sieci może rozprzestrzeniać się w jednym kierunku od warstwy wejściowej- do 1 warstwy ukrytej, z 1 warstwy ukrytej do kolejnej warstwy ukrytej, a z ostatniej warstwy ukrytej do warstwy wyjściowej. Wówczas mamy do czynienia z sieciami jednokierunkowymi jedno- lub wielowarstwowych (perceptron wielowarstwowy). Gdy sygnał wyjściowy z danej warstwy jest jednocześnie wejściowym dla tej warstwy mówimy o sieciach rekurencyjnych. 1.2. Perceptron Perceptron to model sieci, w której elementem składowym jest sztuczny neuron, którego model matematyczny może być opisany funkcją aktywacji unipolarną lub bipolarną. Sieć perceptronową można podzielić jednoznacznie na ściśle uporządkowane i rozłączne klasy elementów zwane warstwami, wśród których wyróżnić można warstwę wejściową i wyjściową. Pozostałe noszą nazwę warstw ukrytych. Perceptron nie zawiera połączeń pomiędzy elementami należącymi do tej samej warstwy. Połączenia pomiędzy warstwami są asymetryczne i skierowane zgodnie z ich uporządkowaniem, tzn. od warstwy wejściowej do pierwszej warstwy ukrytej, następnie od pierwszej do drugiej warstwy ukrytej, itd. aż do warstwy wyjściowej. Nie ma połączeń zwrotnych. W perceptronie wielowarstwowym MLP (Multi Layer Perceptron) mamy: dowolną liczba wejść jedną lub więcej warstw ukrytych o dowolnej liczbie modułów dla warstw wejścia i ukrytej stosowana jest liniowa kombinacja funkcji dla warstwy ukrytej stosuje się funkcję aktywacji sigmoidalną dowolną liczba wyjść z dowolnymi funkcjami aktywacji połączenia: wejście-pierwsza warstwa ukryta, pierwsza w. ukryta- kolejna ukryta,..., ostatnia ukryta-wyjście 1.3. Sieci RBF Sieci radialne RBF (Radial Basis Function) charakteryzuje: dowolna liczba wejść -2-
zwykle jedna warstwa ukryta o dowolnej liczbie modułów dla warstwy ukrytej stosowana jest radialna kombinacja funkcji w warstwie ukrytej stosowana jest funkcja aktywacji wykładnicza lub softmax liniowa kombinacja funkcji w warstwie wyjścia dowolna liczba wyjść o dowolnych funkcjach aktywacji połączenia: wejście-warstwa ukryta, i ukryta-wyjscie 1.4. Definiowanie i trenowanie sieci neuronowych W celu przygotowania sieci do wykorzystania w procesie klasyfikacji lub regresji należy: zdefiniować strukturę sieci przeprowadzić trenowanie sieci przeprowadzić testowanie sieci Definiowanie sieci wymaga określenia: Liczby wejść i wyjść Liczby warstw ukrytych, liczba neuronów w każdej warstwie Określenia funkcji aktywacji neuronów w każdej warstwie Ustalenia wartości początkowych wag W procesie trenowania sieci nadawane są wartości początkowe wagom połączeń pomiędzy neuronami i wartości początkowe parametrów uczenia. Następnie prezentowane są wzorce i następuje modyfikacja wag. Proces trenowania kończy się po osiągnięciu kryterium zakończenia procesu uczenia 1.4.1. Reguła delty Przy uczeniu sieci z nauczycielem stosuje się min. regułę delty. Jest to reguła uczenia z nauczycielem. Polega na tym, że każdy neuron po otrzymaniu na wejściu określonych sygnałów (z wejść sieci albo od innych neuronów z poprzedzających warstw sieci ) wyznacza swój sygnał wyjściowy wykorzystując posiadaną wiedzę w postaci wcześniej ustalonych wartości współczynników wzmocnienia (wag) wszystkich wejść oraz (ewentualnie) progu (bias). Wartość sygnału wyjściowego, wyznaczonego przez neuron na danym kroku procesu uczenia porównywana jest z odpowiedzią wzorcową podaną przez nauczyciela. W przypadku rozbieżności - neuron wyznacza różnicę pomiędzy swoim sygnałem wyjściowym a tą wartością sygnału, która była by - według nauczyciela prawidłowa. Różnica oznaczana jest zwykle symbolem greckiej litery d (delta) i stąd nazwa opisywanej metody. y d ; blad odpowiedzi sieci, y wartosc sygnalu wyjscioweg o, d wymagana wartosc wi * ' * xi, wspolczynnik uczenia ' * f ' ( p ), f ' pochodna funkcji aktywacji -3-
Sygnał błędu (delta) wykorzystywany jest przez neuron do korygowania swoich współczynników wagowych (i ewentualnie progu), stosując następujące reguły: wagi zmieniane są tym silniej, im większy błąd został wykryty i im większy jest współczynnik uczenia; wagi związane z tymi wejściami, na których występowały duże wartości sygnałów wejściowych, zmieniane są bardziej, niż wagi wejść, na których sygnał wejściowy był niewielki. Sieć neuronowa sama przerywa proces uczenia gdy jest już dobrze wytrenowana, gdyż małe błędy powodują jedynie minimalne korekty wag. Wybranie współczynnika uczenia ma kluczowe znaczenie dla procesu uczenia sieci. Zbyt mały skutkuje bardzo powolnym procesem uczenia. Wybór za dużego współczynnika uczenia sprawia, że następują bardzo gwałtowne zmiany parametrów sieci, co może destabilizować proces uczenia. Znając błąd popełniony przez neuron oraz jego sygnały wejściowe możemy łatwo przewidzieć, jak będą się zmieniać jego wagi 1.4.2. Algorytm wstecznej propagacji Kolejną metodą uczenia sieci jest algorytm wstecznej propagacji - BP (BackPropagation), który określa strategię doboru wag w sieci wielowarstwowej przy wykorzystaniu gradientowych metod optymalizacji. Podczas uczenia sieci prezentowane są zestawy uczące (wektorów wejściowych oraz wzorcowe, odpowiadające im wektory sygnałów wyjściowych). W procesie uczenia prowadzi ma miejsce taki dobór wag neuronów by uzyskać błąd sieci mniejszy od zadanego. Nazwa "wsteczna propagacja" pochodzi od sposobu obliczania błędów w poszczególnych warstwach sieci. Najpierw obliczane są błędy w warstwie ostatniej. Błąd dla neuronów w dowolnej warstwie wcześniejszej obliczany jest jako pewna funkcja błędów neuronów warstwy poprzedzającej. Sygnał błędu rozprzestrzenia się wstecz od warstwy ostatniej, aż do warstwy wejściowej. Korekcja wektora wag sieci oparta jest na minimalizacji funkcji miary błędu, która określona jest jako suma kwadratów błędów na wyjściach sieci: Q 2 1 n * y i y i, n liczba wzorcow 2 i 1 y i wartosc oznaczona przez siec y i* wartosc oczekiwana na wyjsciu neuronu 1.5. Sieci samoorganizujące się (ang. Self-organizing maps SOMs) Są to sieci uczące się bez nadzoru. Ważną rolę odgrywają wśród nich sieci działające na zasadzie współzawodnictwa między neuronami (ang. competitive learning), neurony wyjściowe rywalizują między sobą, by stać się neuronem wygrywającym, jedynym węzłem pobudzanym przy konkretnej obserwacji wejściowej. -4-
Celem tych sieci jest przekształcanie złożonych, wielowymiarowych sygnałów wejściowych w prostsze, mniej wymiarowe dyskretne odwzorowania. W trakcie uczenia sieci samoorganizujących na wejście każdego neuronu podawany jest N-wymiarowy sygnał x ze zbioru wzorców uczących. Główną rolą neuronów jest reagowanie na bodźce. Neurony są przystosowane do tego, by reagować wyłącznie na bodźce z bardzo wąskiego zakresu. Każdy z neuronów łączy się z neuronami ze swego bezpośredniego otoczeniu. Wagi połączeń synaptycznych tworzą wektor Wi=[wi1, wi2,..., win]. Podobne sygnały wejściowe powinny być klasyfikowane jako należące do tej samej kategorii; kategorie te natomiast wyznaczane są przez samą sieć na podstawie korelacji danych wejściowych. Najbardziej znanym modelem jest sieć Kohonena. Pozwala ona na grupowanie obiektów. Wyniki przedstawiane są za pomocą dwuwymiarowej mapy o stałym rozmiarze. Siatka ma najczęściej budowę heksagonalną lub prostokątną. Każdy punkt mapy, w powyższej siatce, reprezentuje jeden neuron (komórkę nerwową). Sieci Kohonena to sieci, w których neurony rywalizują ze sobą. We współzawodnictwie zwycięża jeden neuron, którego wagi najmniej różnią się od odpowiednich składowych wektora x. Stosowane są strategie: Zwycięzca bierze wszystko lub Zwycięzca bierze najwięcej. WTA: Winner Takes All Zwycięzca bierze wszystko - najbardziej podobny do elementu prezentowanego (którego wagi są najbardziej podobne składowym wektora -5-
wejściowego) zostaje zmodyfikowany tak aby jego wagi były jak najbardziej zbliżone do wektora wejściowego. WTM: Winner Takes Most Zwycięzca bierze najwięcej - nie tylko neuron najbardziej podobny, ale także jego otoczenie zostają zmodyfikowane. Najczęściej ta modyfikacja jest zależna od odległości sąsiada od zwycięzcy. Neurony reagujące na podobne bodźce są umiejscowione blisko siebie. W przypadku sieci rozpoznającej barwy, neurony uwrażliwione np. na kolor pomarańczowy albo brązowy leżą w bliskim sąsiedztwie neuronu odpowiedzialnego za reagowanie na barwę czerwoną. Z kolei neuronów reagujących na barwę niebieską bądź zieloną, należałoby się spodziewać znacznie dalej. W ten sposób prosta siatka neuronów staje się mapą badanej przestrzeni (w tym przypadku: przestrzeni barw). Grupowanie polega na podzieleniu przestrzeni na obszary, w których występują podobne przypadki. Zamiast grupować w skupienia przypadki, można grupować neurony, które na nie reagują. Neurony o podobnych wagach znajdą się blisko siebie. Do wizualizacji wag danych wykorzystuje się kolory. Samoorganizująca sieć Kohonena znalazła liczne praktyczne zastosowania, wynikające z jej zdolności do kompresji danych. Typowymi przykładami zastosowania sieci Kohonena są kompresja obrazów, wykrywanie uszkodzeń oraz przetwarzanie mowy. SOM znalazły też zastosowanie w dziedzinie wyszukiwania informacji. Praktycznie w sieci można umieścić nieskończoną ilość dokumentów. WebSom może być bardzo pomocne w wizualnym zorganizowaniu odpowiedzi z tradycyjnych wyszukiwarek. Użytkownik, otrzymując kilkaset lub kilka tysięcy dokumentów z wyszukiwarki w praktyce korzysta jedynie z kilkunastu. Posługując się mapą i jednym relewantnym dokumentem jako punktem odniesienia, może sięgnąć do innych, skorelowanych z nim dokumentów. 1.6. Realizacja sieci neuronowych w RM Do typowych metod klasyfikacji i regresji należy zaliczyć klasyfikator knn, drzewa decyzji jak również systemy indukcji reguł. Dla zmiennych numerycznych najlepszymi rozwiązaniami są zazwyczaj algorytmy oparte o minimalizację ciągłej funkcji celu. Należą do nich m.in. sieci neuronowe typu MLP, sieci neuronowe typu RBF, klasyfikator SVM oraz różne inne. -6-
W przypadku sieci neuronowych proces optymalizacji sprowadza się zwykle do wykorzystania algorytmów gradientowych, które dążą do minimalizacji funkcji celu zdefiniowanej w postaci błędu średniokwadratowego. 1.6.1. Sieci MLP W podanym poniżej przykładzie dysponujemy dwoma zbiorami danych. Jeden posłuży nam do trenowania modelu, zas drugi do testowania modelu. a) Stwórz nowy proces. b) Znajdź kartę Repositories, w niej swoje repozytorium i plik ze zbiorem danych Golf. c) Zmień typ atrybutów nominalnych, OutLook, Wind i Play, na numeryczny. Operator Data Transformaion->Type Conversion ->NominalToNumerical d) Przeprowadź normalizację. Zastosuj operator Data Transformation ->Value Modification->Normalize. Wybierz metodę range transformation. e) Wskaż zmienną Play jako docelową(label) Model sieci neuronowej będzie trenowany na zbiorze Golf a testowany na zbiorze GolfTestSet. f) Wprowadź kolejny operator Retrive do wczytania zbioru testowego. Dane te poddaj transformacji i normalizacji. g) Wprowadź operator NeuralNet i połącz go z SetRole. -7-
Dla operatora NeuralNet wprowadź 3 warstwy ukryte (nadaj im nazwy). h) Wprowadź operatory ApplyModel i Performance. Pierwszy z nich zastosuje sieć utworzoną z użyciem operatora NeuralNet do zbioru danych, na którym odbywa się testowanie, a Performance porówna obliczone decyzje ze wzorcowymi i oceni jakość klasyfikacji. Upewnij się, że połączenia między wejściami, wyjściami i operatorami są zgodne z poniższym schematem: i) Uruchom proces. j) Prześledź uzyskane wyniki strukturę sieci i jakość klasyfikatora. -8-
k) Przyjmując standardowe parametry dla operatorów modelowania sieci neuronowych porównaj wyniki dla sieci NeuralNet z wynikami uzyskanymi przy użyciu operatorów Perceptron i AutoMLP Gdy nie dysponujemy dodatkowym zbiorem danych do testowania modelu konieczne jest wykorzystanie operatora, który umożliwi walidację np. Evaluation->Validation->SplitValidation. Validation jest operatorem składającym się z dwóch podprocesów: części uczącej klasyfikator (lewa część okna, podpisana Training) i części testującej klasyfikator (prawa część okna, podpisana Testing). Ten operator działa zgodnie ze schematem 10-krotnej walidacji krzyżowej: dzieli zbiór danych dostarczony na wejście training na 10 części i w każdym z 10 uruchomień wewnętrznych procesów 9 z nich dostarcza na wejście training podprocesu Training, a dziesiątą na wejście testing operatora Testing. Po kliknieciu na operatorze należy zamieścić odpowiednie operatory procesów trenowania i testowania modelu. W oknie Training np. operator NeuralNet a w oknie Testing operatory ApplyModel i Performance. ApplyModel zastosuje sieć utworzoną z użyciem operatora NeuralNet do części zbioru danych, na której odbywa się testowanie, a Performance porówna obliczone decyzje ze wzorcowymi i oceni jakość klasyfikacji. 1.6.2. SOM Rapid Miner udostępnia operator SOM, który pozwala na zastosowanie sieci samoorganizujących się. Atrybuty wykorzystywane w modelu muszą być numeryczne. -9-
Dla parametrów modelu sieci SOM podanych powyżej uzyskano następujące wyniki: Mapa wygenerowana dla danych wejściowych. Wyniki po zastosowaniu SOM. Mapę wygenerowaną dla danych wyjściowych, po zastosowaniu SOM przedstawia rysunek poniżej. - 10 -
2. Text Mining Text mining definiowane jest jako odkrywanie i wykorzystanie wiedzy zawartej w zbiorze dokumentów, polega na znalezieniu kluczowych fraz, zdań, które zostają następnie zakodowane pod postacią zmiennych numerycznych. Później stosuje się metody statystyki i eksploracji danych w celu odkrycia zależności pomiędzy zmiennymi. Text mining w ścisły sposób wiąże się z lingwistyka komputerową i przetwarzaniem języka naturalnego (NLP) a także wyszukiwanie informacji (IR). Często analizie poddawane są dane zamieszczone na stronach WWW. Information Retrieval Data Mining Information Extraction/ Statistics Web Mining Text Mining Computational Linguistics and NLP Text mining jest procesem czteroetapowym, na który składają się: czytanie plików tekstowych, wstępne przetwarzanie, redukcja danych analiza dokumentów. Analiza danych jest prowadzona z wykorzystaniem technik Data Mining. - 11 -
Wstępne przetwarzanie danych obejmuje: tokenizację, wykrywanie końca zdania, analizę morfologiczna, usuwanie niejednoznaczności, zastępowanie zaimków, wykrywanie nazw własnych, rozkład zdań złożonych na zdania proste. W oparciu o znalezione tokeny przeprowadza się następnie indeksację, której celem jest przedstawienie dokumentów w postaci zbioru charakterystycznych termów. Schemat indeksacji: 1. Zidentyfikuj pojedyncze słowa w tekście. 2. Wyeliminuj popularne słowa za pomocą stop list. 3. Użyj lematyzacji dla ograniczenia pozostałych słów do ich podstawowych tematów. 4. Dla wszystkich pozostałych termów Tj w każdym dokumencie Di oblicz częstość tfij jako liczbę wystąpień Tj w Di. 5. Wybierz progową częstość T, i przypisz każdemu dokumentowi Di wszystkie termy Tj dla których tfij > T. Następnie, w oparciu o wektory termów charakterystycznych prowadzi się analizę danych wyszukując dokumenty najbardziej do siebie podobne, czy też dokumenty odpowiadające podanemu zapytaniu. Text mining jest używany w celu: identyfikacji słów kluczowych, analizy treści dokumentów oraz automatycznego wykonania streszczenia dokumentu (sumaryzacja), znajdowania i klasyfikacji dokumentów najbardziej podobnych do zapytania użytkownika, wyszukiwania dokumentów o zadanych wzorcach, automatycznego rozpoznawanie języka. 2.1. Realizacja analizy tekstów z wykorzystaniem ODM a) Uruchom narzędzie Oracle Data Mining i połącz się z bazą danych. b) Z menu głównego wybierz Activity Build. c) Z listy Function Type wybierz Clustering. Rozwiń listę Algorithm i wybierz z niej algorytm k-means. - 12 -
d) Wskaż schemat DMUSER i tabelę MINING_ BUILD_TEXT jako źródło danych do eksploracji. Jako klucz podstawowy wskaż atrybut CUST_ID. Wyłącz z eksploracji wszystkie atrybuty za wyjątkiem atrybutu COMMENTS. e) Zmień typ eksploracyjny atrybutu COMMENTS (kolumna Mining Type) na text. f) Podaj nazwę i krótki opis procesu eksploracji. - 13 -
g) Kliknij przycisk Advanced Settings. Upewnij się, że na zakładce Sample opcja próbkowania jest wyłączona (pole wyboru Enable Step jest odznaczone). Analogicznie upewnij się, że wyłączone są kroki Outlier Treatement, Missing Values i Normalize. Przejdź na zakładkę Text i upewnij się, że krok jest włączony. h) Przejdź na zakładkę Build i zmień liczbę grup na 20. Upewnij się, że wybrano cosinusową miarę odległości. Kliknij przycisk OK. - 14 -
i) Upewnij się, że opcja Run upon finish jest włączona. Kliknij przycisk Zakończ. j) Kliknij na odnośnik Result w bloku Build. Zaznacz opcję Show Leaves Only. k) Przejdź na zakładkę Rules. Zaznacz opcję Only Show Rules for Leaf Clusters. Wybierz dowolny klaster i przeanalizuj wystąpienia słów, które trafiają do wybranego klastra. Na ile łatwy, Twoim zdaniem, jest uzyskany wynik do ręcznej weryfikacji i analizy? - 15 -
l) Wykorzystaj utworzony model do analizy danych z tabelimining_apply_mining m) Sprawdź utworzony z poziomu PL/SQL model klasyfikacji z wykorzystaniem algorytmu SVM na danych z tabeli MINING_TEST_TEXT, a nastepnie wykorzystaj do analizy danych z tabeli MINING_APPLY_MINING - 16 -
2.2. Realizacja analizy tekstów z wykorzystaniem RM Jeden z modułów Rapid Minera (Text Miner) dysponuje odpowiednimi operatorami umożliwiającymi przeprowadzenie wstępnego przetwarzania i indeksacji dokumentów: Do pobrania danych wykorzystuje się min. operator Process Documents from Files. Podział na tokeny realizuje operator Tokenize Użycie stop list umożliwia np. Filter StopWords pozwalający na użycie właściwego języka dokumentu Lematyzację zapewniają operatory z grupy Stemming Zmianę liter na małe umożliwia Transform Cases W przypadku plików zawierających znaczniki html stosuje się operator Remove Dokument Parts a w przypadku plików zawierających dane z wielu dokumentów tekstowych stosuje się Split File by Content. W celu usunięcia znaczników wraz z zawartością należy zamieścić operator Remove Dokument Parts, i w parametrze deletion regexs podać <<[^>]*>> Podział pliku na niezależne dokumenty realizuje się wykorzystując operator Split File by Content. Jako parametry podaje się: wyrażenia ograniczające kolejne dokumenty, katalog źródłowy i wynikowy - 17 -
Przykład: a) Wyszukaj dokumenty pdf i dokumenty txt z ostatniego roku zawierające informacje na temat data mining (w języku angielskim). Zapisz te dokumenty odpowiednio w folderach PDF i DOC b) Utwórz nowy proces np. TEXT. Zamieść operator Process Documents from File Ustal parametry operatora Process Documents from File. Podaj listę katalogów zawierających pliki tekstowe (text directories), wskaż katalogi PDF i DOC Kliknij dwukrotnie na operator by zdefiniować proces indeksowania tekstu (Vector Creation). Wybierz Operator Tokenize, który umożliwi automatyczną tokenizację tekstu. Uruchom proces. Poniżej przedstawiono dane dla przykładowych 12 plików typu PDF lub DOC - 18 -
Uporządkuj dane malejąco wg. kolumny Total Occurences c) Zmodyfikuj proces zamieszczając dodatkowo operator Transform Cases oraz operator Filter Stopwords (English), który umożliwi zastosowanie stop listy, a następnie FilerToken(byLength). Wyświetl wyniki indeksacji, sortując dane wg. kolumny Total Occurences. d) Zastosuj operator np. Stem(Snowball), który pozwoli na lematyzację (stemming). - 19 -
e) Wynik indeksacji dokumentów poddaj np. grupowaniu - 20 -
Literatura: 1. D.Larose, Odkrywanie wiedzy z danych. Wprowadzenie do eksploracji danych, PWN, 2006 2. R.Tadeusiewicz, Sieci neuronowe,akademicka Oficyna Wydawnicza RM, Warszawa 1993 (dostępna w wersji elektronicznej http://winntbg.bg.agh.edu.pl/skrypty/0001/) 3. http://applieddatamining.blogspot.com/ 4. http://download.oracle.com/docs/cd/b12037_01/datamine.101/b10698/8text.htm 5. http://oracle.informatik.haw-hamburg.de/datamine.111/b28131/xform_text.htm 6. http://download.oracle.com/docs/cd/b28359_01/datamine.111/b28129/text.htm#i1 006271 7. http://www.oracle.com/technology/products/text/pdf/10gr2text_mining.pdf 8. http://www.oracle.com/technology/products/text/pdf/9ir2_classification.pdf 9. http://www.oracle.com/technology/products/text/files/textmining05.ppt 10. http://www.oracle.com/technology/products/text/pdf/10gr2_infovis_v2.pdf 11. http://wazniak.mimuw.edu.pl/index.php?title=eksploracja_danych 12. http://my.safaribooksonline.com/book/databases/businessintelligence/9781482205503/part-5-text-mining-spam-detection-languagedetection-and-customer-feedbackanalysis/chapter_15_text_mining_with_ra#x2ludgvybmfsx0j2zgvwrmxhc2hs ZWFkZXI/eG1saWQ9OTc4MTQ4MjIwNTUwMy8yNDI= - 21 -