You are on page 1of 74

Klasyfikacja dokumentów tekstowych

Łukasz Łażewski, Mariusz Pikuła, Adam Siemion, Michał Szklarzewski


wraz ze wstępem autorstwa Szymona Pindelskiego
c
Polsko-Japońska Wyższa Szkoła Technik Komputerowych
Spis treści

Spis treści 1

I Teoria związana z klasyfikacją 6

1 Wstęp 7
1.1 Klasyfikacja dokumentów tekstowych . . . . . . . . . . . . . . 7
1.2 Wstępne przetwarzanie dokumentów (ang. document prepro-
cessing) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Wydobywanie cech (ang. feature extraction) . . . . . . 8
1.2.2 Selekcja cech (ang. feature selection) . . . . . . . . . . 8
1.2.3 Sposób reprezentacji dokumentu . . . . . . . . . . . . 9
1.3 Kategoryzacja dokumentów tekstowych . . . . . . . . . . . . 9
1.3.1 Drzewa decyzyjne . . . . . . . . . . . . . . . . . . . . 10
1.3.2 Reguły decyzyjne . . . . . . . . . . . . . . . . . . . . . 11
1.3.3 k - nn (k-nearest neighbor ) . . . . . . . . . . . . . . . 11
1.3.4 Inne metody wektorowe . . . . . . . . . . . . . . . . . 12
1.3.5 Metody bayesowskie (naiwne i nienaiwne) . . . . . . . 13
1.3.6 Sieci neuronowe . . . . . . . . . . . . . . . . . . . . . . 13
1.3.7 Metody regresywne . . . . . . . . . . . . . . . . . . . . 14
1.4 Grupowanie (ang. clustering) . . . . . . . . . . . . . . . . . . 14

2 Selekcja cech 15
2.1 Ogólny zarys zagadnienia . . . . . . . . . . . . . . . . . . . . 15
2.2 Selekcja cech w dokumentach tekstowych . . . . . . . . . . . 15
2.3 Wstępne przetworzenie danych . . . . . . . . . . . . . . . . . 16
2.4 Algorytmy selekcji cech . . . . . . . . . . . . . . . . . . . . . 17
2.4.1 Document Frequency . . . . . . . . . . . . . . . . . . . 17
2.4.2 χ2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3 Klasyfikatory 22
3.1 Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2 Klasyfikator KNN . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.1 Podstawy . . . . . . . . . . . . . . . . . . . . . . . . . 23

1
SPIS TREŚCI 2

3.2.2 KNN w klasyfikacji dokumentów tekstowych . . . . . 24


3.2.3 TF/IDF . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.4 Zastosowania . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.5 Wady . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.6 Odmiany KNN . . . . . . . . . . . . . . . . . . . . . . 26
3.2.7 Eksperymenty . . . . . . . . . . . . . . . . . . . . . . 26
3.3 Klasyfikator Bayesowski . . . . . . . . . . . . . . . . . . . . . 27
3.3.1 Podstawy . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.2 Klasyfikacja tekstu . . . . . . . . . . . . . . . . . . . . 27
3.3.3 Podsumowanie . . . . . . . . . . . . . . . . . . . . . . 30

II Ekperymenty związane z klasyfikacją dokumentów tek-


stowych 32

4 Platforma 33
4.1 Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Przechowywanie danych . . . . . . . . . . . . . . . . . . . . . 33
4.3 Środowisko . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.4 Technologie oraz sprzęt . . . . . . . . . . . . . . . . . . . . . 35
4.5 Budowa systemu . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.6 Instalacja systemu . . . . . . . . . . . . . . . . . . . . . . . . 36
4.7 Obsługa systemu . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.8 Parametry modułów . . . . . . . . . . . . . . . . . . . . . . . 36
4.8.1 DmExtractor . . . . . . . . . . . . . . . . . . . . . . . 37
4.8.2 DmReductor . . . . . . . . . . . . . . . . . . . . . . . 37
4.8.3 DmKNN . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.8.4 DmBayes . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.9 Przeprowadzenie eksperymentu . . . . . . . . . . . . . . . . . 37
4.10 Przykład interakcji z systemem . . . . . . . . . . . . . . . . . 38

5 Eksperymenty 40
5.1 Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2 Ewaluacja eksperymentów . . . . . . . . . . . . . . . . . . . . 40
5.3 Dane z grup dyskusyjnych . . . . . . . . . . . . . . . . . . . . 40
5.4 Algorytm KNN wykorzystujący wagi wyliczone przez TF/IDF 41
5.4.1 Eksperymenty . . . . . . . . . . . . . . . . . . . . . . 41
5.5 Algorytm KNN wykorzystujący χ2 . . . . . . . . . . . . . . . 42
5.5.1 Dane . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.5.2 Wpływ zmiany parametru k na skuteczność klasyfika-
tora . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.6 Klasyfikator Bayesowski . . . . . . . . . . . . . . . . . . . . . 46
5.6.1 Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.6.2 Testy bez optymalizacji danych . . . . . . . . . . . . . 46
SPIS TREŚCI 3

5.6.3 Testy ze zmianą danych do liczb całkowitych . . . . . 46


5.6.4 Testy z kwantyzacją . . . . . . . . . . . . . . . . . . . 47
5.6.5 Testy z binaryzacją . . . . . . . . . . . . . . . . . . . . 47
5.6.6 Podsumowanie . . . . . . . . . . . . . . . . . . . . . . 48
5.7 Algorytm KNN wykorzystujący wagi wyliczone przez TF IDF
na kolekcji danych pochodzących z agencji Reuters . . . . . . 50
5.7.1 Parsowanie danych . . . . . . . . . . . . . . . . . . . . 50
5.7.2 Eksperymenty . . . . . . . . . . . . . . . . . . . . . . 52

6 Wnioski 61
6.1 Proces stemmingu przy wykorzystaniu algorytmu Portera . . 61
6.2 DF a χ2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

7 Podsumowanie 66

Bibliografia 67

Dodatki 68

Słownik pojęć 69

Spis tabel 71

Spis rysunków 72
Podziękowania
Pragniemy podziękować za pomoc naszemu promotorowi dr Marcinowi
Sydowowi za Jego wkład merytoryczny oraz wsparcie duchowe jakiego udzie-
lał nam podczas pisania niniejszej pracy. Chcielibyśmy również podziękować
dr Dominikowi Ślęzakowi, który prowadził nasz projekt w pierwszym seme-
strze i przekazał nam wiele wartościowych informacji dotyczących tematyki
data-miningu. Dodatkowe podziękowania należą się dr Jakubowi Wróblew-
skiemu za Jego cenny czas, który zechciał nam poświęcić, przy konsultacjach
dotyczących naszego projektu.
Wkład w powstanie pracy każdego z członków projektu

Łukasz Łażewski

• autor rozdziału: ”Klasyfikator Bayesowski” oraz sekcji Eksperymentów


dotyczącej algorytmu Bayesa.

• autor modułu platformy: classifier (klasa DmBayes)

• współautor rozdziału: ”Algorytm KNN wykorzystujący wagi wyliczone


przez TF IDF na kolekcji danych pochodzących z agencji Reuters”

Mariusz Pikuła

• autor rozdziałów: ”Selekcja cech”, sekcji Eksperymentów pt. ”Algo-


rytm KNN wykorzystujący χ2 ” oraz sekcji Wniosków pt. ”DF a χ2 ”

• autor modułów platformy: weightcomputer (klasa DmXSquare) oraz


classifier (klasa DmKNNXSquare)

Adam Siemion

• autor rozdziałów: ”Klasyfikator KNN”, ”Platforma”, sekcji Ekspery-


mentów pt. ”Algorytm KNN wykorzystujący wagi wyliczone przez
TF/IDF” oraz sekcji Wniosków pt. ”Proces stemmingu przy wyko-
rzystaniu algorytmu Portera”

• główny autor platformy

• autor modułów platformy: extractor (klasa DmExtractor), reductor


(klasa DmReductor), weightcomputer (klasa DmWeightComputer), clas-
sifier (klasa DmKNN)

Michał Szklarzewski

• autor rozdziału: ”Algorytm KNN wykorzystujący wagi wyliczone przez


TF IDF na kolekcji danych pochodzących z agencji Reuters”

• współautor testów do sekcji Eksperymentów dotyczącej algorytmu Bay-


esa.

• autor modułu platformy: parser (klasa DmParser)


Część I

Teoria związana z
klasyfikacją

6
Rozdział 1

Wstęp

1.1 Klasyfikacja dokumentów tekstowych


Od początku lat dziewięćdziesiątych ubiegłego wieku, wraz z popularyzacją
Internetu jako powszechnie dostępnego medium, w którym miliony ludzi na
całym świecie mogą praktycznie bez ograniczeń publikować dowolne infor-
macje, zaobserwować można wzrost zainteresowania technikami skutecznego
pozyskiwania i przetwarzania informacji. Rosnąca liczba dokumentów (w sie-
ci jest ich kilka miliardów) oraz brak precyzyjnie zdefiniowanego modelu
danych sprawiają, że lokalizacja potrzebnych informacji jest bardzo trudna
i zwykle zajmuje wiele czasu - nawet wówczas, gdy korzystamy z najnow-
szych osiągnięć techniki komputerowej.
Klasyfikacja oraz grupowanie dokumentów tekstowych o podobnej tema-
tyce pozwala zdecydowanie uprościć i przyspieszyć ten proces.
Kategoryzacja (ang. categorization) opiera się na idei tzw. uczenia z na-
uczycielem (ang. supervised learning) i polega na przypisywaniu dokumen-
tów (lub ich części) do jednej z predefiniowanych na początku kategorii.
Kategorie te są z reguły statyczne (zwane również klasami decyzyjnymi)
czyli ustalane na początku po analizie zawartości kilku dokumentów - in-
nymi słowy są to rodzaje dokumentów jakie możemy posiadać. Otrzymując
nowe teksty klasyfikujemy je do jednej z wcześniej ustalonych kategorii.
Grupowanie (ang. clustering) reprezentuje proces uczenia bez nauczycie-
la (ang. unsupervised learning), gdyż nie wykorzystuje ani predefiniowanej
struktury kategorii ani zbioru treningowego, obrazującego oczekiwane za-
leżności między dokumentami. Wymaga jednakże określenia pewnych miar,
opisujących grupowane obiekty, oraz podania wartości progowej, która okre-
śla stopień podobieństwa między tymi obiektami. Celem grupowania jest
takie zdefiniowanie klas obiektów (klastrów), żeby obiekty wewnątrz nich
były możliwie podobne względem siebie przy jednoczesnym niewielkim po-
dobieństwie do obiektów z innych klas.

7
ROZDZIAŁ 1. WSTĘP 8

1.2 Wstępne przetwarzanie dokumentów (ang. do-


cument preprocessing )
Analiza i manipulowanie dokumentami języka naturalnego wymaga prze-
kształcenia danych tekstowych, niezrozumiałych dla komputera, na postać
liczbową, którą można poddać przetwarzaniu za pomocą typowych algoryt-
mów, znanych z data-mining. W tym celu przeprowadza się tzw. wstępne
przetwarzanie dokumentów czyli preprocessing. Można je podzielić na na-
stępujące etapy:
1. wydobywanie cech (ang. feature extraction)
2. selekcja cech (ang. feature selection)
3. wybór sposobu reprezentacji dokumentu (czyli logicznego widoku do-
kumentu)

1.2.1 Wydobywanie cech (ang. feature extraction)


Jest to pierwszy z etapów fazy wstępnego przetwarzania dokumentów. Jego
celem jest wygenerowanie listy słów kluczowych (termów), które w sposób
wystarczająco precyzyjny opisywać będą analizowane dokumenty. Lista ta
nosi nazwę słownika (ang. dictionary).
Najpierw dokumenty ze zbioru treningowego są poddawane procesowi
parsowania gdzie w zależności od potrzeb można pominąć liczby, a następ-
nie na otrzymanych zbiorach wyrazów wykonywane są operacje tekstowe,
przekształcające pełny tekst dokumentu w zbiór słów kluczowych, przybli-
żających jego semantykę. Operacje te to najczęściej usuwanie tzw. słów sto-
pu (ang. stopwords) (czyli przedimków, przyimków o niewielkim wpływie na
przynależność dokumentu do klasy decyzyjnej), stemming czyli zastępowa-
nie wyrazów ich rdzeniem słowotwórczym poprzez eliminację afiksów, czyli
przyrostków (postfiksów) i przedrostków (prefiksów). Dokładny przebieg te-
go procesu jest uzależniony od języka, w którym został napisany dokument.

1.2.2 Selekcja cech (ang. feature selection)


Kolejnym etapem fazy przygotowawczej jest selekcja cech, mająca na celu
eliminację słów kluczowych, które niewiele mówią o przynależności opisywa-
nych dokumentów do którejś z kategorii. Do tego celu stosuje się najczęściej
następujące wskaźniki:
1. Document Frequency (DF) - częstotliwość występowania słowa kluczo-
wego w kolekcji dokumentów.
2. Information Gain (IG) - mierzy ilość bitów informacji uzyskanych po-
przez przewidywanie kategorii wiedząc o występowaniu bądź absencji
termu w dokumencie.
ROZDZIAŁ 1. WSTĘP 9

3. χ2 (CHI) - wykorzystuje założenie o niezależności wystąpienia danego


słowa kluczowego w dokumencie od jego klasy decyzyjnej.

4. Term Strength (TS) - szacuje istotność termu wykorzystując wiedzę


jak bardzo prawdopodobne jest aby term wystąpił w blisko związanych
dokumentach.

Bez względu na wybraną metrykę kolejnym etapem selekcji cech jest wy-
rzucenie ze słownika tych słów kluczowych, które niosą najmniej informa-
cji. Do następnej fazy przechodzi zatem n słów o najwyższych wartościach
wskaźnika.

1.2.3 Sposób reprezentacji dokumentu


Jest to ostatni etap wstępnego przetwarzania dokumentu. Jego wynikiem
jest przedstawienie dokumentu w postaci n-elementowego wektora cech, gdzie
n jest ilością słów kluczowych po zakończeniu etapu selekcji cech (ang. featu-
re selection). Cała kolekcja dokumentów może zatem zostać przedstawiona
w postaci macierzy o rozmiarach m×n (m to liczba dokumentów w kolekcji),
której element aij reprezentuje wagę termu j w dokumencie i. Wartości wag
zależą od wybranego sposobu reprezentacji dokumentu. Najprostszy sposób
- reprezentacja binarna, przypisuje wagi równe jeden lub zero. Wartość 0
przypisywana jest, gdy dany term nie występuje w dokumencie a wartość
1, gdy występuje raz bądź więcej razy. Niestety tego typu reprezentacja nie
uwzględnia faktu, iż niektóre termy niosą więcej informacji niż pozostałe.
Reprezentacją danych, która uwzględnia te różnice jest reprezentacja wek-
torowa, gdzie każdy element wektora jest dodatnią liczbą rzeczywistą, której
wartość zależy od ilości informacji jaką niesie dany term w danym dokumen-
cie.

1.3 Kategoryzacja dokumentów tekstowych


Kategoryzacja dokumentów tekstowych oznacza - w pewnym uproszczeniu -
przypisywanie dokumentów do jednej z uprzednio zdefiniowanych kategorii.
W dziedzinie przetwarzania danych tekstowych obejmuje ona także proces
wstępnego uczenia systemu poprzez prezentację dokumentów ze zbioru tre-
ningowego. Ma to na celu określenie granic poszczególnych kategorii i po-
kazanie systemowi poprzez określenie zależności między dokumentami ze
zbioru treningowego - jak ma klasyfikować dokumenty wcześniej nieznane.
Dopiero po zakończeniu etapu uczenia możliwa jest właściwa klasyfikacja.
Do tego celu najczęściej wykorzystywane są następujące metody:

1. drzewa decyzyjne

2. reguły decyzyjne
ROZDZIAŁ 1. WSTĘP 10

3. k-nn (k-nearest neighbors)

4. inne metody wektorowe

5. metody bayesowskie (podejście naiwne i nienaiwne)

6. sieci neuronowe

7. metody regresywne

Poniżej krótko zostanie omówiona każda z metod.

1.3.1 Drzewa decyzyjne


