Tematem pracy inżynierskiej jest implementacja aplikacji odpowiedzialnej za klasyfikację danych tekstowych oraz analizę jej wydajności podczas zrównoleg lania poszczególnych operacji. Praca przedstawia wybrane zagadnienia teoretyczne i implementacyjne z zakresu technik klasyfikacji danych, rozpraszania operacji a także walidacji uzyskanych wyników. Obecnie istnieje wiele implementacji podobnych zagadnień, natomiast poniższa praca przedstawia jedną z możliwości uzyskania korzystnej wydajności wraz z zadowalającymi wynikami klasyfikacji.
W celu uzyskania zadowalających wyników nie tracąc jednocześnie na wydajności, do klasyfikacji wektorów tekstów, został wykorzystany algorytm k najbliższych sąsiadów. Natomiast odległość między obiektami jest definiowana poprzez podobieństwo cosinusowe. Do procesu klasyfikacji zostały wprowadzone autorskie modyfikacje. Zostały one przedstawione dokładnie w podrozdziale 2.1.3 natomiast analiza ich wyników znajdiie się w rozdziale Ocena.
Głównym założeniem projektu jest zbadanie wpływu rozproszenia poszczególnych procesów na wydajność klasyfikacji. Do implementacji podziału zadań oraz danych między węzłami klastra zastosowaliśmy bibliotekę o nazwie Apache Hadoop. Procesy które zdecydowaliśmy się rozproszyć pomiędzy węzły klastra to m.in. normalizacja tekstów do wektorów danych, obliczenia podobieństw cosinusowych, folding a także kros walidacja.
W ramach opracowania zagadnienia został przeprowadzony szereg testów pokrywających tematy jakości i wydajności klasyfikacji. W trakcie testowania zauważono że optymalną ilością najbliższych sąsiadów jest wartość oscylująca w granicach 1-5% ilości wszystkich artykułów biorących udział w klasyfikacji. Dodatkowo zaobserwowano wąskie gardło działania aplikacji znajdujące się na etapie walidacji skrośnej. i to tam należy szukać usprawnień wydajności działania.
Implementacja aplikacji jest stabilna i w pełni skalowalna. Klasyfikacje można przeprowadzić na dowolnym klastize. o dowolnej liczbie węzłów oraz dowolnej wielkości zbiorn trenującego. Jedynym ograniczeniem użytkowym aplikacji jest czas wykonania niektórych etapów klasyfikacji dla dużych zbiorów danych(>10000 artykiJów). Stan aplikacji jest solidną podstawą do dalszych prac badawczych w kiemnku klasyfikacji danych tekstowych, a sama implementacja jest przystosowana do ewentualnych ulepszeń w kierunku jakości i wydajności.
Praca dyplomowa została zrealizowania przez czterech współautorów. Udział w tworzeniu poszczególnych rozdziałów wygląda następująco:
• Wojciech Stanisławski • Udział w rozdziałach 22.1, 3.1, 3.2.1,4 oraz indywidualnie rozdziały 3.3.2, 3.4.2, 3.5
• Marcin Goławski • Udział w rozdziale 4 oraz Indywidualnie rozdział 2.1
• Krzysztof Świeczkowski • Udział w rozdziałach 2.2.1, 3.1, 3.2.1.4 oraz indywidualnie rozdziały 2.2.2. 3.2.2. 3.4.1
• Artur Peplinski • Udział w rozdziałach 2.1.4.3.1.1 i 4 oraz 2.2.3, 224, 3.3.1 Słowa kluczowe: Big data. Apache Hadoop. klasyfkacja KNN. Wikipedia
3