2016-06-06 9 views
0

Wie kann ich meine TFIDF-Matrix mit einer Kategorie verknüpfen? Zum Beispiel habe ich die folgenden DatenText Kategorisierung Python mit vortrainierten Daten

gesetzt
**ID**  **Text**          **Category** 
    1  jake loves me more than john loves me    Romance 
    2  july likes me more than robert loves me    Friendship 
    3  He likes videogames more than baseball    Interest 

einmal i TFIDF für jeden Satz, indem sie ‚Text‘ Spalte als meine Eingabe berechnen, wie würde ich in der Lage sein, das System zu trainieren, dass die Reihe der kategorisieren die Matrix, die meiner Kategorie zugeordnet werden soll, damit ich meine Testdaten wiederverwenden kann?

Mit dem oben genannten Zugdatensatz, wenn ich einen neuen Satz "Julie ist eine schöne Person" übergeben, möchte ich diesen Satz in einzelne oder mehrere vordefinierte Kategorien wie oben kategorisiert werden.

ich verwendet habe diesen Link Keep TFIDF result for predicting new content using Scikit for Python als meinen Ausgangspunkt dieses Problem zu lösen, aber ich war, wie man Karte TFIDF Matrix für einen Satz zu einer Kategorie

Antwort

1

Es sieht aus wie Sie bereits vektorisiert den Text nicht in der Lage zu verstehen, Das heißt, Sie haben den Text bereits in Zahlen konvertiert, so dass Sie die Klassifizierer scinkit-learns verwenden können. Jetzt ist der nächste Schritt, einen Klassifikator zu trainieren. Sie können this link folgen. Es sieht wie folgt aus:

Vektorisierung

from sklearn.feature_extraction.text import CountVectorizer 
count_vect = CountVectorizer() 
X_train = count_vect.fit_transform(your_text) 

Zug Klassifikator

from sklearn.naive_bayes import MultinomialNB 
clf = MultinomialNB().fit(X_train, y_train) 

Predict auf neue Dokumente:

docs_new = ['God is love', 'OpenGL on the GPU is fast'] 
X_new = count_vect.transform(docs_new) 
predicted = clf.predict(X_new) 
+0

Ja, ich bereits Text in Zahlen umgewandelt, aber wie würde das System wissen, zu welcher Kategorie diese Zahlen gehören? Ich habe Text in Zahl umgewandelt, aber ich war nicht in der Lage, die Nummern des Textes zu einer Kategorie zu markieren, die ich gerne machen würde (wie in meinem Fragedatensatz gezeigt). – RData

+0

Das ist der Klassifikator und der Vorhersageschritt. Die vorhergesagte Variable wird die Kategorien für neuen Text haben. – elyase

+0

ist y_train meine Kategorie? – RData