Drzewa decyzyjne odwzorowują zależności pomiędzy dokumentami ze zbio-
ru treningowego za pomocą struktury drzewa binarnego. Każdy z węzłów
drzewa odpowiada pytaniu, na które odpowiedź ma postać prawdy lub fał-
szu. W liściach natomiast umieszczone zostają kategorie, określone w fazie
budowania pierwotnej struktury drzewa na podstawie zbioru danych testo-
wych. Proces klasyfikacji sprowadza się zatem do umieszczenia dokumentów
w korzeniu drzewa i w oparciu o odpowiedzi, udzielane na kolejne pyta-
nia przesuwania go coraz niżej w hierarchii, aż do liścia odpowiadającego
właściwej kategorii.
Podstawową zaletą tego modelu jest łatwość interpretacji całej logiki sys-
temu nawet przez niezbyt zaawansowanego użytkownika. Najistotniejszą wa-
dą natomiast jest ryzyko zbytniego przystosowania tzw. overfittingu. Polega
ono na przystosowaniu się systemu do zbioru testowego. Klasyfikacja doku-
mentów należących do tego zbioru daje bardzo dobre rezultaty, natomiast
wyniki względem innych - wcześniej nieznanych - dokumentów są znacznie
gorsze. Jest to efektem metod stosowanych w procesie uczenia. Struktura
drzewa oraz kwerendy w poszczególnych węzłach dobierane są tak, aby KAŻ-
DY dokument z kolekcji testowej został sklasyfikowany prawidłowo. Nie musi
to jednakże wcale iść w parze z przydatnością do analizy nowych dokumen-
tów. Zapobieganie temu niekorzystnemu zjawisku sprowadza się najczęściej
do stosowania dodatkowych zbiorów dokumentów sprawdzających (ang. va-
lidators), dla których wymagane jest, aby klasyfikator charakteryzował się
precyzją porównywalną do tej dla kolekcji treningowej.
Poważnym problemem jest również budowanie drzew o zbyt rozbudowa-
nej strukturze, co ma negatywny wpływ na wydajność systemu. Problem
ten jest najczęściej rozwiązywany poprzez określenie maksymalnej wysoko-
ści tworzonego drzewa oraz minimalnego wsparcia dla pojedynczej kategorii
(czyli liczby dokumentów treningowych przypisanych do niej po zakończeniu
procesu uczenia). Zastosowanie tych zabiegów sprawia, że drzewo decyzyj-
ne charakteryzuje się dobrą wydajnością nawet w przypadku bardzo dużej
liczby cech opisujących dokument (features).
ROZDZIAŁ 1. WSTĘP 11

1.3.2 Reguły decyzyjne


Algorytmy oparte na regułach decyzyjnych konstruują dla każdej kategorii
zbiór reguł opisujących jej profil. Reguła taka składa się z nazwy kategorii
oraz słowa kluczowego, które najlepiej opisuje zbiór należących do niej do-
kumentów. Tworzenie zbioru reguł polega na łączeniu reguł atomowych za
pomocą spójników logicznych. Nie wszystkie reguły są przy tym brane pod
uwagę powszechnie stosuje się heurystyki, umożliwiające usunięcie zbiorów
reguł nadmiarowych i przez to poprawę wydajności systemu bez negatyw-
nych skutków dla jakości klasyfikacji.
Najważniejszą zaletą reguł decyzyjnych jest możliwość tworzenia tzw.
lokalnych słowników. Pozwalają one na rozróżnianie znaczeń homonimów -
grup słów, zapisywanych w ten sam sposób, które w zależności od kontekstu
mogą mieć różne znaczenia. Przykładem może być angielski termin ”bark”
użyty jako rzeczownik (a bark) opisuje korę drzewa, natomiast w znaczeniu
czasownikowym (to bark) - szczekanie psa. W tradycyjnym słowniku ter-
min ten pojawi się tylko raz, przez co dokumenty, dotyczące kory drzewa
oraz te, mówiące o szczekaniu psa, będą miały podobne wektory cech mimo
różnic semantycznych. Zastosowanie zbiorów reguł decyzyjnych pozwala na
rozróżnienie między tymi znaczeniami raz termin bark pojawi się bowiem
w definicji reguły opisującej kategorię dog, innym razem tree.
Najpoważniejszą wadą tej metody klasyfikacji jest brak możliwości przy-
pisania dokumentu do jednej tylko kategorii. Te same słowa kluczowe często
występują bowiem w regułach, dotyczących różnych klas decyzyjnych.

1.3.3 k - nn (k-nearest neighbor )


Najistotniejszą cechą metody k-nn jest brak konieczności wstępnego trenin-
gu klasyfikatora w oparciu o zależności wewnątrz zbioru danych testowych.
Stanowi to również pewne utrudnienie, ponieważ czas działania klasyfikatora
KNN jest dłuższy. Klasyfikacja polega na porównywaniu odległości pomię-
dzy wektorami cech dokumentu klasyfikowanego i kolejnych dokumentów
z kolekcji już sklasyfikowanych. Odległość może być przy tym definiowana
na wiele sposobów. Najczęściej stosowane są :

• cosinus kąta pomiędzy wektorami opisany wzorem

cosα = |a|∗|b| ,
a•b

gdzie α oznacza kąt między wektorami po przekształceniu ich tak, aby


miały wspólny początek, a • b oznacza iloczyn skalarny wektorów a i
b, natomiast |a| ∗ |b| - iloczyn długości tych wektorów.

• odległość euklidesowa (porównanie wartości kolejnych wag słów klu-


czowych dla danego dokumentu), opisana wzorem :
ROZDZIAŁ 1. WSTĘP 12
qP
N
i=1 (ai − b i )2 ,

gdzie ai oraz bi to współrzędne wektorów a i b w i-tym wymiarze.


W tym drugim przypadku jednak konieczne jest przeprowadzenie norma-
lizacji długości dokumentów. Długość najdłuższego wektora cech jest okre-
ślana jako 1, zaś długości pozostałych - jako stosunki ich długości do długości
wektora najdłuższego. Do największych zalet tej metody klasyfikacji zali-
czyć należy prostotę algorytmu, łatwość implementacji oraz dobrą precyzję.
KNN dobrze radzi sobie również w sytuacjach, w których dokumenty z tej
samej kategorii zaliczane są do kilku różnych grup. Dzieje się tak wówczas,
gdy w obrębie kategorii istnieje rozróżnienie na kilka różnych podkategorii.
Słabe strony KNNa to szybkość działania (związana z brakiem wstępnie zde-
finiowanej struktury danych i koniecznością klasyfikacji w locie) oraz ryzyko
zafałszowania wyników klasyfikacji przez duże grupy dokumentów, nawet
znacząco oddalonych od nowo klasyfikowanego przypadku (przy odpowied-
nio dużej wartości współczynnika k duża grupa, położona daleko, może uzy-
skać przewagę liczebną w zbiorze sąsiadów klasyfikowanego dokumentu nad
grupą mniejszą, choć położoną znacznie bliżej).

1.3.4 Inne metody wektorowe


Najbardziej popularne spośród metod wektorowych to algorytm centroidów
oraz maszyny wektorów wsparcia (ang. support vector machines - SVM ).
Pierwsza z nich to jedna z najprostszych metod kategoryzacji. W trakcie
procesu uczenia tworzony jest jedynie uśredniony wektor cech dla każdej ka-
tegorii (zamiast dla każdego dokumentu). Wektor ten staje się centroidem
czyli środkiem ciężkości tej kategorii. Klasyfikacja nowego dokumentu odby-
wa się odtąd poprzez wyszukanie centroidu najbliższego wektorowi cech tego
dokumentu. Odległość jest zazwyczaj rozumiana podobnie, jak w przypad-
ku metody KNN (czyli jako cosinus kąta pomiędzy wektorami lub odległość
euklidesowa). Algorytm centroidów w większości przypadków zadowala się
niewielkim zbiorem dokumentów treningowych. Jednakże, jeśli kategorie czę-
ściowo nakładają się na siebie lub gdy dana kategoria składa się z dwóch,
lub większej liczby podkategorii, jakość klasyfikacji ulega znacznemu pogor-
szeniu.
Maszyny wektorów wsparcia (ang. support vector machines) [Joa98] w od-
różnieniu od opisanych wyżej metod wymagają do poprawnego działania
zbioru treningowego, zawierającego zarówno dokumenty zaklasyfikowane ja-
ko należące (relevant), jak i nie należące (irrelevant) dla każdej ze zdefi-
niowanych kategorii. Algorytm SVM szuka następnie powierzchni decyzyj-
nej, która najlepiej oddziela od siebie przypadki pozytywne od negatywnych
w rozpatrywanej przestrzeni n-wymiarowej. Wektory dokumentów, położone
najbliżej powierzchni decyzyjnej nazywane są wektorami wsparcia. Usunię-
cie z przestrzeni pozostałych wektorów nie wpływa negatywnie na jakość
ROZDZIAŁ 1. WSTĘP 13

procesu kategoryzacji. Najmocniejszą stroną metody SVM jest skuteczność


klasyfikacji, oraz szybkość działania [Yang99]. Wadą natomiast - możliwość
zaklasyfikowania dokumentu do kilku klas decyzyjnych. Wynika to z faktu
szacowania podobieństwa osobno dla każdej kategorii. Pomimo tej niedosko-
nałości SVM cieszy się dużą popularnością wśród badaczy.

1.3.5 Metody bayesowskie (naiwne i nienaiwne)


Metody bayesowskie jako podstawę klasyfikacji dokumentów tekstowych przyj-
mują rachunek prawdopodobieństwa. Charakteryzują się wysoką precyzją
klasyfikacji i szybkością działania zwłaszcza wtedy, gdy przyjmiemy zało-
żenie o niezależności słów kluczowych w ramach poszczególnych kategorii.
Założenie powyższe oznacza, że wystąpienie w tekście dokumentu jednego
słowa kluczowego nie dostarcza nam żadnych informacji o prawdopodobień-
stwie wystąpienia drugiego. Zależność tę ilustruje poniższy wzór :
QN
P (X|C) = i=1 P (Xi |C),

gdzie X = (X1 , X2 , . . . ,Xn ) oznacza wektor cech, a C - klasę decy-


zyjną. Jest to pewne uproszczenie, choć wiadomo, że nie ma ono dużego
negatywnego wpływu na dokładność klasyfikacji, znacznie poprawiając przy
tym szybkość działania algorytmu. Założenie to było podstawą do powsta-
nia naiwnego klasyfikatora bayesowskiego i stanowi jedyną różnicę pomiędzy
nim a podejściem nie-naiwnym. Naiwny klasyfikator bayesowski nadaje się
bardzo dobrze do klasyfikacji dokumentów opisanych nawet znaczną ilością
cech. Pomimo, że Naiwny Bayes został wymyślony dużo wcześniej przed
obecnymi metodami klasyfikacji, często je przewyższa.

1.3.6 Sieci neuronowe


Do klasyfikacji dokumentów tekstowych wykorzystywane są również sieci
neuronowe [Cal00]. Niektóre z nich zwane perceptronami - bazują na naj-
prostszej topologii, składającej się z warstwy wejściowej (input layer ) i wyj-
ściowej (output layer ). Inne pomiędzy dwiema wymienionymi posiadają jesz-
cze trzecią warstwę ukrytą (hidden layer ), a w procesie uczenia wykorzystu-
ją znany algorytm wstecznej propagacji błędu (back-propagation algorithm).
Największą zaletą sieci neuronowych jest zdolność radzenia sobie z zaszu-
mionymi bądź sprzecznymi danymi. Wysoka elastyczność łączy się tu nie-
stety z dużym apetytem na moc obliczeniową komputera. Istotną wadą sieci
neuronowych jest również trudność zrozumienia struktury i zasad działania
sieci przez przeciętnego użytkownika, co negatywnie wpływa na popularność
systemów opartych na tej technologii.
ROZDZIAŁ 1. WSTĘP 14

1.3.7 Metody regresywne


Metody te wykorzystują dwie macierze do opisu początkowej kolekcji doku-
mentów: macierz wejściową A (opisywana wcześniej macierz cech o rozmia-
rach m × n, gdzie m to ilość dokumentów, n to ilość słów kluczowych) oraz
macierz wyjściową B (o rozmiarach m × c, gdzie c to ilość zdefiniowanych
kategorii), zawierającą wskaźniki przynależności dokumentów do kolejnych
klas decyzyjnych. Celem metody jest znalezienie macierzy F, przekształca-
jącej macierz A w B, zgodnie z poniższym wzorem
B· = A ∗ F ,
gdzie B· jest możliwie najlepszym przybliżeniem B. Macierz F jest wy-
znaczana za pomocą metod regresywnych wielu zmiennych (ang. multiva-
riate regression techniques). Podstawową zaletą metod regresywnych jest
możliwość pominięcia niektórych elementów fazy wstępnego przetwarzania
dokumentów np. (ang. stemmingu) bez strat na jakości kategoryzacji. Dzięki
temu dobrze pasują one do zadań, wymagających niezależności od stosowa-
nego języka, takich jak np. cross-language retrieval (proces wyszukiwania,
w którym zapytanie sformułowane jest w jednym języku, zaś zwracane do-
kumenty w innym). Niestety metody te nie są zbyt popularne i trudno jest
powiedzieć cokolwiek na temat ich efektywności.

1.4 Grupowanie (ang. clustering )


Grupowanie, zwane też analizą skupień, można określić jako proces organi-
zowania obiektów w grupy, których elementy są w jakimś sensie podobne
do siebie. Proces ten opiera się na idei tzw. uczenia bez nauczyciela (ang.
unsupervised learning). Podobnie jak to miało miejsce w przypadku kate-
goryzacji, także i tutaj kolekcja dokumentów opisywana jest najczęściej za
pomocą macierzy m × n, gdzie m to liczba dokumentów, a n to liczba cech
(features) je opisujących. Każdemu elementowi kolekcji odpowiada zatem
wektor o n współrzędnych, w sposób przybliżony opisujący jego zawartość.
Wektor ten jest następnie używany do określenia pozycji obiektu w n wy-
miarowej przestrzeni (wyznaczonej przez zbiór cech) oraz dołączenia go do
jednego ze skupień (klastrów). Kryterium klasyfikacji jest przy tym minimal-
na odległość (rozumiana najczęściej tak jak w metodzie KNN - jako cosinus
kąta lub odległość euklidesowa między wektorami) od pozostałych obiektów
w klastrze (intra-cluster simmilarity) oraz maksymalna - od pozostałych
klastrów (inter-cluster dissimilarity). Takie pogrupowanie obiektów umożli-
wia znalezienie ukrytej struktury analizowanej kolekcji danych. Podstawową
zaletą grupowania, w porównaniu do kategoryzacji, jest brak konieczności
określania liczby kategorii. Problemem natomiast może być poruszanie się
w przestrzeni wielowymiarowej i z wieloma obiektami oraz nie zawsze intu-
icyjne pojęcie odległości.
Rozdział 2

Selekcja cech

2.1 Ogólny zarys zagadnienia


Selekcja cech (ang. feature selection) jest integralną częścią każdego zagad-
nienia z dziedziny data-miningu. Dotyczy to zwłaszcza systemów mających
wspomagać proces podejmowania decyzji lub podejmować takie decyzje sa-
modzielnie. Zagadnienia te obejmują nie tylko klasyfikację dokumentów tek-
stowych, ale także rozpoznawanie tekstu, obrazu, oraz wszelkie procesy pre-
dykcyjne (np. na podstawie danych medycznych dotyczących pacjentów).
Aby proces predykcji (podjęcia decyzji przez system) mógł zostać przepro-
wadzony należy spośród wszystkich danych opisujących obiekty wybrać te,
z których zostanie zbudowany wektor. Wektor ten zostanie później wyko-
rzystany w procesie podejmowania decyzji (klasyfikacji).
W przypadku klasyfikatora dokumentów tekstowych dane to słowa wy-
stępujące w poszczególnych dokumentach. Natomiast w innych przypadkach
mogą to być dowolnego typu dane np. przebieg choroby pacjenta w przy-
padku danych medycznych. Bardzo często przed wprowadzeniem danych do
systemu należy je przedstawić w postaci cyfrowej (zamiana opisów słownych
na parametry liczbowe).
Podejście do zagadnienia selekcji cech jest w znacznym stopniu uzależ-
nione od problemu, do rozwiązania którego zostanie ona zastosowana. Dla-
tego też w tej części pracy przedstawiony zostanie proces selekcji cech dla
problemu klasyfikacji dokumentów tekstowych.

2.2 Selekcja cech w dokumentach tekstowych


Selekcja cech stanowi jeden z etapów przygotowywania klasyfikatora doku-
mentów tekstowych. Sam mechanizm selekcji cech jest zależny od zasto-
sowanego algorytmu. Jednak jego celem zawsze jest wybór słów, które są
najlepszymi wyznacznikami przynależności dokumentu do konkretnej klasy
[Liu03].

15
ROZDZIAŁ 2. SELEKCJA CECH 16

Miary jakości, oraz kryteria doboru tych słów zależą od zastosowanego


algorytmu. Sam algorytm selekcji cech korzysta ze słownika. Słownikiem na-
zywamy zbiór słów, które występują w klasyfikowanych dokumentach. Zbiór
ten, zanim zostanie podany jako dane wejściowe dla algorytmu selekcji cech,
podlega wstępnemu przetworzeniu.

2.3 Wstępne przetworzenie danych


