2012-12-18 8 views
11

Ich versuche, SVM von Scikit anzuwenden lernen, um die Tweets zu klassifizieren, die ich gesammelt habe. Also, es wird zwei Kategorien geben, nennen sie A und B. Vorläufig habe ich alle Tweets in zwei Text-Dateien, "A.txt" und "B.txt" kategorisiert. Ich bin mir jedoch nicht sicher, welche Art von Dateneingaben das Scikit Learn SVM verlangt. Ich habe ein Wörterbuch mit Beschriftungen (A und B) als Schlüssel und ein Wörterbuch von Features (Unigramme) und deren Häufigkeiten als Werte. Tut mir leid, ich bin wirklich neu im maschinellen Lernen und nicht sicher, was ich tun sollte, um die SVM-Arbeit zu bekommen. Und ich fand, dass SVM numpy.darray als den Typ seiner Dateneingabe verwendet. Muss ich eine basierend auf meinen eigenen Daten erstellen? Sollte es so etwas sein?Bereiten Sie Daten für die Textklassifizierung mit Scikit Learn SVM vor

Labels features frequency 
    A  'book'  54 
    B  'movies'  32 

Jede Hilfe wird geschätzt.

Antwort

21

Schauen Sie sich die Dokumentation unter text feature extraction an.

Schauen Sie sich auch die text classification example.

Es gibt auch ein Tutorial hier:

http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html

Insbesondere nicht zu viel Fokus auf SVM-Modelle (insbesondere nicht sklearn.svm.SVC, die noch interessanter für Kernel-Modelle ist daher nicht Textklassifikation): ein einfache Perceptron-, LogisticRegression- oder Bernoulli-Naive-Bayes-Modelle könnten genauso gut funktionieren und gleichzeitig viel schneller trainieren.

+1

multinomiale naive bayes/SVM beide werden für Sie arbeiten. –

+0

Der Link zum 'text classification Beispiel' ist 404 –

+0

Danke für den Bericht Ich reparierte den defekten Link. – ogrisel