W przypadku większości tego rodzaju aplikacji będziesz musiał przetoczyć znaczną część własnego kodu, aby wykonać zadanie klasyfikacji statystycznej. Jak zasugerował Lucka, NLTK jest idealnym narzędziem do manipulacji językiem naturalnym w Pythonie, o ile Twój cel nie koliduje z niekomercyjnym charakterem jego licencji. Sugerowałbym jednak inne pakiety oprogramowania do modelowania. Nie znalazłem wielu silnych zaawansowanych modeli uczenia maszynowego dostępnych dla Pythona, więc zasugeruję kilka samodzielnych plików binarnych, które z łatwością z nim współpracują.
Możesz być zainteresowany Zestawem narzędzi do zaawansowanego modelowania dyskryminacyjnego , który można łatwo połączyć z Pythonem. Zostało to wykorzystane do zadań klasyfikacyjnych w różnych obszarach przetwarzania języka naturalnego. Masz również do wyboru kilka różnych modeli. Sugerowałbym rozpoczęcie od klasyfikacji maksymalnej entropii, o ile znasz już implementację klasyfikatora Naive Bayes. Jeśli nie, możesz zajrzeć do tego i zakodować jeden z nich, aby naprawdę uzyskać przyzwoite zrozumienie klasyfikacji statystycznej jako zadania uczenia maszynowego.
Grupy lingwistyki komputerowej Uniwersytetu Teksasu w Austin prowadziły zajęcia, na których większość projektów z nich wychodzących wykorzystywała to wspaniałe narzędzie. Możesz zajrzeć na stronę kursu lingwistyki komputerowej II, aby dowiedzieć się, jak sprawić, by działała i jakie wcześniejsze zastosowania służyło.
Innym świetnym narzędziem, które działa w tym samym duchu, jest Mallet . Różnica między Malletem polega na tym, że jest nieco więcej dokumentacji i więcej dostępnych modeli, takich jak drzewa decyzyjne, i jest w Javie, co moim zdaniem sprawia, że jest trochę wolniejszy. Weka to cały zestaw różnych modeli uczenia maszynowego w jednym dużym pakiecie, który zawiera pewne elementy graficzne, ale tak naprawdę jest przeznaczony głównie do celów pedagogicznych i tak naprawdę nie jest czymś, co bym wprowadził do produkcji.
Powodzenia w wykonaniu zadania. Prawdziwą trudną częścią będzie prawdopodobnie ilość inżynierii wiedzy wymaganej z góry, aby sklasyfikować „zbiór nasion”, z którego nauczy się Twój model. Musi być całkiem spory, w zależności od tego, czy robisz klasyfikację binarną (radość vs smutek), czy też całą gamę emocji (które będą wymagały jeszcze więcej). Upewnij się, że przechowujesz część tych opracowanych danych do testów lub przeprowadź kilka testów dziesięciokrotnie lub usuń jeden, aby upewnić się, że faktycznie wykonujesz dobrą robotę przewidując, zanim je tam umieścisz. A przede wszystkim dobrej zabawy! Moim zdaniem to najlepsza część NLP i AI.