Wstępne przetworzenie danych jest procesem, który należy przeprowadzić
przed zastosowaniem algorytmu selekcji cech. Proces ten składa się z kilku
etapów mających na celu - w efekcie końcowym - uzyskanie ostatecznej, krót-
szej niż początkowa wersji słownika, na którym będzie pracował algorytm
selekcji cech.
Pierwszym etapem tego procesu jest usunięcie ze słownika słów, wystę-
pujących w różnych formach (np. rzeczowniki mogą występować w różnych
przypadkach) i pozostawienie jednego rdzenia słowotwórczego wspólnego dla
tych słów. Zabieg ten pozwoli w znacznym stopniu zmniejszyć rozmiar słow-
nika, który będzie wykorzystywany w dalszym etapie pracy.
Istnieją gotowe algorytmy, pozwalające przeprowadzić wyżej opisany pro-
ces. Na potrzeby naszego projektu wykorzystano algorytm Portera [Porter],
ponieważ dokumenty tekstowe, na których będzie pracował klasyfikator zo-
stały napisane w języku angielskim. W przypadku innych języków, jak na
przykład języka polskiego, proces lematyzacji (pozyskania ze zbioru słów sa-
mych rdzeni słowotwórczych) jest zagadnieniem o wiele bardziej złożonym
i skomplikowanym.
Ze słownika należy także usunąć tzw. słowa stopu, czyli wszelkiego ro-
dzaju spójniki, przyimki, takie jak ”lub”, ”z”, ”ponieważ”, ”zatem”, ”jeśli”,
”tymczasem” itd. Usunięcie słów stopu pozwoli na usunięcie danych, mogą-
cych negatywnie wpływać na skuteczność klasyfikatora [Mase00]. Ponadto
redukcja ilości danych przyczyni się do skrócenia czasu potrzebnego na prze-
prowadzenie procesu klasyfikacji. Jednak należy pamiętać, że w niektórych
przypadkach usunięcie słów stopu może wpłynąć negatywnie na skuteczność
klasyfikatora [Ril95]. Pogorszenie skuteczności może mieć miejscie, ponieważ
niektóre słowa stopu mogą wchodzić w skład kilkuczłonowych wyrażeń, któ-
re są charakterystyczne dla pewnej klasy dokumentów (np. tytuły książek,
filmów, utworów muzycznych). ”Zbrodnia i kara” rozpatrywana jako jedno
wyrażenie wskazuje na przynależność dokumentu do klasy decyzyjnej zwią-
zanej z literaturą, natomiast jako dwa osobne słowa (po usunięciu słowa ”i”)
może wskazywać na dokument dotyczący przestępczości.
Po przeprowadzeniu stemmingu i usunięciu słów stopu oraz słów nie
odgrywających znaczącej roli w klasyfikacji dokumentu zostaje uzyskany
słownik składający się w głównej mierze z rdzeni słowotwórczych. Dopiero
otrzymany w ten sposób zbiór słów stanowi dane wejściowe dla algorytmu
ROZDZIAŁ 2. SELEKCJA CECH 17

selekcji cech.

2.4 Algorytmy selekcji cech


Zadaniem algorytmu selekcji cech jest wyliczenie dla każdego słowa w słow-
niku wartości, którą możemy nazwać współczynnikiem jakości. Wartość tego
współczynnika określa jak dobrym wyznacznikiem jest dane słowo jeśli cho-
dzi o klasyfikację dokumentu do jednej z klas decyzyjnych.
Sposoby wyliczania wartości tego współczynnika są różne w zależności od
wybranego algorytmu. W systemie będącym tematem tej pracy zastosowano
dwa algorytmy selekcji cech DF (ang. Document Frequency) oraz χ 2 .

2.4.1 Document Frequency


Najprostszą metodą wykorzystywaną do selekcji cech jest miara DF (ang.
Document Frequency). Zlicza ona ilość wystąpień danego termu w kolek-
cji dokumentów. Po jej zastosowaniu, otrzymujemy dla każdego słowa ze
słownika wyliczoną wartość uzależnioną od ilości jego wystąpień. Spośród
wszystkich słów należy odrzucić te, które mają skrajne wartości (odrzuca-
my te, które są na krańcach przedziału wartości funkcji DF). Liczbę odrzu-
conych słów, oraz przedział wartości, który zostanie odrzucony, dobieramy
eksperymentalnie.
Odrzucane są słowa, które występują w bardzo dużej, bądź też bardzo
małej ilości dokumentów. W związku z ich częstotliwością występowania
możemy przyjąć założenie, że nie będą one odgrywały znaczącej roli w pro-
cesie klasyfikacji [Yang97]. Ich usunięcie natomiast pozwoli na zmniejszenie
złożoności obliczeniowej procesu klasyfikacji, skrócenie czasu potrzebnego
na przeprowadzenie procesu klasyfikacji, a także pozwoli oczyścić dane wej-
ściowe z szumów (w tym wypadku słów mogących pogorszyć skuteczność
klasyfikatora).

Strategie doboru słów ze słownika


Zastosowanie różnych strategii może spowodować polepszenie, bądź też po-
gorszenie skuteczności klasyfikatora. Możemy na przykład odrzucić 10% ilo-
ści wszystkich słów w słowniku. Słowa te mogą zawierać się w przedziale
< min, 10%max > lub < 90%max, max >, gdzie min i max to odpowiednio
minimalna i maksymalna wartość współczynnika wyliczonego dla danego
słowa przez określony algorytm selekcji cech.
Zastosowanie tego typu przedziałów pozwoli na wyeliminowanie słów
o najmniejszej oraz największej ilości wystąpień w dokumentach. Słowa te
mogą występować we wszystkich dokumentach, lub też w niewielkiej liczbie
dokumentów należących do różnych klas decyzyjnych. Dlatego też mogą one
wpłynąć negatywnie na skuteczność klasyfikatora [Yang97].
ROZDZIAŁ 2. SELEKCJA CECH 18

Przedziały określające wartości współczynników wyliczone przy pomocy


algorytmu selekcji cech, które pozwalają stwierdzić czy dane słowo zostanie
usunięte ze słownika należy dobrać eksperymentalnie. Takie podejście mi-
nimalizuje szansę wystąpienia sytuacji, kiedy redukcja ilości słów odbędzie
się kosztem skuteczności klasyfikatora. Dokonując redukcji możemy jednak
usunąć słowa, które jednak mogą mieć duże znaczenie dla klasyfikacji do-
kumentu. Decydując sie na eksperymentalny dobór progów minimalizujemy
prawdopodobieństwo zaistnienia takiego zdarzenia.

Podsumowanie
Algorytm DF opiera się na częstości występowania danego słowa w całej
kolekcji dokumentów. Algorytm ten nie bierze pod uwagę klas decyzyjnych,
a także zależności między nimi a słowami kluczowymi. Opiera się on jedynie
na miarach ilościowych.
Drugi algorytm, który zastosowaliśmy w naszym projekcie uwzględnia
zależności między klasami decyzyjnymi a poszczególnymi słowami ze słow-
nika pojęć. Jak później będziemy mieli okazję się przekonać zastosowanie
tego algorytmu daje inne wyniki jeśli chodzi o uzyskaną skuteczność klasy-
fikatora. Inaczej wybierane są także słowa ze słownika dla algorytmu klasy-
fikującego niż w przypadku algorytmu DF. Algorytm ten koncentruje się na
rozkładzie zmiennej losowej (w tym przypadku konkretnego słowa ze słowni-
ka) względem kategorii. Pozwala on znaleźć słowa, których liczba wystąpień
w konkretnej kategorii jest znacznie większa, bądź też mniejsza niż wyni-
kałoby to z rozkładu zmiennej losowej. Algorytm ten w przeciwieństwie do
algorytmu DF omawianego wcześniej pozwala na ściślejsze związanie danego
słowa z klasą decyzyjną dokumentu.

2.4.2 χ2
χ2 (czyt. chisquare) jest drugą metodą selekcji cech wykorzystywaną w na-
szym projekcie. W przeciwieństwie do omawianej w poprzednim podroz-
dziale metody DF uwzględnia ona zależności jakie mogą zachodzić między
klasami decyzyjnymi a słowami kluczowymi [Aas99] [Chak02].

Opis działania
W naszym systemie w najprostszym przypadku klasyfikacji podlegać bę-
dą dokumenty podzielone na trzy klasy decyzyjne. Ten właśnie najprostszy
przypadek posłuży za punkt wyjścia dla wyjaśnienia zasady działania algo-
rytmu χ2 . Oznaczmy klasy decyzyjne jako C = 0,1,2 oraz wybrane słowo
kluczowe jako t. Przy takich założeniach niech:

ki,0 = liczba dokumentów w klasie i nie zawierających słowa kluczowe-


go t
ROZDZIAŁ 2. SELEKCJA CECH 19

ki,1 = liczba dokumentów w klasie i zawierających słowo kluczowe t

Przy tak przyjętych oznaczeniach możemy zbudować macierz kontyn-


gencji (ang. contingency matrix ) 2.1, w której w rzędach wypisane są klasy
decyzyjne (C), w kolumnach natomiast podpisanych 0 lub 1 oznaczamy wy-
stępowanie, bądź też nie termu t w dokumentach z klasy decyzyjnej C.
Z komórek macierzy możemy odczytać liczbę dokumentów z klasy decyzyj-
nej zawierających (dla It = 1), lub nie zawierających (dla It = 0) termu t.
Dla rozważanego przykładu macierz ta przedstawia się w następujący spo-
sób (tabela 2.1):

C/It 0 1
0 k0,0 k0,1
1 k1,0 k1,1
2 k2,0 k2,1

Tabela 2.1: Macierz kontyngencji

Możemy określić rozkład prawdopodobieństw w następujący sposób:

P(C=0) = (k0,0 +k0,1 )/n


P(C=1) = (k1,0 +k1,1 )/n
P(C=2) = (k2,0 +k2,1 )/n
P(It = 0) = (k0,0 +k1,0 +k2,0 )/n
P(It = 1) = (k0,1 +k1,1 +k2,1 )/n

gdzie:
n - liczba dokumentów w kolekcji
n = k0,0 + k0,1 + k1,0 + k1,1 + k2,0 + k2,1

Warto zauważyć, że gdyby zmienne C oraz I t były niezależne dla danego


słowa t, to w takim przypadku:
P (C = 0, It = 0) = P (C = 0) ∗ P (It = 0)
Podobne równania wynikające z założenia niezależności C oraz I t można
zapisać dla pozostałych kombinacji C oraz I t . Prawdziwość tego założenia
oznaczałaby, że wystąpienie danego słowa w dokumencie nie zależy w żaden
sposób od jego przynależności do danej klasy decyzyjnej.
Tym samym słowa takie możemy uznać za mało znaczące w procesie kla-
syfikacji. Przy zachowaniu powyższego założenia możemy przyjąć, że wartość
w komórce (l, m) macierzy kontyngencji można wyliczyć ze wzoru:
n ∗ P (C = l, It = m)
ROZDZIAŁ 2. SELEKCJA CECH 20

Natomiast wartość tej komórki w samej macierzy kontyngencji wyno-


si kl,m .
χ2 sumuje różnice pomiędzy wartościami oczekiwanymi komórek (l,m)
macierzy (wyliczonymi na podstawie podanego wyżej wzoru), a wartościami
które możemy odczytać bezpośrednio z macierzy.
Wartość tej miary wyliczamy w następujący sposób(przy założeniu nie-
zależności C oraz It ):

(kl,m −n∗P (C=l)∗P (It =m))2


χ2 =
P
l,m n∗P (C=l)∗P (It =m)

Jak widać z powyższego wzoru wzrost wartości różnicy w liczniku po-


ciąga za sobą wzrost wartości całego wyrażenia. Wartość w liczniku wy-
rażenia możemy określić jako wyznacznik stopnia fałszywości naszego za-
łożenia o niezależności C oraz It . Im większą wartość będzie przyjmować
to wyrażenie tym bardziej prawdopodobieństwo wystąpienia danego słowa
w dokumencie zależy od klasy decyzyjnej do której ten dokument należy.
Takie właśnie słowa, dla których wartość tego wyrażenia będzie wysoka mo-
żemy uznać za dobre wyznaczniki przynależności dokumentu do danej klasy
decyzyjnej.

Zastosowanie
Dla celów selekcji cech wyliczamy wartość współczynnika χ 2 dla wszystkich
słów kluczowych, które znajdują się w słowniku. Następnie uzyskane warto-
ści sortujemy w porządku malejącym.
Zgodnie z tym, co zostało napisane w poprzednim rozdziale słowa o wyso-
kiej wartości współczynnika wyliczonego przez ten algorytm możemy uznać
za dobre wyznaczniki przynależności danego dokumentu do klasy decyzyj-
nej. Spośród tak przygotowanego zestawu słów wraz z wyliczonymi dla nich
wartościami χ2 dokonujemy selekcji. Wybieramy słowa o najwyższej warto-
ści współczynnika [Cal00]. Dzięki temu wektor wejściowy będzie zbudowany
ze słów, których obecność w dokumencie jest w jak największym stopniu
związana z przynależnością dokumentu do danej klasy decyzyjnej.
Dla uzyskania jak najlepszych wyników należy kilkakrotnie dokonać se-
lekcji słów kluczowych. Przez kilkakrotną selekcję rozumiemy wielokrotne
eksperymentalne dobieranie wartości parametru χ 2 , powyżej której słowo
kluczowe zostanie włączone do wektora jako jego kolejna współrzędna. Sło-
wa kluczowe dobierane są według wartości parametru χ 2 (im większa wartość
parametru tym większa szansa, ze słowo znajdzie się w wektorze).
Należy pamiętać, że wzrost ilości współrzędnych wektora pociąga za so-
bą wzrost ilości czasu potrzebnego do przeprowadzenia całego procesu kla-
syfikacji. całego problemu. Co więcej, zwiększenie ilości słów kluczowych
w wektorze cech nie zawsze musi pociągać za sobą zwiększenie skuteczno-
ści klasyfikatora. Może dojść do sytuacji, kiedy wprowadzone do wektora
ROZDZIAŁ 2. SELEKCJA CECH 21

dodatkowe słowa kluczowe zaczną wpływać negatywnie na skuteczność kla-


syfikatora (słowa o niskiej wartości parametru χ 2 ).
Przy każdej następnej próbie należy zmienić liczbę słów, które zosta-
ną wybrane. Można tego dokonać określając próg wartości parametru, od
którego słowo będzie wybierane jako składowa wektora wejściowego.

Podsumowanie
Algorytm χ2 nie opiera się, tak jak ma to miejsce w przypadku algorytmu
DF na podejściu ilościowym. Idea powyżej opisanego algorytmu opiera się na
regułach probabilistyki oraz założeniu niezależności dwóch zdarzeń, jakimi
są przynależność dokumentu do klasy decyzyjnej, oraz obecność aktualnie
rozpatrywanego słowa kluczowego w tym dokumencie.
Zastosowanie takiego podejścia pozwala wybrać te słowa kluczowe, które
w jak największym stopniu są powiązane z klasami decyzyjnymi dokumen-
tów. Stanowi to znaczącą różnicę w porównaniu z algorytmem DF, który
takich zależności nie brał w ogóle pod uwagę.
Rozdział 3

Klasyfikatory

3.1 Wstęp
Spośród metod klasyfikacji dokumentów tekstowych opisanych we wstępie
pracy w systemie zostały zaimplementowane dwie z nich: KNN oraz (ang.
Naive Bayes). Obydwie metody reprezentują przykład odmiennego podej-
ścia do zagadnień klasyfikacji, pomimo, iż każdy z nich oparty jest na regu-
łach zaczerpiętnych z matematyki.

• Algorytm KNN wykorzystuje metody geometryczne do obliczenia od-


ległości pomiędzy dokumentami.

• Algorytm (ang. Naive Bayes) wykorzystuje metody probabilistyczne.

22
ROZDZIAŁ 3. KLASYFIKATORY 23

3.2 Klasyfikator KNN


3.2.1 Podstawy
KNN (ang. K-Nearest neighbor ) to jeden z najprostszych algorytmów
klasyfikacyjnych. Jego ideą działania jest znalezienie k najbliższych sąsia-
dów do podanego obiektu. Na podstawie k wybranych obiektów ustalana
jest klasa decyzyjna poszukiwanego obiektu, która jest wynikiem działania
klasyfikatora. Wyliczenie odległości pomiędzy dwoma obiektami jest bardzo
proste w przypadku, gdy obiekty posiadają tylko jeden atrybut liczbowy.
Wtedy, jest to po prostu, różnica pomiędzy wartościami atrybutów dwóch
obiektów. W przypadku, gdy przykłady zawierają więcej niż jeden atrybut
używana jest odległość Euklidesowa. Zakłada się jednak wtedy, że atrybuty
są znormalizowane oraz mają taką samą istotność. Często określenie, które
atrybuty są najważniejsze, jest najtrudniejszym problemem uczenia.
Porównanie wartości atrybutów dla danych dwóch obiektów opisane jest
wzorem (odległość euklidesowa):

