scikit-learnの教師あり学習方法の1つを使用して、テキストを1つ以上のカテゴリに分類しようとしています。私が試したすべてのアルゴリズムの予測関数は、1つの一致を返すだけです。
たとえば、次のようなテキストがあります。
"Theaters in New York compared to those in London"
そして、フィードするすべてのテキストスニペットの場所を選択するようにアルゴリズムをトレーニングしました。
上記の例では、私はそれを返すようにしたいと思うNew York
とLondon
、それだけを返しますNew York
。
scikit-learnを使用して複数の結果を返すことは可能ですか?または、次に高い確率でラベルを返しますか?
ご協力いただきありがとうございます。
- -更新
使用してみましたOneVsRestClassifier
が、テキストごとに1つのオプションしか返されません。以下は私が使用しているサンプルコードです
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
結果:['ニューヨーク' 'ロンドン' 'ロンドン']