Vorbereiten der Daten für die text-Klassifizierung mit Scikit Lernen SVM
Ich versuche zu gelten SVM von Scikit lernen zu klassifizieren, die tweets, die ich gesammelt.
Also, es gibt zwei Kategorien, nennen Sie A und B.
Jetzt habe ich alle tweets kategorisiert in zwei text-Datei', 'A.txt' und 'B.txt'.
Allerdings bin ich mir nicht sicher, welche Art von Daten Eingänge die Scikit Lernen SVM ist für Fragen.
Ich habe ein dictionary mit den Bezeichnungen (A und B) als seinen Schlüssel und ein Wörterbuch von Funktionen (unigrams) und Ihre Frequenzen als Werte.
Sorry, ich bin wirklich neu auf maschinelles lernen und nicht sicher, was ich tun sollte, um die SVM zu arbeiten.
Und ich fand, dass der SVM ist die Verwendung von numpy.ndarray wie die Art der Dateneingabe. Brauche ich, um eine zu erstellen, basierend auf meinen eigenen Daten?
Sollte es so etwas sein?
Labels features frequency
A 'book' 54
B 'movies' 32
Jede Hilfe ist willkommen.
InformationsquelleAutor user1906856 | 2012-12-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie einen Blick auf die Dokumentation auf text-feature Extraktion.
Haben auch einen Blick auf die text-Klassifizierung Beispiel.
Gibt es auch ein tutorial hier:
http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html
Insbesondere konzentriere dich nicht zu sehr auf SVM-Modelle (insbesondere nicht
sklearn.svm.SVC
das ist interessanter für die kernel-Modelle daher nicht den text-Klassifikation): ein einfaches Perceptron, LogisticRegression oder Bernoulli naive Bayes-Modelle könnten ebenso gut funktionieren, während Sie viel schneller zu trainieren.der link zu den
text classification example
ist 404Danke für den Bericht, ich reparierte den kaputten link.
Ich versuche mit 10 Klassen mit naive bayes, aber mit dem Ergebnis nicht zufrieden. svm ist eine gute Passform, wenn dataset klein ist, wird jede Klasse von rund 100 Sätze
Für eine geringe Anzahl von Proben (z.B. weniger als 10000 samples oder so),
SVC(kernel='linear')
möglicherweise schnell genug, um zu konvergieren. Jedoch sollte es geben, ähnlich wie predictive performance alsLinearSVC
und vergleichbare Leistung zuLogisticRegression
werden sollte, dass die beiden schneller und skaliert werden können, um Hunderte von tausenden von Proben . Für jeden Fall müssen Sie wählen Sie den besten Wert für C per cross-validation. AußerdemLogisticRegression
bietet eine gute Wahrscheinlichkeit, Schätzungen standardmäßig (mit derpredict_proba
- Methode). Dies ist der Grund, warum ich Ihnen raten, zu verwenden lineare Modelle über die generischeSVC
standardmäßig.InformationsquelleAutor ogrisel