Pn q
d(oa , ob ) = i=1 (oai − obi )2

n = liczba termów
oai = wartość i-tego atrybutu pierwszego obiektu
obi = wartość i-tego atrybutu drugiego obiektu

Po wybraniu k najbliższych obiektów do podanego obiektu konieczne


jest zdecydowanie, jaka będzie klasa decyzyjna rozpatrywanego przypadku.
Decyzję tę, podejmuje się zwykle poprzez głosowanie większościowe wśród
k wybranych obiektów.
Kiedy obiekty zawierają atrybuty dyskretne, np. pogoda słoneczna, desz-
czowa, pochmurna itd. konieczne jest opracowanie miary umożliwiającej wy-
liczenie odległości pomiędzy wartościami atrybutów. Miary, która umożliwi
ustalenie jaka jest odległość np. między wartościami słoneczna a deszczowa.
Najprostszym sposobem rozwiązania tego problemu jest ustalenie, iż wartość
0 oznacza, że wartości są takie same, a wartość 1, że wartości są różne. I tak
odległość pomiędzy słoneczna a deszczowa wynosi 1, a pomiędzy słoneczna
a słoneczna wynosi 0. Oczywiście często tego typu miara odległości jest nie-
wystarczająca i konieczne jest opracowanie miary lepiej odzwierciedlającej
specyfikę problemu.
Innym możliwym rozwiązaniem problemu atrybutów dyskretnych jest
dokonanie dyskretyzacji, czyli zamiany tych wartości na wartości liczbowe.
Zadanie to jest najłatwiejsze w przypadku atrybutów opisujących pewien
stopień przynależności, np. temperatura niska, średnia, wysoka. Wystarczy
wówczas skonstruować defuzyfikator, którego zadaniem będzie zamiana war-
tości dyskretnych na liczbowe, ustalając np. że temperatura niska to 5 stopni
ROZDZIAŁ 3. KLASYFIKATORY 24

Celsjusza, temperatura średnia to 20 stopni Celsjusza a temperatura wysoka


to 30 stopni Celsjusza.
Często jeden z atrybutów (bądź pewna ich grupa) może być bardziej
istotny, tzn. może mieć większy wpływ na klasę decyzyjna obiektu niż po-
zostałe atrybuty. Dlatego należy uwzględnić ten fakt poprzez dodanie wag
do każdego atrybutu odzwierciedlających istotność atrybutów.

3.2.2 KNN w klasyfikacji dokumentów tekstowych


Celem działania algorytmu KNN w klasyfikacji dokumentów tekstowych jest
znalezienie k najbliższych dokumentów tekstowych do dokumentu podanego
na wejście algorytmu. Każdy dokument tekstowy zanim zostanie dodany do
zbioru treningowego przechodzi proces stemmingu, czyli obcinania słów do
rdzeni słowotwórczych oraz usunięcia słów stopu a następnie z dokumentu
zostają wyekstrahowane słowa kluczowe, tzw. termy.
Sposób reprezentacji termów zależy od wybranego modelu reprezentacji
danych. Najprostszym z nich jest reprezentacja bitowa. Dla każdego doku-
mentu zostaje wygenerowany wektor składający się z zer i jedynek. Wartość
0 przypisywana jest, gdy dany term nie występuje w dokumencie, a wartość
1, gdy term występuje raz bądź więcej razy. Wymiar wektora jest równy
liczbie wszystkich słów ze słownika.
Zaletą reprezentacji wektorowej w porównaniu do reprezentacji bitowej
jest uwzględnianie faktu, iż niektóre termy niosą więcej informacji niż pozo-
stałe. W tej reprezentacji każdy element wektora ma przypisaną rzeczywistą
dodatnią liczbę - wagę. Waga, określa jaka jest istotność danego termu w da-
nym dokumencie. Im ta wartość jest większa tym term ma większe znaczenie.
Jednym z najprostszych algorytmów wyliczających wagi w reprezentacji
wektorowej jest algorytm TF/IDF (ang. Term Frequency/Inverse Document
Frequency).

3.2.3 TF/IDF
Miara wyliczana w tym algorytmie oparta jest na częstotliwości występo-
wania danego słowa w dokumencie, oraz liczbie dokumentów, w której dane
słowo występuje. Cały algorytm opiera się na następującym wzorze:

T F IDF (w) = T F (w) ∗ log( DFN(w) )

w - oznacza konkretne słowo ze słownika pojęć


TF(w) - ilość wystąpień słowa w w dokumencie
DF(w) - ilość dokumentów zawierających słowo w
N - liczba wszystkich dokumentów

Jak widać z powyższego wzoru wartość funkcji TFIDF(w) będzie rosnąć


wraz ze wzrostem wartości współczynnika TF(w) oraz zmniejszaniem się
ROZDZIAŁ 3. KLASYFIKATORY 25

DF(w). Funkcja osiągnie swoje maksimum przy T F (w) → ∞ oraz DF (w) →


0 . Oznacza to, że dane słowo jest tym lepszym wyznacznikiem pozwalają-
cym określić klasę dokumentu im więcej razy występuje w danym doku-
mencie i w im mniejszej ilości dokumentów występuje. Zależność tę można
łatwo odczytać ze wzoru stanowiącego istotę całego algorytmu. Zastosowanie
funkcji logarytmicznej we wzorze służy normalizacji wyniku ilorazu liczby
wszystkich dokumentów do liczby dokumentów zawierających słowo w.
Wartość funkcji logarytmicznej nigdy nie będzie mniejsza od zera, po-
nieważ muszą istnieć jakieś dokumenty (nigdy nie nastąpi sytuacja, w której
N<1, czyli tym samym wartość funkcji logarytmicznej zawsze będzie większa
od zera). Nigdy też nie będzie miała miejsca sytuacja, gdy liczbą logarytmo-
waną będzie 0. Wartość DF(w) zawsze będzie większa niż 0, ponieważ skoro
słowo znalazło się w słowniku musiało wystąpić w przynajmniej jednym
dokumencie.
Wadą algorytmu TF IDF jest fakt, iż nie uwzględnia on zależności ter-
mów od klas decyzyjnych, w których termy występują. Tzn. term, który
występuje tylko w jednej klasie decyzyjnej niesie dużo większą informację
niż term, który znajduje się we wszystkich klasach decyzyjnych. Natomiast,
dla algorytmu TF IDF (biorącego pod uwagę tylko ilość wystąpień termu)
oba takie termy mógłby mieć taką samą wagę.

3.2.4 Zastosowania
Algorytm KNN może być wykorzystywany w wielu innych zastosowaniach,
innych niż klasyfikacja dokumentów tekstowych, np. w systemach wykrywa-
nia włamań IDS [Raw04]. Każdy problem, który możliwy jest do przedsta-
wienia jako zbiór liczbowych atrybutów bądź możliwe jest stworzenie funkcji
liczącej odległości pomiędzy dowolnymi dwoma obiektami, może zostać roz-
wiązany za pomocą algorytmu KNN.

3.2.5 Wady
Główną wadą algorytmu KNN jest mała wydajność i duże wymagania na
zasoby obliczeniowe. Wszystkie dane treningowe muszą być przechowywane.
A dokonanie klasyfikacji jednego obiektu wymaga przejrzenia całego zbioru
danych treningowych. Problemem jest również fakt, iż cały czas obliczenio-
wy wykorzystywany jest podczas klasyfikacji a nie w momencie dodawania
nowego obiektu do zbioru danych treningowych [Aas99]. Te wady wyklucza-
ją możliwość stosowania algorytmu KNN w systemach zawierających duże
ilości danych oraz w systemach, które muszą szybko podejmować decyzję na
podstawie danych dostarczonych przez użytkownika. Również dużym proble-
mem jest dobór odpowiedniej wartości parametru k, który ma decydujący
wpływ na jakość klasyfikacji. Zwykle jest on zależny od rodzaju danych,
na których działa klasyfikator, dlatego najlepiej jest znaleźć jego najlepszą
ROZDZIAŁ 3. KLASYFIKATORY 26

wartość eksperymentalnie.

3.2.6 Odmiany KNN


Istnieje również wiele mutacji algorytmu KNN, np. KNN Model-Based [Guo03]
- metoda ta tworzy model (zbiór reprezentantów danych treningowych) i do-
konuje klasyfikacji zgodnie z tym modelem. Dzięki temu przy klasyfikacji nie
jest konieczne przejrzenie wszystkich obiektów treningowych.

3.2.7 Eksperymenty
W naszej pracy przeprowadziliśmy eksperymenty z różnymi mutacjami algo-
rytmu TF IDF, algorytmu głosowania oraz algorytmu doboru parametru k.
ROZDZIAŁ 3. KLASYFIKATORY 27

3.3 Klasyfikator Bayesowski


3.3.1 Podstawy
Klasyfikacja za pomocą algorytmu Bayesa polega na wykorzystaniu zbioru
dotychczasowych obserwacji w celu ustalenia prawdziwości nowych hipotez
[Aas99] - jest to prawdopodobieństwo a posteriori korzystające z wyrażenia:

P (a|B)

gdzie:
a - zdarzenie elementarne
B - zdarzenie elementarne mające wpływ na zajście zdarzenia a
Z powyższego wyrażenie korzysta sie jedynie gdy zdarzenie B ma wpływ
na możliwość zajścia a, w przeciwnym wypadku jest to prawdopodobieństwo
a priori P (a), gdzie zdarzenie a jest niezależne i nie ma na nie wpływu
zdarzenie B. Prawdopodobieństwa a priori i a posteriori są sobie równe.
Poniższy wzór na prawdopodobieństwo warunkowe stanowi punkt wyjścia
dla dalszych rozważań:
P (B|A)P (A)
P (A|B) = P (B)

3.3.2 Klasyfikacja tekstu


W przypadku klasyfikacji dokumentów tekstowych przy użyciu klasyfikatora
bayesowskiego przyjmuje się, że rozpatrywany wektor należy do znanej klasy
- jest to hipoteza, którą należy udowodnić. Wylicza się prawdopodobieństwa
P (a|B) (B to klasa decyzyjna) dla wszystkich wcześniej zdefiniowanych de-
cyzji. Na znanym już zbiorze dokumentów liczone są prawdopodobieństwa
każdego wektora i jego atrybutu - zbiór ten nazywany jest omegą i jest on
wykorzystywany przy wyliczaniu prawdopodobieństw P (a|B). Umożliwia to
sprawdzenie, do której z klas decyzyjnych należy rozpatrywany tekst. Klasy-
fikacja odbywa się metodą maksymalnego prawdopodobieństwa a posteriori
stąd dany tekst zostanie zaklasyfikowany do klasy, dla której wyliczone zo-
stanie największe prawdopodobieństwo:

Ampa = maksimumP (A|B)


Ampa - maksymalne prawdopodobieństwa a posteriori.
A- rozważany atrybut
B- dana klasa decyzyjna

Poniżej cały proces opisany jest za pomocą przykładu. By ułatwić zrozu-


mienie problemu podane tutaj wartości będą binarne - należy jednak dodać,
że algorytmem Bayes’a można klasyfikować dane o wagach zarówno binar-
nych jak i wielomianowych.
ROZDZIAŁ 3. KLASYFIKATORY 28

Przykład:
Dla dwóch klas decyzyjnych: d1 i d2 o wartościach kolejno 0 i 1, istnieją
prawdopodobieństwa: P (X|d1 ), P (X|d2 ) - czyli opisujące prawdopodobień-
stwo wystąpienia w danej klasie dla tekstu X.

W tabeli 3.1 znajduje się zestaw wektorów zawierających cztery atrybuty


(a1 , a2 , a3 , a4 ) oraz decyzję d.

a1 a2 a3 a4 d
0 0 0 1 0
1 1 1 1 0
1 0 1 1 1
0 0 1 0 1

Tabela 3.1: Przykładowe dane uczące

Decyzja to znana już przynależność wektorów z danych treningowych,


do jednej z klas decyzyjnych (w tym wypadku 0 lub 1).

a1 a2 a3 a4
0 1 0 1

Tabela 3.2: Przykładowy zestaw atrybutów do klasyfikacji

Przypadek 3.2 będzie klasyfikowany według następującej kolejności:

1. Przyjęto założenie, że klasyfikowany dokument musi być w jednej ze


znanych i zdefiniowanych wcześniej klas. Następuje wyliczenie praw-
dopodobieństwa dla każdej z przyjętych klas decyzyjnych.

2. Przebieg klasyfikacji:
Dla pierwszej z klas decyzyjnych (0) z danych uczących rozpatrywane
są wszystkie wektory posiadające decyzję 0. Sprawdza się ile wśród
nich posiada taką samą wartość każdego z atrybutów, co atrybuty
rozpatrywanego wektora. Próba dokonywana jest dla wszystkich cech
niezależnie i stanowi prawdopodobieństwo dla konkretnego atrybutu
P (atrybutx |decyzja = 0). Czyli dzieli się liczbę wektorów posiadają-
cych klasę 0 i taki sam atrybutx jak w rozważanym wektorze. Przy
czym atrybutx to kolejna z występujących cech, w tym wypadku: a 1 ,
a2 , a3 , a4 . Iloczyn wyliczonych w ten sposób prawdopodobieństw to
ROZDZIAŁ 3. KLASYFIKATORY 29

szansa, że rozpatrywany wektor jest w klasie 0.

Wykonanie tych czynności również dla klasy decyzyjnej 1 da dwa praw-


dopodobieństwa, z których zgodnie z regułą maksimum a posteriori wybie-
rane jest większe co stanowi wynik klasyfikacji. Powyższe rozumowanie daje
się przedstawić za pomocą równania:

P (A|(a0 , a1 , ..., an )) = P ((aP0 ,a(a10,...,a n )|A)P (A)


,a1 ,...,an )
gdzie:
(a0 , a1 , ..., an ) to rozpatrywany wektor.
A to dana klasa decyzyjna, w której znajduje się rozpatrywany wektor -
jest to konieczne założenie by móc rozpocząć rozpatrywanie wektora.
Kolejno za A wstawiane są wszystkie ustalone wcześniej klasy decyzyjne.

W powyższym przypadku dla następujących wartości kolejnych atrybu-


tów klasyfikowanego wektora: 0, 1, 0, 1:

P ((0,1,0,1)|d=0)P (d=0)
P (d = 0|(0, 1, 0, 1)) = P (0,1,0,1)

Mianownik może zostać pominięty, ponieważ wszystkie wyliczone w ten


sposób prawdopodobieństwa dla różnych klas są następnie ze sobą porów-
nywane w celu znalezienia największego prawdopodobieństwa - jest to tak
zwane maksymalne prawdopodobieństwo(a posteriori).
Kolejno wcześniejsze równanie jest przekształcane do postaci:

P (A|(a0 , a1 , ..., an )) = P (a0 |A)P (a1 |A)...P (an |A)P (A)

Przekształcenie to pozwoli na wyliczenie prawdopodobieństw dla każdego


atrybutu rozpatrywanego wektora. Przyjęto założenie o niezależności wy-
stępowania słów w tekście, tym samym można przeprowadzić mnożenie roz-
łącznych zdarzeń P (ax |A). Jest to tak zwane założenie o naiwności algoryt-
mu Bayesa - Naiwny Bayes (ang. Naive Bayes)

Każde P (ax |A) jest zamieniane na P P(a(A) x |A)


(P (A) skraca się w wyni-
ku mnożenia przez P (A) z poprzedniego równania). W tym konkretnym
przypadku istnieje iloczyn czterech takich różnic, gdzie P (A) to prawdopo-
dobieństwo wystąpienia rozpatrywanego wektora w danej klasie decyzyjnej.
Są to: P1 (0|d = 0), P2 (1|d = 0), P3 (0|d = 0), P4 (1|d = 0). Czyli ilość wszyst-
kich wektorów z decyzją A podzielona przez wszystkie wektory w omedze.
W przypadku wyzerowania się któregoś z prawdopodobieństw P (a x |A)
iloczyn wszystkich będzie wynosił zero. By tego uniknąć podczas liczenia
P (ax |A) przy dzieleniu liczby wektorów posiadających klasę A i wartość
ROZDZIAŁ 3. KLASYFIKATORY 30

atrybutu ax przez liczbę wszystkich wektorów o decyzji A, dodaje się do


licznika jedynkę.

Podsumowując powyższy przykład:

przy założeniu że d=0


dla a1 : P (0|d = 0) = 21
dla a2 : P (1|d = 0) = 12
dla a3 : P (0|d = 0) = 12
dla a4 : P (1|d = 0) = 1
P (d0 ): 12 ∗ 12 ∗ 21 ∗ 1 = 18

przy założeniu że d=1


