Text mining w programie RapidMiner Michał Bereta www.michalbereta.pl 1. Wstęp Aby skorzystać z możliwości RapidMinera w zakresie analizy tekstu, należy zainstalować Text Mining Extension. Wybierz: 1
Po zainstalowaniu, dodatkowe operatory związane z omawianym zagadnieniem będą dostępne w osobnym dziale Text processing. 2
2. Analiza zbioru dokumentów bez wyszczególnionych klas. Załóżmy, że posiadamy kolekcję dokumentów tekstowych, każdy w osobnym pliku. W tym przykładzie, pliki 01 05 związane są z wojną na Ukrainie, pliki 06 09 omawiają tematy związane z kartami graficznymi, natomiast pliki 10 14 dotyczą wychowania psów. Zostały one pobrane z artykułów dostępnych w Internecie. Dokument tekstowy jako obiekt mający podlegać np. klasyfikacji może być opisany za pomocą określenia, jakie słowa w nim występują. Interesujące są oczywiście słowa unikalne dla danego tematu. Można sprawdzić sam fakt czy dane słowo występuje w pewnym dokumencie. Dostaniemy wtedy atrybut binarny. Można również sprawdzić częstotliwość występowania danego słowa. Niektóre metody biorą pod uwagę, czy słowa występują tylko w jednym dokumencie czy też w większej ich liczbie. Nie jest to zagadnienie proste. Słowa powszechne, występujące praktycznie w każdym dokumencie nie pozwalają ich rozróżnić (np. ale, i, zatem ). Z drugiej strony słowa unikalne do jednego jedynie dokumentu nie pozwolą uchwycić podobieństw między dokumentami, które dotyczą tego samego tematu. Wybierzmy operator Process documents from files : 3
W jego opcjach wskazać możemy miejsce, gdzie znajdują się nasze pliki do analizy. 4
Jeśli wszystkie pliki traktujemy jako jedną kolekcję, mamy tylko jedną klasę, np. wszystkie_pliki. Zmień kodowanie na UTF-8. Opcja vector creation odpowiada za tworzenia wektora atrybutów opisującego dany dokument. Najbardziej zaawansowana z tych metod to TF-IDF (ang. term frequency inverse document frequency). Więcej informacji o metodzie: https://en.wikipedia.org/wiki/tf%e2%80%93idf 5
Na wyjściu wor otrzymamy listę słów wyodrębnionych z dokumentów. Z kolei na wyjściu exa otrzymamy każdy dokument opisany jako wektor atrybutów. Wewnątrz operatora Process documents from files musimy określić, na czym analiza dokumentu ma polegać. W naszym przypadku wyodrębniamy poszczególne słowa (ang. tokenize) i zapisujemy je małymi literami. 6
Separatorem może być dowolny znak nie będący literą. Po uruchomieniu otrzymujemy listę wyodrębnionych słów: oraz zbiór wektorów atrybutów opisujących każdy dokument: Zwróć uwagę, że atrybutów tych jest bardzo wiele. Dodatkowo, niektóre słowa różnią się jedynie odmianą (np. agresją i agresję ). Powinny zatem być traktowane jako to samo wyrażenie. Próbą 7
rozwiązania tego typu problemów jest stemming (https://en.wikipedia.org/wiki/stemming). Niestety, w RapidMinerze nie ma stemmera dla języka polskiego. Spróbujmy zastosować automatyczne grupowanie hierarchiczne na otrzymanym zbiorze wektorów. Celem jest wyodrębnienie zbiorów dokumentów o podobnej treści (liczymy na to, że podobna tematyka przekłada się na podobne wektory cech opisujące częstość występowania słów). 8
Wynik: Zaznaczamy węzeł o numerze 25 (uwaga: liczby te nie są nazwami plików a jedynie numerami węzłów drzewa). Widać, że w skład tej grupy wchodzą wszystkie pliki dotyczące wojny. Podobnie, dla węzła 22 otrzymujemy zgrupowane razem dokumenty dotyczące wychowania psów. Natomiast w węźle 23 zgrupowane są dokumenty dotyczące kart graficznych. 9
Zadanie: Wypróbuj inne opcje operatora grupowania hierarchicznego, CompleteLink oraz AverageLink. Zadanie: Wypróbuj inne poznane wcześniej metody grupowania, np. k-średnich. Czy są one w stanie automatycznie wskazać, że w grupie dokumentów są trzy wyraźne tematyczne grupy? 10
3. Analiza zbioru dokumentów przypisanych do zdefiniowanych kategorii. Podczas importu dokumentów możemy wskazać do jakiej kategorii powinny one należeć. Przykładowo, jeśli nasze pliki mamy pogrupowane w katalogach: wtedy podczas importu wskazać możemy dla wszystkich plików z danego katalogu, do jakiej klasy one należą: Tworzymy zatem dane, które mogą posłużyć do trenowania klasyfikatora, które będzie w stanie przyporządkowywać nowe dokumenty (opisane dokładnie tym samym sposobem) do jednej z klas. 11
Przykładowo, jako klasyfikator możemy wybrać drzewo decyzyjne. Oczywiście, interesuje nas klasyfikacja nowych dokumentów: Zadanie: Wyszukaj w Internecie przykładowe artykuły dotyczące wojny, psów lub kart graficznych. Sprawdź, czy powstały klasyfikator poprawnie rozpoznaje ich tematykę. Uwaga: nowe dokumenty muszą być opisane przez wektor atrybutów powstały za pomocą dokładnie tej samej procedury, która została zastosowana do przygotowania zbioru trenującego. 12
4. Reguły asocjacyjne W operatorze Process documents wykorzystaj opcję Binary Term Occurrences. Powstałe wektory atrybutów binarnych wykorzystaj do znalezienia zbioru reguł asocjacyjnych dla słów. Przykładowo: czy odnaleziona zostanie reguła {karta, grafika} - > {komputer}? 13