Klasyfikacja statystyczna tekstu

32

Jestem programistą bez tła statystycznego i obecnie szukam różnych metod klasyfikacji dla dużej liczby różnych dokumentów, które chcę zaklasyfikować do wstępnie zdefiniowanych kategorii. Czytałem o kNN, SVM i NN. Mam jednak problemy z rozpoczęciem pracy. Jakie zasoby polecasz? Znam rachunek jednej zmiennej i rachunek wielu zmiennych całkiem dobrze, więc moja matematyka powinna być wystarczająco silna. Posiadam również książkę Bishopa na temat sieci neuronowych, ale okazała się nieco gęsta jako wprowadzenie.

Emil H.
źródło

Odpowiedzi:

19

Polecam te książki - są również wysoko oceniane w Amazon:

„Text Mining” autorstwa Weissa

„Programowanie aplikacji do eksploracji tekstu” Konchady

Do oprogramowania polecam RapidMiner (z wtyczką tekstową), darmowy i open-source.

Oto mój „proces eksploracji tekstu”:

  • zbierać dokumenty (zwykle przeszukiwanie w Internecie)
    • [próbka, jeśli jest za duża]
    • znak czasu
    • usuń znaczniki
  • tokenize: dziel się na znaki, słowa, n-gramów lub przesuwane okna
  • stemming (aka lemmatization)
    • [obejmuje synonimy]
    • zobacz zaimki i porter algorytm płatka śniegu i artykuły są zwykle złymi predyktorami
  • usuń stopery
  • wektoryzacja funkcji
    • binarny (pojawia się lub nie)
    • Liczba słów
    • częstotliwość względna: tf-idf
    • zysk informacji, kwadrat chi
    • [mają minimalną wartość do włączenia]
  • ważenie
    • ważenie słów na górze dokumentu jest wyższe?

Następnie możesz rozpocząć pracę nad ich klasyfikacją. kNN, SVM lub Naive Bayes, zależnie od przypadku.

Można zobaczyć moje serię filmów górniczych tekst tutaj

Neil McGuigan
źródło
To świetna odpowiedź! Przyjrzę się sugestiom twojej książki, a opis twojego procesu jest również świetny. Szczególnie podoba mi się sugestia wektoryzacji funkcji.
Emil H,
(Jeśli ktoś chciałby rozwinąć jeszcze bardziej część wektoryzacji, byłoby świetnie.)
Emil H
11

Świetny tekst wprowadzający obejmujący wspomniane tematy to Wprowadzenie do wyszukiwania informacji , który jest dostępny online w pełnym tekście za darmo.

Wprowadzenie do wyszukiwania informacji

Fabian Steeg
źródło
Wczoraj zeskanowałem to w pracy. To ciekawa lektura - chciałbym mieć więcej czasu na wchłonięcie zawartego w niej materiału, ale musiałem zdobyć to, czego potrzebowałem i przejść dalej.
Thomas Owens,
zgodził się, że to doskonała książka. To właściwie wyjaśnia, jak działa Google :)
Neil McGuigan
5

Sieć neuronowa może być zbyt wolna w przypadku dużej liczby dokumentów (również teraz jest to dość przestarzałe).
Możesz także sprawdzić Losowy Las wśród klasyfikatorów; jest dość szybki, ładnie się skaluje i nie wymaga skomplikowanego strojenia.


źródło
+1 dla Losowych Lasów. Zdecydowanie dobry klasyfikator do wypróbowania pierwszego, ponieważ nie pasują one zbytnio.
Zach
4

Jeśli pochodzisz ze strony programistycznej, jedną z opcji jest użycie Natural Language Toolkit (NLTK) dla Pythona. Istnieje książka O'Reilly, dostępna bezpłatnie , która może być mniej gęstym i praktycznym wprowadzeniem do budowania klasyfikatorów dokumentów między innymi.

Jeśli jesteś zainteresowany pogłębianiem statystyk, książka Rogera Levy'ego w toku, Modele probabilistyczne w nauce języka , może być niezła do przejrzenia. Jest napisany dla studentów cogsci / compsci grad, rozpoczynających od statystycznych technik NLP.

ars
źródło
3

Po pierwsze mogę polecić książkę Podstawy statystycznego przetwarzania języka naturalnego autorstwa Manninga i Schütze.

Metodami, których bym użył, są rozkłady częstotliwości słowa i modele języka ngram. Pierwszy działa bardzo dobrze, gdy chcesz sklasyfikować temat, a twoje tematy są szczegółowe i fachowe (mają słowa kluczowe). Modelowanie Ngram jest najlepszym sposobem, gdy chcesz sklasyfikować style pisania itp.

Peter Smit
źródło
0

Naiwny Bayes jest zwykle punktem wyjścia do klasyfikacji tekstu, oto artykuł dr Dobbsa na temat jego implementacji. Często jest to także punkt końcowy klasyfikacji tekstu, ponieważ jest tak wydajny i dobrze zrównoleglony, że wykorzystują go SpamAssassin i POPFile.

Jarosław Bułatow
źródło