dla a1 : P (0|d = 1) = 21
dla a2 : P (1|d = 1) = 12
tutaj następuje dodanie do licznika 1 by uniknąć mnożenia przez 0 stąd 02
zmienia się na 12
dla a3 : P (0|d = 1) = 12
tutaj również
dla a4 : P (1|d = 1) = 12
P (d1 ): 12 ∗ 21 = 14
z porównania widać że dla klasy 1, prawdopodobieństwo jest większe, stąd
też przyjmuje się, że klasyfikowany tekst należy do klasy 1.

3.3.3 Podsumowanie
Ilość atrybutów na wejściu w wektorze w powyższym przykładzie wynosi 4,
w rzeczywistości liczby te są znacznie większe. To samo ma miejsce w przy-
padku ilości klas decyzyjnych. Ilość danych treningowych również ma duże
znaczenie - powinna być ona jak największa. Zwiększa to wartości prawdo-
podobieństw P (atrybutx |decyzja) czyli o wystąpieniu takiej samej wartości
atrybutux wśród znanych wektorów co w rozpatrywanym tekście. Powoduje
to wzrost przyszłych szans na poprawną klasyfikację jako, że zmianie ulegnie
również iloczyn prawdopodobieństw P (a 0 |A)P (a1 |A)...P (an |A). Istotny też
jest fakt, że powyżej zastosowany algorytm działa na wektorach przyjmu-
jących wartości różnego typu. Istnieje możliwość posiadania znacznie bar-
dziej rozbudowanej struktury dokumentów i ich atrybutów, jak wyliczanie
wag dla każdego słowa kluczowego w procesie poprzedzającym samą klasy-
fikację. Czyli dane miałyby postać wielomianową a nie jak na powyższym
przykładzie binarną.
Zwiększanie omegi o dopiero co rozpatrzone wektory spowoduje zwięk-
szenie mocy tego zbioru. Tym samym prawdopodobieństwa P (atrybut x |decyzja)
będą dokładniejsze czyli wrośnie dokładność samej klasyfikacji. W tym przy-
padku istotne jest by wektory tworzące omegę dobierane były losowo, aby
ROZDZIAŁ 3. KLASYFIKATORY 31

nie faworyzować żadnej z klas decyzyjnych. Ponieważ zwiększenie liczności


danej klasy zwiększa szansę na klasyfikowanie do tej klasy nowych tekstów.
Dodawane wektory muszą mieć odgórnie poprawianą decyzję w celu unik-
nięcia błędów w danych uczących.
Część II

Ekperymenty związane z
klasyfikacją dokumentów
tekstowych

32
Rozdział 4

Platforma

4.1 Wstęp
Aby możliwe było przeprowadzenie wszystkich eksperymentów, które stano-
wią istotę naszej pracy musiała powstać platforma umożliwiająca zarówno
wygodne przeprowadzanie eksperymentów jak i przechowywanie ich wyni-
ków w celu późniejszej weryfikacji.

4.2 Przechowywanie danych


W celu przechowania wszystkich danych niezbędnych do przeprowadzenia
eksperymentów, a także późniejszej weryfikacji ich wyników musiała powstać
odpowiednia baza danych. Schemat bazy danych wykorzystywanej w naszym
projekcie został przedstawiony na rysunku 4.1.
Tabela ”Post” zawiera wszystkie dokumenty, na których przeprowadza-
ny będzie proces klasyfikacji. W tabeli tej znajdują się wszystkie dokumen-
ty tekstowe, wraz z nazwą grupy dyskusyjnej z której pochodzą. Nazwa
określa tematykę dokumentu. Tabela ta zawiera także numer klasy decy-
zyjnej, który jest ustalany w oparciu o nazwę grupy dyskusyjnej. Słownik
słów kluczowych uzyskany w procesie ekstrakcji cech znajduje się w tabe-
li ”Keyword”. Dla każdego słowa kluczowego przechowujemy jego nazwę
oraz częstotliwość występowania w całej kolekcji dokumentów. Jeden rekord
tabeli ”Keyword news” zawiera jeden element wektora termów dla dane-
go dokumentu. Przechowuje ona słowa kluczowe, które wystąpiły w danym
dokumencie wraz z ich wagą wyliczoną algorytmem TF/IDF oraz ilością
wystąpień słowa w danym dokumencie. Tabela ”Xsquare” zawiera wyniki
działania algorytmu selekcji cech XSquare, czyli identyfikator termu wraz
z przypisanym mu współczynnikiem. W bazie istnieją także dwie pozostałe
tabele stworzone na potrzeby analizy wyników eksperymentów oraz moni-
torowania działania samej platformy. Tabela ”Log module” zawiera zapis
aktywności samej platformy (data uruchomienia oraz zakończenia pracy da-

33
ROZDZIAŁ 4. PLATFORMA 34

Rysunek 4.1: Schemat bazy danych

nego modułu, nazwę modułu, nazwa klasy implementującej ten moduł oraz
krótki opis modułu). Natomiast tabela ”Log test” zawiera wyniki działania
klasyfikatora (dokument który klasyfikowano, moduł który uruchomiono,
wynik klasyfikacji dla danego dokumentu oraz pewność decyzji).

4.3 Środowisko
Głównym celem przyświecającym podczas projektowania systemu było uprosz-
czenie procesu przeprowadzania eksperymentów. Udało nam się uzyskać ten
efekt poprzez wprowadzenie możliwości niezależnego uruchamiania poszcze-
gólnych modułów wchodzących w skład systemu. Dzięki zastosowaniu takie-
go właśnie rozwiązania zdołaliśmy skrócić czas potrzebny na przeprowadze-
nie pojedynczego eksperymentu. Wprowadzenie modułowej konstrukcji wy-
eliminowało konieczność każdorazowego uruchamiania całego systemu w celu
przeprowadzenia pojedynczego eksperymentu. Moduły w systemie stanowią
oddzielne bloki realizujące określone funkcje. Rozróżniamy następujące mo-
duły:

1. Parser odpowiedzialny za dodawanie nowych dokumentów teksto-


wych do zasobów systemu. Dodaje rekordy do tabeli ”Post”.
ROZDZIAŁ 4. PLATFORMA 35

2. Extractor odpowiedzialny za przygotowanie słownika słów kluczo-


wych na podstawie danych zgromadzonych w bazie. Stanowi punkt
wyjścia dla pracy dalszych modułów. Dodaje rekordy do tabeli ”Key-
word” i ”Keyword news”.

3. Reductor odpowiedzialny za redukcje liczności słów w słowniku. Od-


rzuca słowa mało istotne z punktu widzenia zagadnienia klasyfika-
cji dokumentów tekstowych. Usuwa rekordy z tabeli ”Keyword” wraz
z odpowiadającymi im rekordami z tabeli ”Keyword news”.

4. WeightComputer odpowiedzialny za wyliczenie wag dla wszystkich


słów kluczowych ze słownika. Generuje macierz wag dla kolekcji doku-
mentów. Ustawia pole weight w tabeli ”Keyword news”.

5. Classifier odpowiedzialny za klasyfikację dokumentów, zawiera algo-


rytmy klasyfikacji które zostały zaimplementowane w systemie. Wy-
korzystuje dane z tabel ”Keyword”, ”Keyword news” i ”Post”.

Moduły mogą być uruchamiane w dowolnej kolejności. W szczególności,


moduł Reductor może wykorzystywać wagi wyliczone przez moduł Weight-
Computer.

4.4 Technologie oraz sprzęt


Platforma została napisana w języku programowania Java w wersji 5.0. Sys-
tem wykorzystuje relacyjną bazę danych MySQL w wersji 4.1. Testy doko-
nywane były na komputerach: P4 2.0GHz z 1GB pamięci RAM, P4 2.8GHz
z 512MB pamięci RAM oraz AMD Athlon 64 3000+ z 1GB pamięci RAM.

4.5 Budowa systemu


Komunikacja z platformą odbywa się poprzez protokół TCP/IP. System
nasłuchuje na żądania użytkownika na porcie numer 12345. Komendy do
systemu przekazywane są poprzez autorski protokół tekstowy.
Każdy moduł systemu może być zaimplementowany przez różne klasy,
co umożliwia posiadanie np. wielu klasyfikatorów: KNN i naiwny Bayes. Po-
nadto możliwa jest zmiana bądź dodanie klasy implementującej dany moduł
bez konieczności wyłączania systemu.
System został napisany w technologii wielowątkowej. Każdy moduł uru-
chamiany jest jako osobny wątek, co umożliwia uruchomienie wielu modu-
łów równolegle jak również śledzenie postępu prac modułów poprzez główny
wątek systemu.
ROZDZIAŁ 4. PLATFORMA 36

Platforma ułatwia również tworzenie klas implementujących poszczegól-


ne moduły poprzez udostępnianie programiście bibliotek, zawierających im-
plementację metod do komunikacji z bazą danych oraz ułatwiających zapi-
sywanie wyników testów.

4.6 Instalacja systemu


1. Instalacja środowiska Java w wersji 1.5 oraz bazy danych MySQL
w wersji 4.1
2. Utworzenie bazy danych zgodnie ze schematem bazy danych
3. Konfiguracja opcji związanych z bazą danych w pliku manager.properties
4. Kompilacja źródeł systemu wykorzystując reguły kompilacji znajdu-
jące się w deskryptorze build.xml (polecenie ant all)
5. Instalacja biblioteki mysql-connector-java
6. Uruchomienie pliku run.sh (w przypadku systemów UNIX) lub run.bat
(w przypadku systemów Windows)
7. Wydanie polecenia telnet localhost 12345

4.7 Obsługa systemu


Po połączeniu się z systemem, klient może używać następujących komend:
status wyświetla listę modułów oraz informacje o stanie modułu
list moduł wyświetla listę klas implementujących moduł
run moduł klasa [ parametry ] uruchamiania klasę implementującą mo-
duł wraz z opcjonalnymi parametrami
stop moduł zatrzymuje wykonywanie modułu
matrix numer testu wyświetla macierz kontyngencji dla podanego testu
lub ostatniego testu

4.8 Parametry modułów


Każdy z modułów może posiadać dodatkowe parametry, które przekazywa-
ne są w czasie uruchamiania modułu. Parametry umożliwiają dynamiczną
(tzn. bez konieczności ponownej kompilacji) zmianę sposobu działania mo-
dułu, np. parametr k w KNN. Składnia parametrów wygląda następująco:
parametr=wartość. Wartość parametru może być typu liczbowego lub lo-
gicznego: prawda (true, 1 ) lub fałsz (false, 0 ).
ROZDZIAŁ 4. PLATFORMA 37

4.8.1 DmExtractor
porter włącza/wyłącza stemmer wykorzystujący algorytm Portera

footer włącza/wyłącza pomijanie stopek autorów w dokumentach

4.8.2 DmReductor
min minimalna ilość wystąpień termu, który zostanie uwzględniony w pro-
cesie klasyfikacji

min proc minimalna procentowa wystąpień termu, który zostanie uwzględ-


niony w procesie klasyfikacji

max maksymalna ilość wystąpień termu, który zostanie uwzględniony w pro-


cesie klasyfikacji

max proc maksymalna procentowa wystąpień termu, który zostanie uwzględ-


niony w procesie klasyfikacji

4.8.3 DmKNN
k ilość sąsiadów z których będzie wybierany zwycięzca w głosowaniu więk-
szościowym

dec lista numerów klas decyzyjnych dokumentów, dla których przeprowa-


dzony będzie proces klasyfikacji (przykład: dec=10,20,30 )

4.8.4 DmBayes
omega liczność zbioru danych testowych

opty rodzaj stosowanej optymalizacji. Dostępne są: bin dla binaryzacji oraz
dys1 dla zmiany wag na liczby całkowite i dys2 dla kwantyzacji wag
do liczb od 1 do 12.

4.9 Przeprowadzenie eksperymentu


1. Pierwszą fazą potrzebną do przeprowadzenia eksperymentu jest przy-
gotowanie danych, z których będzie korzystał klasyfikator, zazwyczaj
użyte są do tego celu moduły: extractor, reductor, weightcompu-
ter

2. Następnie następuje główna faza, w której uruchamiany jest klasyfi-


kator wraz z parametrami np. takimi jak k, wykorzystując komendę
run
ROZDZIAŁ 4. PLATFORMA 38

3. Walidacja wyników działania klasyfikatora odbywa się za pomocą ko-


mendy matrix, która prezentuje informacje dotyczące klasyfikacji dla
poszczególnych klas decyzyjnych, w postaci macierzy kontyngencji.

4.10 Przykład interakcji z systemem

$ ./run.sh
[INFO] main:waiting for connections

$ telnet localhost 12345


Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is ’^]’.
OK

status
OK 0s
[modules]
parser:PAUSED
extractor:PAUSED
reductor:PAUSED
weightcomputer:PAUSED
classifier:PAUSED
[run queue]

run extractor DmExtractor


OK 0s

status
OK 0s
[modules]
parser:PAUSED
extractor:RUNNING:06.06.2005 19:54:55 : 41%
reductor:PAUSED
weightcomputer:PAUSED
classifier:PAUSED
[run queue]

run reductor DmReductor max_proc=10 min=5


OK 0s

run weightcomputer DmWeightComputer


ROZDZIAŁ 4. PLATFORMA 39

run classifier DmKNN k=5


OK 0s

matrix
OK 0s
matrix
d4 & d11 &
d4 & 36 & 10
d11 & 1 & 46
diagonal sum: 82
total tests: 93
accuracy: 88.17204301075269%
Rozdział 5

Eksperymenty

5.1 Wstęp
Testy, które zostaną opisane w niniejszym rozdziale stanowią istotę naszej
pracy. Przeprowadzone testy możemy podzielić na kilka grup. Pierwszą gru-
pę obejmują eksperymenty badające wpływ zmian kryteriów doboru termów
na wynik działania algorytmu KNN. Pozostałe grupy obejmują ekspery-
menty dotyczące wpływu zastosowania rożnych algorytmów selekcji cech na
skuteczność klasyfikacji, oraz różnice miedzy poszczególnymi typami algo-
rytmów klasyfikacji dokumentów zaimplementowanych w systemie.

5.2 Ewaluacja eksperymentów


Współczynnikiem użytym do ewaluacji wszystkich przeprowadzonych eks-
perymentów jest skuteczność - miara procentowa wyrażona jako iloraz po-
prawnie zakwalifikowanych dokumentów do ilości wszystkich dokumentów
w próbce treningowej.

5.3 Dane z grup dyskusyjnych


Grupa 1742 dokumentów tekstowych, pochodzących z internetowych grup
dyskusyjnych, została podzielona na 3 klasy decyzyjne zgodnie ze swoją
tematyką:
1. muzyka (459 dokumentów)
2. medycyna (682 dokumentów)
3. języki programistyczne (601 dokumentów)
Ponadto cała grupa dokumentów została podzielona na dwa zbiory: zbiór
treningowy oraz zbiór testujący. Podział został dokonany losowo, ilość doku-
mentów w zbiorze testującym wynosi 10% całej kolekcji dokumentów, czyli

40
ROZDZIAŁ 5. EKSPERYMENTY 41

174 dokumenty.

Następnie został wykorzystany algorytm ekstrakcji cech, który z każdego


dokumentu wydobył wszystkie słowa oraz stworzył z nich słownik. Ponieważ
dokumenty z grup dyskusyjnych zawierają stopki autorów, które nie wiążą
się z tematyką dokumentu nie są one dołączane do słownika. Również testy
zostały przeprowadzone wraz oraz bez użycia stemmera - algorytmu Por-
tera. W celu zmniejszenia wielkości słownika został wykorzystany algorytm
selekcji cech, który usunął ze słownika termy występujące bardzo często albo
bardzo rzadko, jako takie, które nie wnoszą dużo informacji do procesu kla-
syfikacji. Dokładne wartości progów odcinających są przedmiotem naszych
eksperymentów.

5.4 Algorytm KNN wykorzystujący wagi wyliczo-


ne przez TF/IDF
Poniższa sekcja opisuje eksperymenty badające wpływ różnych strategii do-
boru ilości termów na skuteczność klasyfikatora KNN. Przeprowadzone eks-
perymenty mają na celu ustalenie parametrów dla algorytmu selekcji cech,
dla których klasyfikator KNN osiągnie najlepsze wyniki. W trakcie przepro-
wadzonych eksperymentów zmianie ulegają nie tylko parametry określające
kryteria doboru słów kluczowych dla klasyfikatora, ale także parametr k
klasyfikatora KNN odpowiedzialny za ilość dokumentów, spośród których
w głosowaniu większościowym wybierany jest zwycięzca.
Wszystkie eksperymenty zostały przeprowadzone na kolekcji danych po-
chodzących z grup dyskusyjnych (patrz: 5.3).
Dla obliczenia wartości wag został wykorzystany algorytm TF/IDF.
Test polegał na sprawdzeniu dla każdego dokumentu w zbiorze testują-
cym jaka będzie odpowiedź klasyfikatora wykorzystującego tylko dokumenty
ze zbioru treningowego.

