Verwenden Sie scikit-learn, um mehrere Kategorien zu klassifizieren

Ich versuche, eine der überwachten Lernmethoden von scikit-learn zu verwenden, um Textstücke in eine oder mehrere Kategorien einzuteilen. Die Vorhersagefunktion aller Algorithmen, die ich ausprobiert habe, gibt nur eine Übereinstimmung zurück.

Zum Beispiel habe ich einen Text:

<code>"Theaters in New York compared to those in London"
</code>

Und ich habe den Algorithmus so trainiert, dass er für jedes Text-Snippet, das ich füttere, einen Platz findet.

Im obigen Beispiel möchte ich, dass es zurückkehrtNew York undLondon, aber es kehrt nur zurückNew York.

Ist es möglich, mit scikit-learn mehrere Ergebnisse zurückzugeben? Oder sogar das Etikett mit der nächsthöheren Wahrscheinlichkeit zurücksenden?

Danke für Ihre Hilfe.

---Aktualisieren

Ich habe versucht mitOneVsRestClassifier Aber ich bekomme immer noch nur eine Option pro Textstück zurück. Unten ist der Beispielcode, den ich verwende

<code>y_train = ('New York','London')


train_set = ("new york nyc big apple", "london uk great britain")
vocab = {'new york' :0,'nyc':1,'big apple':2,'london' : 3, 'uk': 4, 'great britain' : 5}
count = CountVectorizer(analyzer=WordNGramAnalyzer(min_n=1, max_n=2),vocabulary=vocab)
test_set = ('nice day in nyc','london town','hello welcome to the big apple. enjoy it here and london too')

X_vectorized = count.transform(train_set).todense()
smatrix2  = count.transform(test_set).todense()


base_clf = MultinomialNB(alpha=1)

clf = OneVsRestClassifier(base_clf).fit(X_vectorized, y_train)
Y_pred = clf.predict(smatrix2)
print Y_pred
</code>

Ergebnis: ['New York' 'London' 'London']

Antworten auf die Frage(5)

Ihre Antwort auf die Frage