Program Rainbow
Aby móc wykonać postawione zadanie będą nam potrzebne zbiór poklasyfikowanych tekstów, które zostaną użyte w procesie uczenia oraz program Rainbow implementujący klasyfikator bayesowski. Przy okazji zastanów się, pod jakim kątem można w ogóle klasyfikować teksty? Podaj kilka możliwości.
Obsługa programu:
Dane
*amazon
*imdb
*recenzje
*skrypt
Zadanie 1
Pobierz jeden ze zbiorów danych, rozpakuj i umieść w folderze zawierającym rainbow.exe.
Zadanie 2
Wygeneruj model dla wybranego zbioru danych. Nazwy klas to "0" i "1", odpowiadają one recenzjom negatywnym i recenzjom pozytywnym. Wypisz 10 słów o największej wartości informacyjnej (infogain). Jakie to słowa?
Zadanie 3
Dokonaj oceny klasyfikacji dzieląc zbiór przykładów na zbiór uczący i testowy i uruchom skrypt podsumowujący wyniki.
Aby wykorzystać skrypt do analizy wyniku oceny należy go przekierować do pliku tekstowego:
rainbow -d model --test-set=0.33 --test=1 > output.txt
A następnie wykonać skrypt:
C:/Python27/python process_output.py output.txt 0 1
Jaka jest trafność klasyfikacji? Przeanalizuj macierz pomyłek. Który rodzaj błędu występuje częściej: klasyfikacja tekstów o wydźwięku pozytywnym jako tekstów o wydźwięku negatywnym czy odwrotnie? Dlaczego? Przeanalizuj zawartość plików, które zostały błędnie zaklasyfikowane. Co mogło być przyczyną błędnej klasyfikacji?
Więcej informacji:
- strona autora Rainbow: http://www.cs.cmu.edu/~mccallum/bow/rainbow/
- klasyfikacja tekstów za pomocą NKB: http://www.cs.put.poznan.pl/mkomosinski/site/?q=ml-bayes-text
- prezentacja o metodach analizy i klasyfikacji tekstów oraz o Rainbow: punkt 3 z http://www.cs.put.poznan.pl/mkomosinski/site/?q=ml-bayes
Do porównania prosty program do analiz korpusowych AntConc wraz z instrukcją.