5.4.1 Eksperymenty
Progi odcinające z dołu 0.2% oraz 80% z góry (tabela 5.1).

k=5 k=3 k=1


skuteczność 51% 48% 55%

Tabela 5.1: Progi odcinające z dołu 0.2% oraz 80% z góry.

Progi odcinające z dołu 1 słowo kluczowe oraz 80% z góry (tabela 5.2).
Test został przeprowadzony tylko między dokumentami z dwóch klas
decyzyjnych:
ROZDZIAŁ 5. EKSPERYMENTY 42

k=5 k=3 k=1


skuteczność 45% 59% 47%

Tabela 5.2: Progi odcinające z dołu 1 słowo kluczowe oraz 80% z góry.

1. muzyka (459 dokumenty)

2. medycyna (682 dokumenty)

Progi odcinające z dołu 1 słowo kluczowe oraz 80% z góry (tabela 5.3).

k=5 k=3 k=1


skuteczność 77% 73% 71%

Tabela 5.3: Progi odcinające z dołu 1 słowo kluczowe oraz 80% z góry (dwie
klasy decyzyjne).

Kolejne testy zostały przeprowadzone z zastosowaniem jednej wartości


paramteru k, równym 5 (rysunek 5.1). W pierwszych pięciu blokach wykre-
su zastosowano jedynie obcinanie z dołu, zaś ostatnie dwa bloki reprezen-
tują wyniki otrzymane dla obcinania od góry. Przy czym ostatnia kolumna
obrazuje eksperyment przy obcięciu z dołu równym 5, jednakże bez uży-
cia algorytmu Portera (co ma miejsce w poprzedzającej kolumnie). W tym
przypadku skuteczność wzrosła aż o 8% !
Następne wyniki eksperymentów prezentują wykonanie ekstrakcji cech
również bez użycia algorytmu Portera. W każdym przypadku obcięcie górne
wynosiło 5%. Rysunek 5.2 reprezentuje zależność skuteczności od parametru
K.
Da się zauważyć, iż ciągłe zwiększanie parametru k ma słabsze strony.
W przypadku powyższego testu najlepsze wyniki osiągnięto dla k równego 8
i 9, jednakże dalsze zwiększanie parametru owocuje spadkiem skuteczności.

5.5 Algorytm KNN wykorzystujący χ2


Przeprowadzone w tym rozdziale eksperymenty będą dotyczyć wpływu wy-
korzystania algorytmu χ2 do selekcji słów kluczowych, stanowiących skła-
dowe wektora. Wektor ten posłuży jako dane wejściowe dla klasyfikatora
KNN.
Celem przeprowadzanych eksperymentów jest uzyskanie wyników, które
będzie można porównać z rezultatami uzyskanymi w poprzednim podroz-
dziale dla innego algorytmu selekcji cech, a także dobranie takich parame-
trów klasyfikatora przy których uzyskiwane beda najlepsze wyniki.
ROZDZIAŁ 5. EKSPERYMENTY 43

Rysunek 5.1: Odbcięcia 5 termów z dołu.

5.5.1 Dane
Testy przeprowadzono na tych samych danych (patrz: 5.3), które wykorzy-
stane w poprzednim podrozdziale (3 grupy decyzyjne, zbiór 1742 dokumen-
tów, próbka testowa 174 dokumentów). Dzięki temu możliwe będzie porów-
nanie wyników uzyskanych w obu przypadkach, zarówno przy wykorzystaniu
χ2 jak i DF. Aby poszczególne eksperymenty mogły zostać ze sobą porów-
nane próbka testowa, na której były one przeprowadzane przy każdym eks-
perymencie pozostawała stała.

5.5.2 Wpływ zmiany parametru k na skuteczność klasyfika-


tora
Poniższy test ma na celu określenie dla jakich wartości parametru k al-
gorytm KNN korzystający z wektorów wejściowych zbudowanych na bazie
algorytmu selekcji χ2 daje najlepsze wyniki (rysunek 5.3).
Jak widać z wykresu (rysunek 5.3) największą skuteczność algorytm
KNN osiąga dla k=6 lub też dla k=8. Dla dużych wartości parametru K;
K > 8 następuje systematyczny spadek skuteczności klasyfikatora, aż do
k=15, kiedy to zaprzestano dalszych eksperymentów.
Na macierzach kontyngencji (tabela 5.4), (tabela 5.5), oraz (tabela 5.6)
możemy zaobserwować rozkład decyzji klasyfikatora dla 3 przykładowych
eksperymentów z grupy wszystkich, które zostaly przeprowadzone.
ROZDZIAŁ 5. EKSPERYMENTY 44

Rysunek 5.2: Zależność skuteczności klasyfikatora od parametru k

d1 d2 d3
d1 46 3 2
d2 12 45 1
d3 21 29 15

Tabela 5.4: Macierz kontyngencji dla wyników działania algorytmu KNN


przy k=2, korzystającego z χ2

Obserwując macierze kontyngencji dla trzech przykładowych ekspery-


mentów łatwo zauważyć pewną prawidłowość. Klasyfkiator KNN korzysta-
jący z wektorów wejściowych konstruowanych z wykorzystaniem algorytmu
χ2 najlepsze wyniki uzyskuje przy klasyfikacji dokumentów o tematyce zwią-
zanej z muzyką (klasa decyzyjna 1 - medycyna). Niewiele gorsze wyniku
uzyskano także dla dokumentów z 2 klasy decyzyjnej (tematyka medyczna).
Natomiast największe trudności klasyfikator napotyka przy próbie sklasyfi-
kowania dokumentów dotyczących jezyków programowania (klasa decyzyjna
3 - języki programowania).
ROZDZIAŁ 5. EKSPERYMENTY 45

Rysunek 5.3: Zmiany skuteczności klasyfikatora w zależności od wartości


parametru k

d1 d2 d3
d1 31 19 1
d2 2 55 1
d3 8 30 27

Tabela 5.5: Macierz kontyngencji dla wyników działania algorytmu KNN


przy k=8, korzystającego z χ2

d1 d2 d3
d1 18 30 3
d2 1 56 1
d3 3 39 23

Tabela 5.6: Macierz kontyngencji dla wyników działania algorytmu KNN


przy k=15, korzystającego z χ2
ROZDZIAŁ 5. EKSPERYMENTY 46

5.6 Klasyfikator Bayesowski


5.6.1 Wstęp
Testy przeprowadzone w tym rozdziale opisują klasyfikację przy użyciu kla-
syfikatora Bayesowskiego. Zostały one wykonane dla następującej wielkości
zbioru uczącego (omega): 800, 1000, 1500 oraz przy trzech klasach decyzyj-
nych d1 = 1,d2 = 2,d3 = 3. Wyniki zostały przedstawione jako wypadkowa
tych testów, pominięte zostały wyniki z powtarzającymi się wartościami.
Wyjątkiem jest sytuacja gdzie różnorodność wyników była zbyt mała, w ta-
kim wypadku umieszczono powtarzające się testy.
Testy zostały przeprowadzone na różnych zbiorach uczących o tej samej
liczności - jest on tej samej wielkości lecz za każdym razem losowany jest
nowy zestaw danych stanowiących zawartość tego zbioru.

5.6.2 Testy bez optymalizacji danych


Pierwsze testy przeprowadzono na bazie danych nie przeprowadzając żad-
nych optymalizacji. Wyniki 5.7 bez względu na liczność omegi (danych uczą-
cych) były na poziomie poniżej prawdopodobieństwa wystąpienia danej kla-
sy. Korzystano z trzech klas decyzyjnych, w przypadku losowego dobierania
decyzji szansa wynosiłaby 33%. Otrzymane wyniki były jednak dużo niższe
(w granicach 20 − 25%).

Testy: Test 1 Test 2 Test 3 Test 4 Test 5


Skuteczność: 22% 25% 20% 27% 21%

Tabela 5.7: Wyniki klasyfikacji bez optymalizacji

Wnioski:
Zestaw testów 5.7 uwidacznia, iż jakość klasyfikacji jest bardzo słaba. Po
przeanalizowaniu danych zauważalny jest następujący problem: Wartości
atrybutów (wag) są tak różnorodne, że wartości nie powtarzają się. W efek-
cie czego nie udaje się policzyć prawdopodobieństw P (a|decyzja), a tym sa-
mym przeprowadzić poprawnej klasyfikacji. Kolejnym problemem jest fakt,
że istnieje niewielka liczba wektorów, które posiadają wiele słów kluczowych.
Prowadzi to do sytuacji gdzie duża część danych jest zerami.

5.6.3 Testy ze zmianą danych do liczb całkowitych


Dane użyte do testów są te same co wyżej, jednak podlegają one przed kla-
syfikacją zmianie: Wszystkie wagi są zmieniane na liczby całkowite. Do tej
ROZDZIAŁ 5. EKSPERYMENTY 47

pory były to liczby rzeczywiste z wartościami do ósmego miejsca po przecin-


ku. Tracona jest tym samym część informacji ale w zamian rośnie szansa na
znalezienie dwóch takich samych wartości co zwiększa prawdopodobieństwo
wystąpienia danej wartości wiele razy dla danej klasy decyzyjnej (jednej
z trzech).

Testy: Test 1 Test 2 Test 3 Test 4 Test 5


Skuteczność: 24% 21% 29% 27% 21%

Tabela 5.8: Wyniki klasyfikacji 2

Wnioski:
Ponownie wyniki 5.8 są zdecydowanie niższe od możliwych do uzyskania
drogą losowania. Zauważalne jest podniesienie się dolnej granicy skutecz-
ności i tym samym zmniejszenie się różnic pomiędzy kolejnymi wynikami
klasyfikacji.

5.6.4 Testy z kwantyzacją


By jeszcze bardziej zwiększyć szanse wystąpienia podobnych wartości w ko-
lejnych testach dane zostały poddane kwantyzacji polegającej na zmianie
wartości atrybutów poprzez przypisanie ich do odpowiednich przedziałów.
Wyznaczone zostały przedziały co 100, decydujące o wartości atrybutu. Np:
atrybut o wartości 452 ma wartość 5 (zaokrąglenie na podstawie wartości
dziesiątek i jedności.) W rezultacie takiego działania otrzymano 12 przedzia-
łów o kolejnych wartościach 1 2 3 4 5 6 7 8 9 10 11 12. Są to nowe wartości
atrybutów dla wektorów.

Testy: Test 1 Test 2 Test 3 Test 4 Test 5


Skuteczność: 40% 39% 41% 40% 39%

Tabela 5.9: Wyniki klasyfikacji 3

Wnioski:
W wynikach 5.9 osiągnięto 40% skuteczność na poprawną klasyfikację da-
nego wektora. Zauważalna poprawa jest wynikiem zwiększenia się prawdo-
podobieństw P (a|decyzja) czyli ilości wystąpień danej wartości dla danego
atrybutu w omedze.

5.6.5 Testy z binaryzacją


Na podstawie wniosków z poprzednich doświadczeń postanowiono zbinary-
zować dane. Efektem czego jest zmiana wszystkich atrybutów większych od
ROZDZIAŁ 5. EKSPERYMENTY 48

zera na jeden. Tak, że wektory danych uczących i testowych będą zawierały


jedynie wartości 0 i 1.

Testy: Test 1 Test 2 Test 3 Test 4 Test 5


Skuteczność: 44% 47% 59% 61% 60%

Tabela 5.10: Wyniki klasyfikacji 4

Wnioski:
Binaryzacja dała zdecydowanie najlepsze rezultaty. Powyższe wyniki 5.10 to
sumaryczne zestawienie testów przeprowadzonych dla różnych liczności ome-
gi - kolejno: 800, 1000, 1500. Jak widać wzrost liczności oraz zastosowanie
zmiany liczb większych od zera na 1 spowodowało wzrost szans na poprawną
klasyfikację. Maksymalna skuteczność osiągnęła wartość 61%. Jest to maksi-
mum jakie udało się uzyskać dla takich danych. Ich dalsza optymalizacja czy
też modyfikacja jest bardzo trudna. By jednak zobrazować problem z wy-
stępowaniem zer jako wartości atrybutów w tabeli 5.11 pokazano ilość zer
w stosunku do wszystkich atrybutów o wartości niezerowej.

Wagi niezerowe: 4%
Wagi zerowe: 96%

Tabela 5.11: Stosunek liczby wag zerowych do niezerowych w danych testo-


wych

5.6.6 Podsumowanie
Okazuje się, że dane mają istotny wpływ na jakość klasyfikacji, zbyt częste
powtarzanie się pewnej wartości jest tak samo niesprzyjające jak jej zbyt
rzadkie występowanie. Ważne jest też by posiadać jak największy zbiór da-
nych uczących i by był on znacznie większy od ilości słów kluczowych - na
przedstawionych eksperymentach wyniki klasyfikacji były nienajlepsze rów-
nież z tej przyczyny. Wynika to z tego, że wielkość zbioru uczącego była
zbliżona do ilości słów kluczowych (tabela 5.12).

Słowa kluczowe: 1539


Wektory: 1742

Tabela 5.12: Stosunek liczby wektorów do liczby słów kluczowych

Sytuacja gdzie liczba atrybutów jest równa bądź większa od liczby wek-
torów jest niezwykle niekorzystna - zmniejsza szansę na zaistnienie takich
ROZDZIAŁ 5. EKSPERYMENTY 49

samych wartości atrybutów. Podobne wyniki osiągnięte zostały w [Fang01].


Dopiero zastosowanie bardziej złożonych metod zaowocowało lepszą skutecz-
nością.

Rysunek 5.4: Porównanie skuteczności klasyfikatora bayesowskiego przy za-


stosowaniu różnych metod optymalizacyjnych

Podsumowujący wykres skuteczności klasyfikacji algorytmem Naiwnego


Bayesa w zależności od zastosowanej metody przetworzenia danych (rysunek
5.4).
ROZDZIAŁ 5. EKSPERYMENTY 50

5.7 Algorytm KNN wykorzystujący wagi wyliczo-


ne przez TF IDF na kolekcji danych pochodzą-
cych z agencji Reuters
Alternatywne eksperymenty zostały przeprowadzone również na innej bazie,
której źródłem było archiwum (1987 rok) ręcznie przygotowanych i sklasyfi-
kowanych dokumentów pochodzących z agencji Reuters. W tym przypadku
oryginalne dane stanowiły pliki hipertekstowe w formacie SGML.

5.7.1 Parsowanie danych


Każdy z pobranych dokumentów SGML składa się z wielu artykułów ozna-
czonych znacznikami. Przykładowa zawartość wygląda następująco:

<REUTERS TOPICS="YES" LEWISSPLIT="TRAIN" CGISPLIT="TRAINING-SET"


OLDID="5544" NEWID="1">
<DATE>26-FEB-1987 15:01:01.79</DATE>
<TOPICS><D>cocoa</D></TOPICS>
<PLACES><D>el-salvador</D><D>usa</D><D>uruguay</D></PLACES>
<PEOPLE></PEOPLE>
<ORGS></ORGS>
<EXCHANGES></EXCHANGES>
<COMPANIES></COMPANIES>
<UNKNOWN> BC-BAHIA-COCOA-REVIEW 02-26 0105</UNKNOWN>
<TEXT>
<TITLE>BAHIA COCOA REVIEW</TITLE>
<DATELINE>SALVADOR, Feb 26 - </DATELINE><BODY>Showers continued
throughout the week in the Bahia cocoa zone, alleviating the drought
since early January and improving prospects for the coming temporao,
although normal humidity levels have not been restored, Comissaria
Smith said in its weekly review. The dry period means the temporao
will be late this year.Arrivals for the week ended February 22 were
155,221 bags of 60 kilos making a cumulative total for the season of
5.93 mln against 5.81 at the same stage last year. Again it seems
that cocoa delivered earlier on consignment was included in the
arrivals figures.Comissaria Smith said there is still some doubt as to
how much old crop cocoa is still available as harvesting has
practically come to an end. With total Bahia crop estimates
around 6.4 mln bags and sales standing at almost 6.2 mln there
are a few hundred thousand bags still in the hands of farmers,
middlemen, exporters and processors.
</BODY></TEXT>
</REUTERS>
ROZDZIAŁ 5. EKSPERYMENTY 51

Każdy z dokumentów SGML składa się z wielu podobnych artykułów,


rozpoczynając się znacznikiem <REUTERS> zaś kończąc znacznikiem </REUTERS>.
Zadaniem parsera jest wydobycie z każdego artykułu informacji takich
jak:

• Tematyka artykułu, na bazie której ustalana jest później klasa decy-


zyjna - znaczniki TOPCIS

• Temat artykułu - znacznik TITLE

• Treść artykułu - znacznik BODY

Artykuł przetworzony przez parser ma następującą postać:

