Klasyfikacja tekstów

Zadanie dotyczy klasyfikacji tekstów. Dany jest zbiór tekstów, wybranych z notatek prasowych dotyczących kwestii Brexitu. Notatki są zaetykietowane w trzech klasach: poparcie dla Brexitu (1), przeciwna Brexitowi (-1), albo dotycząca Brexitu, ale neutralna (0). Należy zbudować klasyfikator, poprawnie rozpoznający dowolną notatkę tekstową jako jedną z powyższych trzech klas.

Pracę należy wykonać w dwóch etapach, które mogą być powtarzane: (1) wybór reprezentacji danych i zdefiniowanie zbioru cech (features), na których będzie się opierała praca klasyfikatora, oraz napisanie programu do konwersji zbioru tekstów na zbiór wektorów cech, oraz (2) budowa klasyfikatora, i jego optymalizacja.

Popularne schematy reprezentacji tekstów o zmiennej długości do celów automatycznej klasyfikacji to BoW (Bag-of-Words), TF-IDF (Term Frequency-Inverse Document Frequency), Word2Vec, plus dodatkowo wykorzystanie modelu N-gram (np. bigram).

W budowie klasyfikatora można wykorzystać dowolne algorytmy maszynowego uczenia. Warto wykonać kilka eksperymentów, zaczynając od różnych analiz statystycznych zbioru danych, i następnie wykonując wstępny eksperyment uczenia maszynowego z wykorzystaniem najprostszej reprezentacji danych oraz naiwny klasyfikator bayesowski. Wyniki tego eksperymentu mogą służyć jako referencyjne do oceny poprawności zastosowania bardziej zaawansowanych metod. Mogą one obejmować inne modele reprezentacji danych, oraz inne algorytmy uczenia maszynowego takie jak: drzewa decyzyjne, metoda najbliższych sąsiadów, SVM, sieci neuronowe, podejścia hybrydowe typu ensemble, itp.

Wyniki każdego eksperymentu należy oceniać obliczając odpowiednie miary błędów obejmujące (co najmniej) Dokładność obliczoną zarówno na zbiorze treningowym jak i metodą walidacji krzyżowej, jako najprostszą metodę wykrywania przeuczenia.

Optymalizacja wyników może koncentrować się na wyborze najlepszego algorytmu maszynowego uczenia, dostrajania jego parametrów, jak również próbować podejścia typu ensemble learning, budując klasyfikatory hybrydowe. Możliwe jest również cofnięcie się do kroku poprzedniego - budowy reprezentacji, i próby jej modyfikacji w celu osiągnięcia lepszej zdolności klasyfikacji.

Wyniki z ćwiczenia

Proszę opracować osiągnięte wyniki w postaci raportu opisującego wykonane prace i otrzymane wyniki, oraz pakietu uruchomieniowego, pozwalającego uruchomić opracowany(e) klasyfikator(y) i odtworzyć wyniki opisane w raporcie.

Raport powinien zawierać:

Pakiet uruchomieniowy powinien: