from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as np
from sklearn import linear_model
arr=['dogs cats lions','apple pineapple orange','water fire earth air', 'sodium potassium calcium']
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(arr)
feature_names = vectorizer.get_feature_names()
Y = ['animals', 'fruits', 'elements','chemicals']
T=["eating apple roasted in fire and enjoying fresh air"]
test = vectorizer.transform(T)
clf = linear_model.SGDClassifier(loss='log')
clf.fit(X,Y)
x=clf.predict(test)
#prints: elements
在上面的代码中,仅打印列表 Xclf.predict()
中样本的 1 个最佳预测。我对列表 X中特定样本的前 3 个预测感兴趣,我知道该函数/返回列表 Y中每个特征的所有概率的列表,但它必须先排序,然后与列表 Y 中的特征关联,然后才能获得前3 名的结果。有没有直接有效的方法?predict_proba
predict_log_proba