26-FEB-1987 15:01:01.79
cocoa
BAHIA COCOA REVIEW SALVADOR, Feb 26 - Showers continued throughout
the week in the Bahia cocoa zone, alleviating the drought since early
January and improving prospects for the coming temporao,
although normal humidity levels have not been restored,
Comissaria Smith said in its weekly review.
The dry period means the temporao will be late this year.
Arrivals for the week ended February 22 were 155,221 bags
of 60 kilos making a cumulative total for the season of 5.93
mln against 5.81 at the same stage last year. Again it seems
that cocoa delivered earlier on consignment was included in the
arrivals figures.
Comissaria Smith said there is still some doubt as to how
much old crop cocoa is still available as harvesting has
practically come to an end. With total Bahia crop estimates
around 6.4 mln bags and sales standing at almost 6.2 mln there
are a few hundred thousand bags still in the hands of farmers,
middlemen, exporters and processors.

Drugi wiersz odpowiada kategorii danego dokumentu. Niestety nie we


wszystkich plikach jest ona sprecyzowana.
Problem jaki pojawia się po wstępnej fazie przetwarzania artykułów to
zbyt duża liczba kategorii. Ponieważ część kategorii jest reprezentowana tyl-
ko przez kilka artykułów, dlatego postanowiono zmniejszyć ich liczbę wyko-
rzystując specyfikę tych danych. Przykładowe nazwy kategorii są postaci:

• money

• money-incomes

• money-banking
ROZDZIAŁ 5. EKSPERYMENTY 52

• money-banking-interests

Każdy dokument z powyższych kategorii został przypisany do kategorii


money.

5.7.2 Eksperymenty
Na nowe dane wprowadzone do systemu składało się 1898 dokumentów po-
dzielonych na cztery następujące klasy decyzyjne:

1. surowce (403 dokumenty, oryginalna nazwa grupy: crude)

2. zboże (583 dokumenty, oryginalna nazwa grupy: grain)

3. pieniądze (545 dokumentów, oryginalna nazwa grupy: money)

4. handel (367 dokumentów, oryginalna nazwa grupy: trade)

Podobnie jak w przypadku poprzednio wykonywanych eksperymentów


dane zostały podzielone na dwie grupy. Zbiór danych testowych stanowił
5% losowo wybranych dokumentów, natomiast dane treningowe stanowiły
pozostałą część wszystkich dokumentów. Pierwszym krokiem było zbudowa-
nie słownika przy pomocy algorytmu ekstrakcji cech, liczącego około 24 000
słów kluczowych. Następnie na słowniku użyto algorytmu selekcji cech, który
usunął słowa nie odgrywające dużej roli w procesie klasyfikacji, to znaczy te
pojawiające się najczęściej bądź najrzadziej. Do obliczenia wag pozostałych
słów kluczowych wchodzących w skład słownika użyto algorytmu TF/IDF.
Eksperymenty miały na celu zbadanie skuteczności działania klasyfika-
tora w zależności od dobranych parametrów. Każdy z przeprowadzonych
testów został wykonany dla wspomnianych czterech klas decyzyjnych.
Na początku zostały wykonane eksperymenty odcinające 80% termów
od góry, gdyż według literatury [Yang97] duże wartości odbcięcia górnych
progów mogą zaowocować wysoką sktecznością klasyfikacji.
Można zauważyć iż dla parametru k równego 8 osiągnięto najlepszy wy-
nik w powyższym eksperymencie. Dla niższych wartości parametru wyniki
były bardzo zbliżone. Następnie wykonano test polegający na zmniejszeniu
ilości odcinania górnych termów z 80% do 50% by zobaczyć czy wartość
skuteczności zmaleje w tym przypadku. Ilość termów odciętych z dołu, jak
i kolejne wartości parametru k pozostawiono bez zmian.
Wynik procesu klasyfikacji w tymże eksperymencie różni dość znacząco
od poprzedniego testu, gdyż najlepszy wynik wynoszący 62% pozytywnie
zakwalifikowanych dokumentów osiągnięto dla parametru k równego 1. Zaś
sukcesywne zwiększanie paramteru powodowało spadek skuteczności proce-
su klasyfikacji.
ROZDZIAŁ 5. EKSPERYMENTY 53

Rysunek 5.5: Obcięcie z góry 80, obcięcie z dołu 5, 4 klasy decyzyjne.

Rysunek 5.6: Obcięcie z góry 50%, obcięcie z dołu 5, 4 klasy decyzyjne.


ROZDZIAŁ 5. EKSPERYMENTY 54

Rysunek 5.7: Obcięcie z góry 5%, obcięcie z dołu 2, 4 klasy decyzyjne.

d4 d6 d8 d10
d4 15 1 0 1
d6 2 19 4 4
d8 1 3 11 9
d10 1 1 5 16

Tabela 5.13: Obcięcie z góry 3%, obcięcie z dołu 5, k = 5


diagonal sum: 61; total tests: 93; accuracy: 65.59139784946237%

Postanowiono przeprowadzić kolejne eksperymenty, polegające tym ra-


zem na drastycznym zmniejszeniu procentu odcinanych z góry termów. Zmniej-
szono również ilość słów kluczowych odcinanych od dołu. Podobnie jak to
miało miejsce w poprzednich eksperymentach wartości parametru k nie zmie-
niają się.
Otrzymane wyniki okazują się być lepsze niż te, które uzyskano w po-
przednich eksperymentach. Przeprowadzono kolejny eksperyment, gdzie pro-
cent odcinanych od góry termów został jeszcze bardziej zmniejszony.
Również w tym przypadku, dla niezmiennych parametrów k (ponownie
równych 1, 5 i 8) uzyskano jeszcze lepszą skuteczność. Przykładem obrazują-
cym skuteczność klasyfikacji jest również macierz kontyngencji prezentująca
otrzymaną skuteczność (tabela 5.19).
ROZDZIAŁ 5. EKSPERYMENTY 55

Rysunek 5.8: Obcięcie z góry 3%, obcięcie z dołu 2, 4 klasy decyzyjne.

d4 d6 d8 d10
d4 13 2 0 2
d6 1 22 1 5
d8 1 3 13 7
d10 1 0 2 20

Tabela 5.14: Obcięcie z góry 3%, obcięcie z dołu 5, k = 8


diagonal sum: 68; total tests: 93; accuracy: 73.11827956989248%

Jest to macierz dotycząca drugiej kolumny powyższego wykresu. Trzeci


przypadek kolumn prezentuje się na tabeli 5.20.
Każdy z powyższych testów został przeprowadzony dla czterech klas de-
cyzyjnych wraz z użyciem algorytmu Portera. Eksperymenty miały również
na celu zbadanie zależności skuteczności przy użyciu bądź też nie wspomnia-
nego algorytmu przeprowadzającego stemming. Kolejne testy zostały prze-
prowadzone bez użycia algorytmu Portera, również na tych samych czterech
klasach decyzyjnych.
Wykres obrazuje eksperyment przeprowadzony na identycznych danych
jednak bez użycia algorytmu Portera. Da się zauważyć, iż w pierwszych
dwóch przypadkach, czyli dla k równego 1 i k równego 5 zrezygnowanie
ze stemmingu poprawiło nieznacznie skuteczność o 2% - 3%. Jednakże już
dla większego parametru k użycie algorytmu Portera zaowocowało pięcio-
ROZDZIAŁ 5. EKSPERYMENTY 56

Rysunek 5.9: Obcięcie z góry 80%, obcięcie z dołu 5, 4 klasy decyzyjne, bez
użycia algorytmu Portera.

procentowym spadkiem skuteczności. Przedstawiono również trzy macierze


kontyngencji reprezentujące trzy otrzymane wyniki bez użycia algorytmu
Portera: (tabela 5.15), (tabela 5.16) oraz (tabela 5.17). Dla k równego 1
otrzymano (tabela 5.15).
Dla k równego 5 otrzymano (tabela 5.16).
Natomiast dla k równego 8 otrzymano (tabela 5.17).
Został przeprowadzony jeszcze jeden podobny eksperyment, tym razem
prezentujący obcięcia z góry wynoszące 3% oraz z dołu równe 5, mający na
celu sprawdzenie czy fakt zmniejszenia procentu termów odciętych od góry
spowoduje wzrost skuteczności procesu klasyfikacji.

d4 d6 d8 d10
d4 10 0 1 6
d6 4 21 1 3
d8 5 3 9 7
d10 1 1 3 18

Tabela 5.15: Obcięcie z góry 80%, obcięcie z dołu 5, 4 klasy decyzyjne, bez
użycia algorytmu Portera, k 1.
diagonal sum: 58; total tests: 93; accuracy: 62.365591397849464%
ROZDZIAŁ 5. EKSPERYMENTY 57

d4 d6 d8 d10
d4 9 1 2 5
d6 3 19 1 6
d8 0 1 9 14
d10 1 1 2 19

Tabela 5.16: Obcięcie z góry 80%, obcięcie z dołu 5, 4 klasy decyzyjne, bez
użycia algorytmu Portera, k 5.
diagonal sum: 56; total tests: 93; accuracy: 60.215053763440864%;

d4 d6 d8 d10
d4 7 1 1 8
d6 3 15 3 8
d8 1 1 9 13
d10 0 1 1 21

Tabela 5.17: Obcięcie z góry 80%, obcięcie z dołu 5, 4 klasy decyzyjne, bez
użycia algorytmu Portera, k 8.
diagonal sum: 52; total tests: 93; accuracy: 55.91397849462365%

Rysunek 5.10: Obcięcie z góry 3%, obcięcie z dołu 5, 4 klasy decyzyjne, bez
użycia algorytmu Portera.
ROZDZIAŁ 5. EKSPERYMENTY 58

d4 d6 d8 d10
d4 13 1 1 2
d6 2 23 2 2
d8 6 0 16 2
d10 0 2 1 20

Tabela 5.18: Obcięcie z góry 3%, obcięcie z dołu 5, k = 1


diagonal sum: 72; total tests: 93; accuracy: 77.41935483870968%

d4 d6 d8 d10
d4 12 1 0 4
d6 1 24 2 2
d8 0 2 17 5
d10 0 3 1 19

Tabela 5.19: Obcięcie z góry 3%, obcięcie z dołu 5, k = 5


diagonal sum: 72; total tests: 93; accuracy: 77.41935483870968%

Kolejne macierze:
k = 1 (tabela 5.18)
k = 5 (tabela 5.19)
k = 8 (tabela 5.20)
W tym zaś wypadku użycie algorytmu Portera spowodowało znaczny
spadek skuteczności dla k równego 1. Natomiast dla k równego 5 skuteczność
wzrosła o 12%, zaś dla k = 8 skuteczność nie zmieniła się.
Eksperymenty zostały przeprowadzone również na tych samych danych,
jednakże z wykorzystaniem jedynie dwóch klas decyzyjnych:
1. surowce (403 dokumenty)
2. handel (367 dokumentów)
Wraz ze wzrostem wartości parametru k rośnie skuteczność procesu kla-
syfikacji, co obrazuje (tabela 5.21).

d4 d6 d8 d10
d4 12 1 0 4
d6 3 22 2 2
d8 1 2 16 5
d10 0 3 2 18

Tabela 5.20: Obcięcie z góry 3%, obcięcie z dołu 5, k = 8


diagonal sum: 68; total tests: 93; accuracy: 73.11827956989248%
ROZDZIAŁ 5. EKSPERYMENTY 59

k=1 k=5 k=8


Progi odcinające z dołu 5 termów oraz 80% z góry 82% 85% 87%
Progi odcinające z dołu 5 termów oraz 50% z góry 79.5% 87% 88%
Progi odcinające z dołu 2 termy oraz 5% z góry 82% 83% 87%
Progi odcinające z dołu 5 termów oraz 3% z góry 81% 82% 83%

Tabela 5.21: Tabela przedstawiająca wyniki procesu klasyfikacji dla dwóch


klas decyzyjnych

Rysunek 5.11: Obcięcie z góry 5%, obcięcie z dołu 2, 2 klasy decyzyjne, bez
użycia algorytmu Portera.

Można zauważyć poprawę wzrostu skuteczności dla testów przeprowa-


dzonych dla dwóch klas decyzyjnych. W najlepszych przypadkach osiągnięto
wartości dochodzące do 90%. Dla wyróżniających się wyników postanowio-
no sprawdzić jeszcze wpływ zrezygnowania z procesu stemmingu algorytmu
Portera.
Macierze kontyngencji dla ostatnich trzech przypadków przedstawiają
się następująco (tabela 5.22), (tabela 5.23), (tabela 5.24).
Da się zaobserwować, iż w każdym z trzech przypadków rezygnacja z al-
gorytmu Portera podniosła wyniki skuteczności klasyfikatora nawet o 5%
w przypadku gdzie k równe było 5.
Reasumując, najlepsze wyniki skuteczności procesu klasyfikacji dla dwóch
klas decyzyjnych osiągnięto przy górnym odcięciu 50% termów oraz dolnym
ROZDZIAŁ 5. EKSPERYMENTY 60

d4 d11
d4 35 11
d11 7 40

Tabela 5.22: Obcięcie z góry 5%, obcięcie z dołu 2, k = 1


diagonal sum: 75; total tests: 93; accuracy: 80.64516129032258%

d4 d11
d4 36 10
d11 1 46

Tabela 5.23: Obcięcie z góry 5%, obcięcie z dołu 2, k = 5


diagonal sum: 82; total tests: 93; accuracy: 88.17204301075269%

obcięciu równym 5. Podobną skuteczność obrazuje również eksperyment,


w którym zastosowano pięcoprocentowe odcięcie górnych słów kluczowych
oraz dwóch dolnych. Należy dodać, iż zarówno w jednym jak i w drugim esk-
perymencie zrezygnowano z użycia algorytmu Portera, co dodakowno spowo-
dowało wzrost skuteczności głównie dla parametru k równego 5. Jednakże
wyłączenie procesu stemmigu w niektórych przypadkach, a zwłaszcza dla
niskich parametrów k owocuje spadkiem skuteczności procesu klasyfikacji.

d4 d11
d4 39 7
d11 4 43

Tabela 5.24: Obcięcie z góry 5%, obcięcie z dołu 2, k = 8


diagonal sum 82; total tests 93; accuracy 88.17204301075269%
Rozdział 6

Wnioski

6.1 Proces stemmingu przy wykorzystaniu algo-


rytmu Portera
Eksperymenty przeprowadzone na kolekcji danych wykorzystywanych w na-
szym projekcie pozwalają wysnuć wniosek, że algorytm Portera w niektó-
rych przypadkach obniża skuteczność algorytmów klasyfikujących. Podobne
wyniki przedstawione są w [Ril95].
Pogarszanie skuteczności klasyfikacji przez algorytm Portera może mieć
dwie przyczyny. Pierwsza z nich wynika ze specyfiki danych źródłowych. Da-
ne zawierają bardzo niewiele słów kluczowych, które są specyficzne dla jednej
kategorii. Dlatego, termy występujące tylko w niewielkiej liczbie dokumen-
tów są odrzucane w procesie selekcji cech. Druga spowodowany jest faktem,
iż istnieją termy, których rdzeń słowotwórczy pojawia się w dokumentach ze
wszystkich kategorii. Podczas, gdy pełna nazwa słowa kluczowego pojawia
się tylko w jednej kategorii.
Fragment słownika pojęć dla słów zaczynających się od program po pro-
cesie ekstrakcji cech z użyciem algorytmu Portera (tabela 6.1).

nazwa termu ilość wystąpień


program 192
programm 58
programmercredit 8

Tabela 6.1: Fragment słownika pojęć (z Porterem)

Fragment słownika pojęć dla słów zaczynających się od program po pro-


cesie ekstrakcji cech bez użycia algorytmu Portera (tabela 6.2).
Algorytm Portera sprowadza termy takie jak: programmer i program-
mers do rdzenia słowotwórczego: programm, natomiast term programming,
program i programs do program. Takie zachowanie algorytmu Portera jest

61
ROZDZIAŁ 6. WNIOSKI 62

nazwa termu ilość wystąpień


program 125
programming 65
programmers 32
programs 33
programmercredit 8
programmer 27

Tabela 6.2: Fragment słownika pojęć (bez Portera)

niewskazane, ponieważ słowo kluczowe program pojawia się w wielu doku-


mentach, nie związanych z tematyką komputerową, podczas gdy słowa klu-
czowe programmer i programming ściśle wiążą się zagadnieniami kompute-
rowymi (tabela 6.3).

nazwa termu klasa decyzyjna ilość


program 1 13
program 2 11
program 3 101
programmer 3 27
programmercredit 3 8
programmers 3 32
programming 1 4
programming 3 61
programs 1 2
programs 2 3
programs 3 28

Tabela 6.3: Ilość wystąpień danego termu w danej klasie decyzyjnej.

Podobna sytuacja ma miejsce w przypadku słowa kluczowego print wy-


