Usa scikit-learn para clasificar en múltiples categorías
Estoy tratando de usar uno de los métodos de aprendizaje supervisado de scikit-learn para clasificar fragmentos de texto en una o más categorías. La función de predicción de todos los algoritmos que probé solo devuelve una coincidencia.
Por ejemplo tengo un pedazo de texto:
<code>"Theaters in New York compared to those in London" </code>
Y he entrenado el algoritmo para elegir un lugar para cada fragmento de texto que lo alimente.
En el ejemplo anterior me gustaría que regresara.New York
yLondon
, pero solo vuelveNew York
.
¿Es posible usar scikit-learn para obtener múltiples resultados? ¿O incluso devolver la etiqueta con la siguiente probabilidad más alta?
Gracias por tu ayuda.
---Actualizar
Traté de usarOneVsRestClassifier
pero sigo obteniendo solo una opción por texto. A continuación se muestra el código de ejemplo que estoy usando
<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>
Resultado: ['Nueva York' 'Londres' 'Londres']