scikit-learn의지도 학습 방법 중 하나를 사용하여 텍스트를 하나 이상의 범주로 분류하려고합니다. 내가 시도한 모든 알고리즘의 예측 기능은 하나의 일치를 반환합니다.
예를 들어 텍스트가 있습니다.
"Theaters in New York compared to those in London"
그리고 내가 피드하는 모든 텍스트 스 니펫의 위치를 선택하도록 알고리즘을 훈련 시켰습니다.
위의 예에서는 New York
and 를 반환하기를 원 London
하지만 New York
.
scikit-learn을 사용하여 여러 결과를 반환 할 수 있습니까? 아니면 다음으로 높은 확률로 라벨을 반환할까요?
당신의 도움을 주셔서 감사합니다.
---최신 정보
나는 사용해 OneVsRestClassifier
보았지만 여전히 텍스트 조각 당 하나의 옵션 만 반환됩니다. 아래는 내가 사용하는 샘플 코드입니다.
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
결과 : [ 'New York' 'London' 'London']