stępującego we wszystkich kategoriach oraz słów printer i printing wystę-
pującego w większości w dokumentach o tematyce komputerowej, które po
wykorzystaniu algorytmu Portera zostaną skrócone do termu print.
Algorytm Portera ma również swoje plusy, ponieważ znacząco redukuje
wielkość słownika co wpływa na poprawę wydajności algorytmów klasyfiku-
jących (tabela 6.4).

6.2 DF a χ2
Przeprowadzone eksperymenty pozwalają przypuszczać, że metoda χ 2 zasto-
sowana do selekcji cech stanowiących części składowe wektora wejściowego
ROZDZIAŁ 6. WNIOSKI 63

bez Portera z Porterem


wielkość słownika 34302 27521
ilość słów występujących raz 20288 16954
ilość słów występujących dwa razy 4276 3184
ilość słów występujących więcej niż 1000 razy 24 24
maksymalna ilość wystąpień słowa 1693 1712
średnia ilość wystąpień słowa 7.6810 9.2892

Tabela 6.4: Statystki dotyczące algorytmu Portera

podnosi skuteczność klasyfikatora. Aby zbadać bliżej tę hipotezę przeprowa-


dzono dwie serie 14 doświadczeń.
W pierwszej serii wykonano 14 doświadczeń polegających na uruchamia-
niu klasyfikatora KNN z wartościami parametru k z przedziału < 2, 14 >.
Wektor wejściowy dla klasyfikatora został w tym przypadku zbudowany
z wykorzystaniem χ2 jako algorytmu selekcji cech.
Druga seria prób również polegała na uruchamianiu klasyfikatora KNN
z różnymi wartościami parametru k (K ∈< 2, 14 >). W tym przypadku wek-
tor wejściowy dla klasyfikatora zbudowano na bazie algorytmu DF selekcji
cech.
Obie serie doświadczeń wykonano na tej samej próbce treningowej 174
dokumentów należących do 3 klas decyzyjnych (medycyna, muzyka, języki
programowania). Na wykresie (rysunek 6.1) przedstawiono w formie graficz-
nej zależności między skutecznością klasyfikatora (korzystającego z dwoch
różnych algorytmów selekcji cech) a wartościami parametru k w każdej z serii
prób.
Jak można zaobserwować na wykresie (rysunek 6.1) przeprowadzona se-
ria doświadczeń wykazała, że niezależnie od wartości parametru k dla klasyfi-
katora KNN uzyskuje on większą skuteczność w połączeniu z algorytmem χ 2
zastosowanym do budowy wektora wejściowego dla klasyfikatora [Yang97].
Zaobserwowana prawidłowość wynika z faktu opisanego w rozdziale 2 ni-
niejszej pracy. Algorytm χ2 uwzględnia zależności jakie mogą zachodzić po-
między słowami kluczowymi a klasami decyzyjnymi. Przez co słowa kluczowe
wchodzące w skład wektora wyselekcjonowane przy użyciu tego algorytmu
pozwalają w bardziej dokładny sposób określić przynależność dokumentu do
danej klasy decyzyjnej, co udało się wykazać w powyższej serii doświadczeń.
Na macierzach kontyngencji (tabela 6.5), oraz (tabela 6.6) zbudowanych
dla najwyższych osiagnietych w tym doświadczeniu wskaźnikach skutecz-
ności klasyfikatora możemy zaobserwować rozkład decyzji podejmowanych
w czasie klasyfikacji.
Widać, że w obu przypadkach (zarówno przy zastosowaniu χ 2 jak i DF
przy selekcji cech) algorytm KNN w przypadku zastosowanej próbki trenin-
ROZDZIAŁ 6. WNIOSKI 64

Rysunek 6.1: Porównanie skuteczności działania klasyfikatora KNN korzy-


stąjacego z χ2 oraz DF

d1 d2 d3
d1 31 19 1
d2 2 55 1
d3 8 30 27

Tabela 6.5: Macierz kontyngencji dla wyników działania algorytmu KNN


przy K=8, korzystającego z χ2

gowej najwikszą skuteczność osiąga przy klasyfikacji dokumentów z 2 kla-


sy decyzyjnej (medycyna). Natomiast najmniejszą skuteczność klasyfikator
wykazuje przy klasyfikacji dokumentów z 3 klasy decyzyjnej (języki progra-
mowania). Obserwacja ta w pełni pokrywa się ze spostrzeżeniami zawartymi
w sekcji 5.5.2 pracy.
ROZDZIAŁ 6. WNIOSKI 65

d1 d2 d3
d1 25 24 2
d2 4 53 1
d3 12 37 16

Tabela 6.6: Macierz kontyngencji dla wyników działania algorytmu KNN


przy K=7, korzystającego z DF
Rozdział 7

Podsumowanie

• Przedstawiono przegląd zagadnień związanych z klasyfikacją

• Zaprojektowano i zaimplementowano platformę - środowisko umożli-


wiające dokonywanie testów różnych algorytmów klasyfikujących oraz
łatwą ich ewaluację

• Przeprowadzono eksperymenty związane z klasyfikacją dokumentów


tekstowych wykorzystując różne algorytmy selekcji cech oraz klasyfi-
kacji

• Przedstawiono wnioski wynikające z przeprowadzonych eksperymen-


tów

66
Bibliografia

[Aas99] K Aas, L Eikvil. Text categorisation: A survey. Technical report,


Norwegian Computing Center, June 1999

[Cal00] Rafael A. Calvo, H. A. Ceccatto.Intelligent docu-


ment classification. I de Fisica Rosario - Laboratorio -
http://www.weg.ee.usyd.edu.au/people/rafa/papers/ida2k/ida2k.pdf,
IFIR (Instituto de Fisica Rosario), 2000.

[Chak02] Soumen Chakrabarti. Mining the Web: Analysis of Hypertext and


Semi Structured Data, p.138-139, 2002.

[Cich00] Paweł Cichosz. Systemy uczące się. Wydawnictwa Naukowo-


Techniczne, 2000.

[Fang01] Y.C. Fang, S. Parthasarathy, F. Schwartz. Using Clustering to Bo-


ost Text Classification, ICDM Workshop on Text Mining (TextDM’01),
2001.

[Guo03] G. Guo, H. Wang, D. Bell, Y. Bi, K. Gre-


er. KNN Model-Based Approach in Classification,
http://www.icons.rodan.pl/publications/[Guo2003].pdf

[Hand01] David J. Hand, Heikki Mannila, Padhraic Smyth). Principles of


Data Mining. The MIT Press, 2001.

[Joa98] T Joachims. Text categorization with support vector machines: Le-


arning with many relevant features. Proceedings of the 10th European
Conference on Machine, Chemnitz (Germany) 1998.

[Liu03] T Liu, S Liu, Z Chen, WY Ma. An Evaluation on Feature Selec-


tion for Text Clustering. Proceedings of the Twentieth International
Conference on Machine Learning (ICML-2003), Washington DC 2003.

[Mase00] Hisao Mase, Yukiko Morimoto, Hirosi Tsuji: Classification Know-


ledge Discovery From Newspaper Articles. Studies in Informatics
and Control Journal, June 2000 Volume 9 Number 3 - http :
//www.ici.ro/ici/revista/sic2000 3 /index.html

67
BIBLIOGRAFIA 68

[McCal98] Andrew McCallum, Kamal Nigam. A comparison of Event Mo-


dels for Naive Bayes Text Classification. AAAI-98 Workshop on Lear-
ning for Text Categorization.

[Nig01] Kamal Paul Nigam: Using Unlabeled Data to Improve Text Classifi-
cation. School of Computer Science, Carnegie Mellon University, Tech-
nical Report Collection, 2001 - http://reports-archive.adm.cs.cmu.edu

[Porter] The Porter Stemming Algorithm, http://www.tartarus.org/ mar-


tin/PorterStemmer/index.html

[Raw04] S. Rawat, A. Pujari, V. P. Gulati, R. Vemuri. Intrusion Detection


using Text Processing Techniques with a Binary-Weighted Cosine Me-
tric, http://www.cs.ucdavis.edu/ vemuri/papers/modified%20knn.pdf

[Reuters87] Reuters-21578 text categorization test collection,


http://www.daviddlewis.com/resources/testcollections/reuters21578

[Ril95] Ellen Rillof. Little Words Can Make a Big Difference for Text Clas-
sification. In Proceedings of the 18th Annual International ACM SIGIR
Conference on Research and Development in Information Retrieval, pp.
130-136, 1995.

[Wit99] Ian H. Witten, Eibe Frank. Data Mining: Practical Machine Lear-
ning Tools and Techniques with Java Implementations. Academic Press,
2000.

[Yang97] Y Yang, JO Pedersen. A Comparative Study on Feature Selection


in Text Categorization. International Conference on Machine Learning
(ICML), 1997.

[Yang99] Yiming Yang, Xin Liu. A re-examination of text categorization me-


thods. Annual ACM SIGIR Conference on Research and Development
in Information Retrieval (ACM SIGIR), 1999.

[Yat99] Ricardo Baeza-Yates, Berthier Ribeiro-Neto. Modern Information


Retrieval. Addison Wesley, 1999.
Słownik pojęć

Słownik pojęć wykorzystanych w pracy.

a posteriori - prawdopodobieństwo zajścia jakiegoś zdarzenia jest uwarun-


kowane znanym zdarzeniem elementarnym B P (A|B) dla: A - nowa
hipoteza do rozważenia; B - zdarzenie elementarne, od którego zależy
A

a priori - prawdopodobieństwo zajścia jakiegoś zdarzenia nie jest zależne


od innego zdarzenia elementarnego.

ekstrakcja cech - wydobycie i utworzenie słownika ze słów kluczowych


dokumentów.

kategoria - grupa tematyczna, do której przypisany jest dany dokumet.


Kategoria jest równoznaczna z terminem grupa decyzyjna.

macierz kontyngencji (ang. contingency matrix ) - macierz opisująca


rozkład decyzji podjętych w czasie procesu klasyfikacji dla każdej z klas
decyzyjnych.

omega - zbiór zawierający wszystkie wektory stanowiące bazę na podsta-


wie, której wyliczane jest prawdopodobieństwo podczas klasyfikacji.

selekcja cech - wybór cech (termów) budujących wektor opisujący poje-


dynczy dokument.

skuteczność - miara procentowa wyrażona jako iloraz poprawnie zakwa-


lifikowanych dokumentów do ilości wszystkich dokumentów w próbce
treningowej.

słowo kluczowe/term - termin oznaczający jeden element wektora opisu-


jącego dokument.

stemming - proces polegający na sprowadzaniu słów do rdzeni slowotwór-


czych poprzez usuwanie formantów (zarówno przedrostków jak i przy-
rostków).

69
BIBLIOGRAFIA 70

TF/IDF - algorytm TF/IDF określający sposób wyliczania wag dla słów


kluczowych w wektorze, opierający się na częstotliwości występowania
słów w dokumentach.

wektor wejściowy - wektor, którego współrzędnymi są nazwy termów a war-


tościami wagi wyliczone algorytmem TF/IDF, przekazywany na wej-
ście algorytmu klasyfikującego.
Spis tabel

2.1 Macierz kontyngencji . . . . . . . . . . . . . . . . . . . . . . . 19

3.1 Przykładowe dane uczące . . . . . . . . . . . . . . . . . . . . 28


3.2 Przykładowy zestaw atrybutów do klasyfikacji . . . . . . . . . 28

5.1 Progi odcinające z dołu 0.2% oraz 80% z góry. . . . . . . . . 41


5.2 Progi odcinające z dołu 1 słowo kluczowe oraz 80% z góry. . . 42
5.3 Progi odcinające z dołu 1 słowo kluczowe oraz 80% z góry
(dwie klasy decyzyjne). . . . . . . . . . . . . . . . . . . . . . 42
5.4 Macierz kontyngencji dla wyników działania algorytmu KNN
przy k=2, korzystającego z χ2 . . . . . . . . . . . . . . . . . . 44
5.5 Macierz kontyngencji dla wyników działania algorytmu KNN
przy k=8, korzystającego z χ2 . . . . . . . . . . . . . . . . . . 45
5.6 Macierz kontyngencji dla wyników działania algorytmu KNN
przy k=15, korzystającego z χ2 . . . . . . . . . . . . . . . . . 45
5.7 Wyniki klasyfikacji bez optymalizacji . . . . . . . . . . . . . . 46
5.8 Wyniki klasyfikacji 2 . . . . . . . . . . . . . . . . . . . . . . . 47
5.9 Wyniki klasyfikacji 3 . . . . . . . . . . . . . . . . . . . . . . . 47
5.10 Wyniki klasyfikacji 4 . . . . . . . . . . . . . . . . . . . . . . . 48
5.11 Stosunek liczby wag zerowych do niezerowych w danych te-
stowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.12 Stosunek liczby wektorów do liczby słów kluczowych . . . . . 48
5.13 Obcięcie z góry 3%, obcięcie z dołu 5, k = 5 . . . . . . . . . . 54
5.14 Obcięcie z góry 3%, obcięcie z dołu 5, k = 8 . . . . . . . . . . 55
5.15 Obcięcie z góry 80%, obcięcie z dołu 5, 4 klasy decyzyjne, bez
użycia algorytmu Portera, k 1. . . . . . . . . . . . . . . . . . 56
5.16 Obcięcie z góry 80%, obcięcie z dołu 5, 4 klasy decyzyjne, bez
użycia algorytmu Portera, k 5. . . . . . . . . . . . . . . . . . 57
5.17 Obcięcie z góry 80%, obcięcie z dołu 5, 4 klasy decyzyjne, bez
użycia algorytmu Portera, k 8. . . . . . . . . . . . . . . . . . 57
5.18 Obcięcie z góry 3%, obcięcie z dołu 5, k = 1 . . . . . . . . . . 58
5.19 Obcięcie z góry 3%, obcięcie z dołu 5, k = 5 . . . . . . . . . . 58
5.20 Obcięcie z góry 3%, obcięcie z dołu 5, k = 8 . . . . . . . . . . 58

71
SPIS TABEL 72

5.21 Tabela przedstawiająca wyniki procesu klasyfikacji dla dwóch


klas decyzyjnych . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.22 Obcięcie z góry 5%, obcięcie z dołu 2, k = 1 . . . . . . . . . . 60
5.23 Obcięcie z góry 5%, obcięcie z dołu 2, k = 5 . . . . . . . . . . 60
5.24 Obcięcie z góry 5%, obcięcie z dołu 2, k = 8 . . . . . . . . . . 60

6.1 Fragment słownika pojęć (z Porterem) . . . . . . . . . . . . . 61


6.2 Fragment słownika pojęć (bez Portera) . . . . . . . . . . . . . 62
6.3 Ilość wystąpień danego termu w danej klasie decyzyjnej. . . . 62
6.4 Statystki dotyczące algorytmu Portera . . . . . . . . . . . . . 63
6.5 Macierz kontyngencji dla wyników działania algorytmu KNN
przy K=8, korzystającego z χ2 . . . . . . . . . . . . . . . . . 64
6.6 Macierz kontyngencji dla wyników działania algorytmu KNN
przy K=7, korzystającego z DF . . . . . . . . . . . . . . . . . 65
Spis rysunków

4.1 Schemat bazy danych . . . . . . . . . . . . . . . . . . . . . . 34

5.1 Odbcięcia 5 termów z dołu. . . . . . . . . . . . . . . . . . . . 43


5.2 Zależność skuteczności klasyfikatora od parametru k . . . . . 44
5.3 Zmiany skuteczności klasyfikatora w zależności od wartości
parametru k . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.4 Porównanie skuteczności klasyfikatora bayesowskiego przy za-
stosowaniu różnych metod optymalizacyjnych . . . . . . . . . 49
5.5 Obcięcie z góry 80, obcięcie z dołu 5, 4 klasy decyzyjne. . . . 53
5.6 Obcięcie z góry 50%, obcięcie z dołu 5, 4 klasy decyzyjne. . . 53
5.7 Obcięcie z góry 5%, obcięcie z dołu 2, 4 klasy decyzyjne. . . . 54
5.8 Obcięcie z góry 3%, obcięcie z dołu 2, 4 klasy decyzyjne. . . . 55
5.9 Obcięcie z góry 80%, obcięcie z dołu 5, 4 klasy decyzyjne, bez
użycia algorytmu Portera. . . . . . . . . . . . . . . . . . . . . 56
5.10 Obcięcie z góry 3%, obcięcie z dołu 5, 4 klasy decyzyjne, bez
użycia algorytmu Portera. . . . . . . . . . . . . . . . . . . . . 57
5.11 Obcięcie z góry 5%, obcięcie z dołu 2, 2 klasy decyzyjne, bez
użycia algorytmu Portera. . . . . . . . . . . . . . . . . . . . . 59

6.1 Porównanie skuteczności działania klasyfikatora KNN korzy-


stąjacego z χ2 oraz DF . . . . . . . . . . . . . . . . . . . . . . 64

73

You might also like